Skip to content

enabling any debug level, doubles block proposing time #8760

Open
@alexggh

Description

@alexggh

I was trying to measure proposing time for this #7540, and noticed that if you start your node with debug level enable for any target, even a non existent one, the proposing time of block doubles.

Starting collator with -linfo,alexggh=debug

2025-06-05 16:53:07.364  INFO tokio-runtime-worker sc_basic_authorship::basic_authorship: [Parachain] 🎁 Prepared block for proposing at 21492 (1351 ms) hash: 0x59ee96f72d1a1c317e68ae248f18159548ccbca46adf1b1f85a34b60f83c3218; parent_hash: 0xa8ba…b418; end: HitBlockWeightLimit; extrinsics_count: 1357    
2025-06-05 16:53:13.458  INFO tokio-runtime-worker sc_basic_authorship::basic_authorship: [Parachain] 🎁 Prepared block for proposing at 21493 (1417 ms) hash: 0x32a35c89858c9443c0794a14157a234b626b320b4479d5083a8b7147e1c3eea1; parent_hash: 0x5b3d…87c4; end: HitBlockWeightLimit; extrinsics_count: 1357    
2025-06-05 16:53:18.601  INFO tokio-runtime-worker sc_basic_authorship::basic_authorship: [Parachain] 🎁 Prepared block for proposing at 21494 (588 ms) hash: 0xa972a9beeddcfc5b5214b222497a6dab9802485e9e306b5df31be20481c30140; parent_hash: 0x4b76…c0d5; end: NoMoreTransactions; extrinsics_count: 582  

Starting collator with -linfo

2025-06-05 16:34:36 [Parachain] 🎁 Prepared block for proposing at 21347 (665 ms) hash: 0x7ca153243d29cfc121c0a92a6372763b47056c1b6cac8b7e1f279530203459db; parent_hash: 0x5acc…7c39; end: NoMoreTransactions; extrinsics_count: 1357    
2025-06-05 16:34:37 [Parachain] 🎁 Prepared block for proposing at 21347 (675 ms) hash: 0x2e1368df1588e6ac7383992ed5eb57fa820e1d10cb31824f124eb9edce581eec; parent_hash: 0x5acc…7c39; end: NoMoreTransactions; extrinsics_count: 1357    
2025-06-05 16:34:42 [Parachain] 🎁 Prepared block for proposing at 21348 (259 ms) hash: 0x363ac67af2ede1a931f6cf14888fa9cd578c2a4f824340376b5cbfb52bb16467; parent_hash: 0x8157…c721; end: NoMoreTransactions; extrinsics_count: 582  

Note!! I've tested both scenarios at least five times, to exclude other caching related impact and seems to happened both if you run with a trie-cache enabled or not.

This seems like a super weird side effect to me and it is probably a configuration mistake anyone can do.

It seems to be triggered by the fact that we are setting the tracing log to the maximum level, here

tracing_log::LogTracer::builder().with_max_level(max_level).init()?;
.

Another thing that might be worth checking is if this is a generic performance penalty or if it is just related to the call path for proposing a block.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions