Skip to content

Conversation

maflcko
Copy link
Member

@maflcko maflcko commented Apr 19, 2022

The logging timer has many issues:

  • The underlying clock is mockable, meaning that benchmarks are useless when mocktime was set at the beginning or end of the benchmark.
  • The underlying clock is not monotonic, meaning that benchmarks are useless when the system time was changed during the benchmark.
  • The precision is set at compile time, meaning that benchmarks are useless when the precision isn't fine enough to cover the duration. Also, if the precision is too fine, benchmarks will be confusing and pretend a precision that doesn't exist. I think at best a relative precision of 1% can be assumed. There is one argument for a fixed precision, as it makes debug log parsers slightly easier.

Fix all issues in this patch.

@maflcko
Copy link
Member Author

maflcko commented Apr 19, 2022

For testing ./src/test/test_bitcoin -t logging_tests -- DEBUG_LOG_OUT may be useful.

@jonatack
Copy link
Member

Interesting, I'm curious what the lock logging will look like with variable units.

@DrahtBot
Copy link
Contributor

DrahtBot commented Apr 19, 2022

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews

See the guideline for information on the review process.

Type Reviewers
Concept ACK ajtowns, fanquake
Approach ACK jonatack

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #25284 ([WIP] consensus: Remove dependency on net (BIP 155 / ADDRV2_FORMAT) by MarcoFalke)
  • #24034 (p2p: delete anchors.dat after trying to connect to that peers by brunoerg)

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

Copy link
Member

@jonatack jonatack left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approach ACK, tested with lock logging and the unit test.

}
return strprintf("%s: %s (%.2fμs)", m_prefix, msg, CountMicrosecondsDouble(dur));
Copy link
Member

@jonatack jonatack Apr 19, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the second commit, maybe inverse the order of the duration checks from the smallest unit to the largest.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you explain why?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In higher frequency timing logs like lock, the smaller units seem to be more frequent. Debug build on a slow system:

2022-04-19T17:59:03Z [loadblk] Enter: lock contention cs_main, validation.cpp:4672 started
2022-04-19T17:59:03Z [loadblk] Enter: lock contention cs_main, validation.cpp:4672 completed (253.02μs)
2022-04-19T17:59:03Z [msghand] Enter: lock contention cs_main, net_processing.cpp:4196 started
2022-04-19T17:59:03Z [msghand] Enter: lock contention cs_main, net_processing.cpp:4196 completed (14.28ms)
2022-04-19T17:59:03Z [loadblk] Enter: lock contention cs_main, validation.cpp:4672 started
2022-04-19T17:59:03Z [scheduler] Enter: lock contention ::cs_main, validation.cpp:5151 started
2022-04-19T17:59:03Z [loadblk] Enter: lock contention cs_main, validation.cpp:4672 completed (157.08ms)
2022-04-19T17:59:03Z [msghand] Enter: lock contention ::cs_main, validation.cpp:5151 started
2022-04-19T17:59:03Z [scheduler] Enter: lock contention ::cs_main, validation.cpp:5151 completed (24.14ms)
2022-04-19T17:59:03Z [loadblk] Enter: lock contention cs_main, validation.cpp:4672 started
2022-04-19T17:59:03Z [loadblk] Enter: lock contention cs_main, validation.cpp:4672 completed (10.48μs)
2022-04-19T17:59:03Z [msghand] Enter: lock contention ::cs_main, validation.cpp:5151 completed (7.92ms)
2022-04-19T17:59:03Z [loadblk] Enter: lock contention cs_main, validation.cpp:4672 started
2022-04-19T17:59:03Z [loadblk] Enter: lock contention cs_main, validation.cpp:4672 completed (5.57μs)
2022-04-19T17:59:03Z [msghand] Enter: lock contention ::cs_main, validation.cpp:5151 started
2022-04-19T17:59:03Z [msghand] Enter: lock contention ::cs_main, validation.cpp:5151 completed (85.71μs)
2022-04-19T17:59:03Z [loadblk] Enter: lock contention cs_main, validation.cpp:4672 started
2022-04-19T17:59:03Z [loadblk] Enter: lock contention cs_main, validation.cpp:4672 completed (4.68μs)
2022-04-19T17:59:03Z [msghand] Enter: lock contention m_mutex, random.cpp:416 started
2022-04-19T17:59:03Z [msghand] Enter: lock contention m_mutex, random.cpp:416 completed (62.23μs)
2022-04-19T17:59:03Z [msghand] Enter: lock contention cs_main, net_processing.cpp:4668 started
2022-04-19T17:59:03Z [msghand] Enter: lock contention cs_main, net_processing.cpp:4668 completed (911.14μs)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean the order is intentional and it can not be changed without changing the behaviour of the code.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean, you could invert both the logic and the order?

if (dur <= 1ms) { /* microseconds */ }
else if (dur <= 1s) { /* milliseconds */ }
else { /* seconds */ }

Doing one integer comparison instead of two prior to a printf seems like an amazing level of microoptimisation though...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about changing

strprintf("%s: %s (%.2fμs)", m_prefix, msg, CountMicrosecondsDouble(dur))

to

strprintf("%s: %s (%.5fms)", m_prefix, msg, CountMillisecondsDouble(dur))

? Then you'd see "10.23s", "10.23ms" and "0.01023ms" which might be easier to follow?

Copy link
Member

@jonatack jonatack Apr 20, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There aren't any in the sample above, but it's the big ones in seconds (s) that I find harder to pick out when eyeballing the mix (maybe because they are now smaller). The μs ones stand out pretty well to my eye. Sample with seconds:

2022-04-19T17:58:03Z [net] Enter: lock contention m_nodes_mutex, net.cpp:1294 started
2022-04-19T17:58:03Z [net] Enter: lock contention m_nodes_mutex, net.cpp:1294 completed (4.16μs)
2022-04-19T17:58:03Z [opencon] Enter: lock contention m_nodes_mutex, net.cpp:366 started
2022-04-19T17:58:03Z [opencon] Enter: lock contention m_nodes_mutex, net.cpp:366 completed (4.43μs)
2022-04-19T17:58:03Z [net] Enter: lock contention m_nodes_mutex, net.cpp:1294 started
2022-04-19T17:58:03Z [net] Enter: lock contention m_nodes_mutex, net.cpp:1294 completed (4.28μs)
2022-04-19T17:58:03Z [opencon] Enter: lock contention cs_main, net_processing.cpp:1229 started
2022-04-19T17:58:05Z [msghand] Enter: lock contention ::cs_main, validation.cpp:5151 started
2022-04-19T17:58:05Z [loadblk] Enter: lock contention cs_main, validation.cpp:4672 completed (12.17s)
2022-04-19T17:58:05Z [opencon] Enter: lock contention cs_main, net_processing.cpp:1229 completed (2.23s)
2022-04-19T17:58:05Z [msghand] Enter: lock contention ::cs_main, validation.cpp:5151 completed (4.40ms)
2022-04-19T17:58:05Z [scheduler] Enter: lock contention ::cs_main, validation.cpp:5151 completed (11.81s)
2022-04-19T17:58:05Z [msghand] Enter: lock contention cs_main, validation.cpp:2906 started
2022-04-19T17:58:05Z [loadblk] Enter: lock contention cs_main, validation.cpp:4672 started
2022-04-19T17:58:05Z [msghand] Enter: lock contention cs_main, validation.cpp:2906 completed (558.78μs)
2022-04-19T17:58:05Z [loadblk] Enter: lock contention cs_main, validation.cpp:4672 completed (735.17μs)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, tangential, but: wouldn't it be better to log "foo.cpp:123 held the cs_main lock for 20 seconds" instead of "bar.cpp:456 was waiting for the cs_main lock for 20 seconds" ? In theory, you could then only report when some bit of code held a lock for an "unusually" long amount of time, and could do so even if no other thread happened to also want it... I just don't really see the point of a log entry for "m_nodes_mutex net.cpp:1294 (4.28μs)" -- that doesn't really seem like actionable information.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's valuable information to show who waited, because just holding a lock when nobody else needs it isn't an issue. But what I'd really like to see is who actually blocked someone else.

I'd personally prefer exact timestamps from e.g. std::chrono::steady_clock in the best precision possible in the logs, then one could extract a lot of useful information from it. E.g. who actually blocked whom and for how long. It would then also be possible to generate input for e.g. chrome tracing which is a simple JSON format.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I disagree. If something took a short time, why would anyone care if it took 900 nanoseconds or 1700 nanoseconds? After all this isn't a microbenchmark and real world fluctuations are larger than nanosecond precision. Also, nanosecond precision didn't exist before, so introducing it can be done in a separate pull or a follow-up.

Changing the content of the lock contention logging or chrome tracing also appear largely unrelated to a change to the formatting of durations in logs.

@maflcko
Copy link
Member Author

maflcko commented Apr 20, 2022

Interesting, I'm curious what the lock logging will look like with variable units.

I think for them it will actually be an improvement, as contention might happen for a short blink (a few microseconds) or, during a block connection, a bit longer (a few seconds).

@jonatack
Copy link
Member

jonatack commented Apr 20, 2022

Interesting, I'm curious what the lock logging will look like with variable units.

I think for them it will actually be an improvement, as contention might happen for a short blink (a few microseconds) or, during a block connection, a bit longer (a few seconds).

Yes, the lock logging has a high variance in timing. See #24923 (comment) for a test with this change. One downside is that it's more difficult to pick out the higher times by eyeballing the log with this change (similar to your point that "There is one argument for a fixed precision, as it makes debug log parsers slightly easier.") but still seems to be an improvement for the reasons in the OP.

@maflcko
Copy link
Member Author

maflcko commented Apr 20, 2022

Yeah, I am happy to drop the second commit (or postpone it). Another thought would be to print the same value twice. The second time as %.9fs (nanoseconds statically formatted as double-seconds)

@ajtowns
Copy link
Contributor

ajtowns commented Apr 20, 2022

Concept ACK. Would be nice if there's some way to make it easier to notice the difference between millis and micros when scanning logs.

@maflcko
Copy link
Member Author

maflcko commented Apr 20, 2022

Thanks, I've reworked to make it easier for humans and scripts to parse the format.

For example, 0.000011s means 11us, 0.010s means 10ms. I think a maximum error of 10% is fine, as we mostly only care about the exponent of the float in base 10.

@jonatack
Copy link
Member

First commit fa1d0f1 build error: ./logging/timer.h:69:63: error: use of undeclared identifier 'end_time'

Sample of last push ddddf68 with lock logging:

2022-04-21T14:01:49Z [msghand] Enter: lock contention connman.m_nodes_mutex, ./net.h:1223 started
2022-04-21T14:01:49Z [msghand] Enter: lock contention connman.m_nodes_mutex, ./net.h:1223 completed (0.000004479s)
2022-04-21T14:01:50Z [opencon] Enter: lock contention cs_main, net_processing.cpp:1229 started
2022-04-21T14:01:50Z [scheduler] Enter: lock contention ::cs_main, validation.cpp:5150 started
2022-04-21T14:01:50Z [msghand] Enter: lock contention ::cs_main, validation.cpp:5150 started
2022-04-21T14:01:50Z [opencon] Enter: lock contention cs_main, net_processing.cpp:1229 completed (0.449s)
2022-04-21T14:01:50Z [scheduler] Enter: lock contention ::cs_main, validation.cpp:5150 completed (0.238s)
2022-04-21T14:01:50Z [msghand] Enter: lock contention ::cs_main, validation.cpp:5150 completed (0.000407s)
2022-04-21T14:01:51Z [msghand] Enter: lock contention connman.m_nodes_mutex, ./net.h:1223 started
2022-04-21T14:01:51Z [msghand] Enter: lock contention connman.m_nodes_mutex, ./net.h:1223 completed (0.000004422s)

@maflcko
Copy link
Member Author

maflcko commented Apr 21, 2022

Good catch. I'll fix the dirty build and probably remove the nanosecond precision again. Previously the best precision we had was microseconds, so it is probably best to keep it.

The debug log would then look a bit like:

2022-04-21T14:01:49Z [msghand] Enter: lock contention connman.m_nodes_mutex, ./net.h:1223 started
2022-04-21T14:01:49Z [msghand] Enter: lock contention connman.m_nodes_mutex, ./net.h:1223 completed (0.000004s)
2022-04-21T14:01:50Z [opencon] Enter: lock contention cs_main, net_processing.cpp:1229 started
2022-04-21T14:01:50Z [scheduler] Enter: lock contention ::cs_main, validation.cpp:5150 started
2022-04-21T14:01:50Z [msghand] Enter: lock contention ::cs_main, validation.cpp:5150 started
2022-04-21T14:01:50Z [opencon] Enter: lock contention cs_main, net_processing.cpp:1229 completed (0.449s)
2022-04-21T14:01:50Z [scheduler] Enter: lock contention ::cs_main, validation.cpp:5150 completed (0.238s)
2022-04-21T14:01:50Z [msghand] Enter: lock contention ::cs_main, validation.cpp:5150 completed (0.000407s)
2022-04-21T14:01:51Z [msghand] Enter: lock contention connman.m_nodes_mutex, ./net.h:1223 started
2022-04-21T14:01:51Z [msghand] Enter: lock contention connman.m_nodes_mutex, ./net.h:1223 completed (0.000004s)

@laanwj
Copy link
Member

laanwj commented Jun 29, 2022

Good catch. I'll fix the dirty build and probably remove the nanosecond precision again

Yes, I agree nanosecond precision is overkill here. For controlled benchmark situations it can come in handy but not for logging in a application running on (usually) a busy system.

@maflcko
Copy link
Member Author

maflcko commented Jun 29, 2022

to clarify, my suggestion is already implemented

@fanquake
Copy link
Member

Concept ACK

@maflcko
Copy link
Member Author

maflcko commented Jan 30, 2023

Would be good to make progress here 🥲

Currently the logs may look like this: node0 2023-01-24T20:07:43.197275Z [msghand] [logging/timer.h:57] [Log] [lock] Enter: lock contention cs_main, net_processing.cpp:4861 completed (16507881μs)

Which requires the dev/user to spend a minute to count the digits to figure out if it means 1.6 seconds, or 16 seconds, or 160 seconds ...

@fanquake
Copy link
Member

cc @john-moffett

@jonatack
Copy link
Member

jonatack commented Jan 30, 2023

Yeah, I am happy to drop the second commit (or postpone it). Another thought would be to print the same value twice. The second time as %.9fs (nanoseconds statically formatted as double-seconds)

I wonder if the second commit is holding up the first one. The first function of this logging for me is to initially see where the high values are and then what is causing them, and the second commit makes that first step of seeing the higher values more difficult IMO with the multiple units displayed. Edit: I see that in the current version one unit (seconds) is now used, with two different precisions. Perhaps settle on one precision?

@maflcko
Copy link
Member Author

maflcko commented Jan 30, 2023

The first function of this logging for me is to initially see where the high values are and then what is causing them, and the second commit makes that first step of seeing the higher values more difficult IMO

Does it? It should be trivial to find small values, as they all start with 0. or 0.000, whereas large values start with 1-9.

@jonatack
Copy link
Member

jonatack commented Jan 30, 2023

I think so, as small values "look" large (more decimal places) and large values "look" small. A fixed precision may help?

unfiltered debug log excerpt (mainnet) with this branch at fa35fe8

2023-01-30T16:06:28Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:28Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.231s)
2023-01-30T16:06:28Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 started
2023-01-30T16:06:28Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 completed (0.000001s)
2023-01-30T16:06:28Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:28Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.286s)
2023-01-30T16:06:28Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:28Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000002s)
2023-01-30T16:06:28Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:28Z [lock] Enter: lock contention cs_main, net_processing.cpp:5384 started
2023-01-30T16:06:28Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.273s)
2023-01-30T16:06:28Z [lock] Enter: lock contention cs_main, net_processing.cpp:5384 completed (0.000046s)
2023-01-30T16:06:28Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 started
2023-01-30T16:06:29Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:29Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 completed (0.264s)
2023-01-30T16:06:29Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000282s)
2023-01-30T16:06:32Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:32Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:32Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.188s)
2023-01-30T16:06:32Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000032s)
2023-01-30T16:06:32Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:32Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.263s)
2023-01-30T16:06:32Z [lock] Enter: lock contention cs_main, net_processing.cpp:4008 started
2023-01-30T16:06:32Z [lock] Enter: lock contention cs_main, net_processing.cpp:4008 completed (0.000001s)
2023-01-30T16:06:32Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:32Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.261s)
2023-01-30T16:06:32Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:32Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000002s)
2023-01-30T16:06:32Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 started
2023-01-30T16:06:33Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 started
2023-01-30T16:06:33Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 completed (0.261s)
2023-01-30T16:06:33Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 completed (0.000261s)
2023-01-30T16:06:36Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:36Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 started
2023-01-30T16:06:36Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.159s)
2023-01-30T16:06:36Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 completed (0.000029s)
2023-01-30T16:06:36Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:36Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:36Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.264s)
2023-01-30T16:06:36Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000029s)
2023-01-30T16:06:36Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:36Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.262s)
2023-01-30T16:06:36Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:36Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000002s)
2023-01-30T16:06:36Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 started
2023-01-30T16:06:37Z [lock] Enter: lock contention cs_main, net_processing.cpp:1444 started
2023-01-30T16:06:37Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 completed (0.269s)
2023-01-30T16:06:37Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:37Z [lock] Enter: lock contention cs_main, net_processing.cpp:1444 completed (0.136s)
2023-01-30T16:06:37Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000368s)
2023-01-30T16:06:38Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 started
2023-01-30T16:06:38Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:38Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 completed (0.012s)
2023-01-30T16:06:38Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000226s)
2023-01-30T16:06:38Z [lock] Enter: lock contention cs_main, rpc/blockchain.cpp:1253 started
2023-01-30T16:06:38Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 started
2023-01-30T16:06:38Z [lock] Enter: lock contention cs_main, rpc/blockchain.cpp:1253 completed (0.272s)
2023-01-30T16:06:38Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 completed (0.000121s)
2023-01-30T16:06:38Z [lock] Enter: lock contention ::cs_main, node/interfaces.cpp:733 started
2023-01-30T16:06:38Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:38Z [lock] Enter: lock contention ::cs_main, node/interfaces.cpp:733 completed (0.268s)
2023-01-30T16:06:38Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000034s)
2023-01-30T16:06:38Z [lock] Enter: lock contention cs_args, util/system.cpp:1097 started
2023-01-30T16:06:38Z [lock] Enter: lock contention cs_args, util/system.cpp:1097 completed (0.000001s)
2023-01-30T16:06:38Z [lock] Enter: lock contention ::cs_main, node/interfaces.cpp:733 started
2023-01-30T16:06:39Z [lock] Enter: lock contention ::cs_main, node/interfaces.cpp:733 completed (0.261s)
2023-01-30T16:06:39Z [lock] Enter: lock contention cs_main, net_processing.cpp:5384 started
2023-01-30T16:06:39Z [lock] Enter: lock contention cs_main, net_processing.cpp:5384 completed (0.000001s)
2023-01-30T16:06:40Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:40Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.246s)
2023-01-30T16:06:40Z [lock] Enter: lock contention cs_main, net_processing.cpp:5384 started
2023-01-30T16:06:40Z [lock] Enter: lock contention cs_main, net_processing.cpp:5384 completed (0.000002s)
2023-01-30T16:06:40Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:40Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:40Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.264s)
2023-01-30T16:06:40Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000035s)
2023-01-30T16:06:40Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:41Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:41Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.266s)
2023-01-30T16:06:41Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000028s)
2023-01-30T16:06:41Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:41Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:41Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.279s)
2023-01-30T16:06:41Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000025s)
2023-01-30T16:06:41Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 started
2023-01-30T16:06:41Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:41Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 completed (0.296s)
2023-01-30T16:06:41Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000260s)
2023-01-30T16:06:44Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:44Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 started
2023-01-30T16:06:44Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.057s)
2023-01-30T16:06:44Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 completed (0.000029s)
2023-01-30T16:06:44Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:44Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.266s)
2023-01-30T16:06:44Z [lock] Enter: lock contention cs_main, net_processing.cpp:4008 started
2023-01-30T16:06:44Z [lock] Enter: lock contention cs_main, net_processing.cpp:4008 completed (0.000002s)
2023-01-30T16:06:44Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:45Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:45Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.265s)
2023-01-30T16:06:45Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000071s)
2023-01-30T16:06:45Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:45Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:45Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.264s)
2023-01-30T16:06:45Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000028s)
2023-01-30T16:06:45Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 started
2023-01-30T16:06:45Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 completed (0.264s)
2023-01-30T16:06:45Z [lock] Enter: lock contention cs_main, net_processing.cpp:3910 started
2023-01-30T16:06:45Z [lock] Enter: lock contention cs_main, net_processing.cpp:3910 completed (0.000190s)
2023-01-30T16:06:48Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:49Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:49Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.967s)
2023-01-30T16:06:49Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000028s)
2023-01-30T16:06:49Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:49Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.275s)
2023-01-30T16:06:49Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:49Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000001s)
2023-01-30T16:06:49Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:50Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.265s)
2023-01-30T16:06:50Z [lock] Enter: lock contention cs_main, net_processing.cpp:4008 started
2023-01-30T16:06:50Z [lock] Enter: lock contention cs_main, net_processing.cpp:4008 completed (0.000001s)
2023-01-30T16:06:50Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:50Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:50Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.264s)
2023-01-30T16:06:50Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000027s)
2023-01-30T16:06:50Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 started
2023-01-30T16:06:50Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 completed (0.268s)
2023-01-30T16:06:50Z [lock] Enter: lock contention cs_main, net_processing.cpp:4008 started
2023-01-30T16:06:50Z [lock] Enter: lock contention cs_main, net_processing.cpp:4008 completed (0.000197s)
2023-01-30T16:06:51Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 started
2023-01-30T16:06:51Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:51Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 completed (0.169s)
2023-01-30T16:06:51Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000250s)
2023-01-30T16:06:51Z [lock] Enter: lock contention cs_main, rpc/blockchain.cpp:1253 started
2023-01-30T16:06:51Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:51Z [lock] Enter: lock contention cs_main, rpc/blockchain.cpp:1253 completed (0.280s)
2023-01-30T16:06:51Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000114s)
2023-01-30T16:06:51Z [lock] Enter: lock contention ::cs_main, node/interfaces.cpp:733 started
2023-01-30T16:06:51Z [lock] Enter: lock contention ::cs_main, node/interfaces.cpp:733 completed (0.274s)
2023-01-30T16:06:51Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:51Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000002s)
2023-01-30T16:06:51Z [lock] Enter: lock contention ::cs_main, node/interfaces.cpp:733 started
2023-01-30T16:06:52Z [lock] Enter: lock contention ::cs_main, node/interfaces.cpp:733 completed (0.266s)
2023-01-30T16:06:52Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:52Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000001s)
2023-01-30T16:06:53Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:54Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.272s)
2023-01-30T16:06:54Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:54Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000002s)
2023-01-30T16:06:54Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:54Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 started
2023-01-30T16:06:54Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.279s)
2023-01-30T16:06:54Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 completed (0.000029s)
2023-01-30T16:06:54Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:54Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.264s)
2023-01-30T16:06:54Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 started
2023-01-30T16:06:54Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 completed (0.000002s)
2023-01-30T16:06:54Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:54Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.267s)
2023-01-30T16:06:54Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:54Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000001s)
2023-01-30T16:06:54Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 started
2023-01-30T16:06:55Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 completed (0.290s)
2023-01-30T16:06:55Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:55Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000184s)
2023-01-30T16:06:55Z [lock] Enter: lock contention cs_main, net_processing.cpp:1444 started
2023-01-30T16:06:55Z [lock] Enter: lock contention cs_main, net_processing.cpp:1444 completed (0.238s)
2023-01-30T16:06:55Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 started
2023-01-30T16:06:55Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 completed (0.000075s)
2023-01-30T16:06:56Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:56Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.054s)
2023-01-30T16:06:56Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 started
2023-01-30T16:06:56Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 completed (0.000002s)
2023-01-30T16:06:57Z [lock] Enter: lock contention cs_main, net_processing.cpp:1444 started
2023-01-30T16:06:57Z [lock] Enter: lock contention cs_main, net_processing.cpp:1444 completed (0.134s)
2023-01-30T16:06:57Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:57Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000070s)
2023-01-30T16:06:58Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:58Z [lock] Enter: lock contention cs_main, net_processing.cpp:3674 started
2023-01-30T16:06:58Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.186s)
2023-01-30T16:06:58Z [lock] Enter: lock contention cs_main, net_processing.cpp:3674 completed (0.000030s)
2023-01-30T16:06:58Z [lock] Enter: lock contention m_peer_mutex, net_processing.cpp:1543 started
2023-01-30T16:06:58Z [lock] Enter: lock contention m_peer_mutex, net_processing.cpp:1543 completed (0.000009s)
2023-01-30T16:06:58Z [lock] Enter: lock contention m_peer_mutex, net_processing.cpp:1543 started
2023-01-30T16:06:58Z [lock] Enter: lock contention m_peer_mutex, net_processing.cpp:1543 completed (0.000001s)
2023-01-30T16:06:58Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:58Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:06:58Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.264s)
2023-01-30T16:06:58Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000069s)
2023-01-30T16:06:58Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:06:58Z [lock] Enter: lock contention cs_main, net_processing.cpp:5384 started
2023-01-30T16:06:58Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.281s)
2023-01-30T16:06:58Z [lock] Enter: lock contention cs_main, net_processing.cpp:5384 completed (0.000032s)
2023-01-30T16:06:58Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 started
2023-01-30T16:06:59Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 completed (0.267s)
2023-01-30T16:07:00Z New outbound peer connected: version: 70016, blocks=774351, peer=5, peeraddr=mwmfluek4au6mxxpw6fy7sjhkm65bdfc7izc7lpz3trewfdghyrzsbid.onion:8333 (manual)
2023-01-30T16:07:02Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:07:02Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 started
2023-01-30T16:07:02Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.126s)
2023-01-30T16:07:02Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 completed (0.000031s)
2023-01-30T16:07:02Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:07:02Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.000016s)
2023-01-30T16:07:02Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:07:02Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000001s)
2023-01-30T16:07:02Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:07:02Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.305s)
2023-01-30T16:07:02Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:07:02Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000002s)
2023-01-30T16:07:02Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:07:02Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.000361s)
2023-01-30T16:07:02Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 started
2023-01-30T16:07:02Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 completed (0.000002s)
2023-01-30T16:07:02Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:07:02Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 started
2023-01-30T16:07:02Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.303s)
2023-01-30T16:07:02Z [lock] Enter: lock contention cs_main, net_processing.cpp:2916 completed (0.000034s)
2023-01-30T16:07:02Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 started
2023-01-30T16:07:03Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:07:03Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 completed (0.303s)
2023-01-30T16:07:03Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000258s)
2023-01-30T16:07:04Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 started
2023-01-30T16:07:04Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:07:04Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 completed (0.248s)
2023-01-30T16:07:04Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000240s)
2023-01-30T16:07:04Z [lock] Enter: lock contention cs_main, rpc/blockchain.cpp:1253 started
2023-01-30T16:07:04Z [lock] Enter: lock contention cs_main, rpc/blockchain.cpp:1253 completed (0.000006s)
2023-01-30T16:07:04Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 started
2023-01-30T16:07:04Z [lock] Enter: lock contention ::cs_main, validation.cpp:5246 completed (0.000066s)
2023-01-30T16:07:04Z [lock] Enter: lock contention ::cs_main, node/interfaces.cpp:733 started
2023-01-30T16:07:04Z [lock] Enter: lock contention ::cs_main, node/interfaces.cpp:733 completed (0.263s)
2023-01-30T16:07:04Z [lock] Enter: lock contention cs_main, net_processing.cpp:5384 started
2023-01-30T16:07:04Z [lock] Enter: lock contention cs_main, net_processing.cpp:5384 completed (0.000002s)
2023-01-30T16:07:04Z [lock] Enter: lock contention cs_wallet, wallet/wallet.cpp:1474 started
2023-01-30T16:07:04Z [lock] Enter: lock contention cs_wallet, wallet/wallet.cpp:1474 completed (0.000113s)
2023-01-30T16:07:04Z [lock] Enter: lock contention ::cs_main, node/interfaces.cpp:733 started
2023-01-30T16:07:04Z [lock] Enter: lock contention ::cs_main, node/interfaces.cpp:733 completed (0.267s)
2023-01-30T16:07:04Z [lock] Enter: lock contention ::cs_main, net_processing.cpp:2833 started
2023-01-30T16:07:04Z [lock] Enter: lock contention ::cs_main, net_processing.cpp:2833 completed (0.000001s)
2023-01-30T16:07:06Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:07:07Z [lock] Enter: lock contention cs_main, net_processing.cpp:2649 started
2023-01-30T16:07:07Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (1.722s)
2023-01-30T16:07:07Z [lock] Enter: lock contention cs_main, net_processing.cpp:2649 completed (0.000029s)
2023-01-30T16:07:07Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:07:07Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.000276s)
2023-01-30T16:07:07Z [lock] Enter: lock contention m_peer_mutex, net_processing.cpp:1543 started
2023-01-30T16:07:07Z [lock] Enter: lock contention m_peer_mutex, net_processing.cpp:1543 completed (0.000001s)
2023-01-30T16:07:07Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:07:08Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.281s)
2023-01-30T16:07:08Z [lock] Enter: lock contention cs_main, net_processing.cpp:3674 started
2023-01-30T16:07:08Z [lock] Enter: lock contention cs_main, net_processing.cpp:3674 completed (0.000002s)
2023-01-30T16:07:08Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 started
2023-01-30T16:07:08Z [lock] Enter: lock contention cs_main, net_processing.cpp:1563 completed (0.000053s)
2023-01-30T16:07:08Z [lock] Enter: lock contention cs_main, net_processing.cpp:5384 started
2023-01-30T16:07:08Z [lock] Enter: lock contention cs_main, net_processing.cpp:5384 completed (0.000002s)
2023-01-30T16:07:08Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 started
2023-01-30T16:07:08Z [lock] Enter: lock contention cs_main, rpc/net.cpp:634 completed (0.275s)
2023-01-30T16:07:08Z [lock] Enter: lock contention cs_main, net_processing.cpp:3674 started
2023-01-30T16:07:08Z [lock] Enter: lock contention cs_main, net_processing.cpp:3674 completed (0.000195s)

@maflcko
Copy link
Member Author

maflcko commented Jan 30, 2023

Ok, closing for now

@maflcko maflcko closed this Jan 30, 2023
@maflcko maflcko deleted the 2204-log-time-📬 branch January 30, 2023 16:13
Copy link
Contributor

@john-moffett john-moffett left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK fa35fe8

I prefer the uniform units and the new formatting. To me, it's easier to grok large vs small values, but I realize that could be subjective, as @jonatack appears to think otherwise.

@maflcko
Copy link
Member Author

maflcko commented Jan 31, 2023

Maybe the us could at least be formatted with ' separators? For example, 1'234'567'890us?

Anyway, the first commit is now in #27005

@bitcoin bitcoin locked and limited conversation to collaborators Jan 31, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants