+++ This bug was initially created as a clone of Bug #767275 +++
The current telemetry for the cache service lock tells us what is waiting, and for how long, but it doesn't tell us what is holding the lock or how long that is holding the lock for.
(In reply to Honza Bambas (:mayhemer) from Bug #767275 comment #6)
> I'd personally add a following probe:
> - when the main thread waits for the lock, remember the time it started to
> wait (TimeStamp)
> - when some other thread holding the lock is about to release it, add the
> function it is keeping the lock to an array (have an enum of all places) +
> the timestamp
> - when the main thread acquired the lock, and the wait time was more then
> some threshold, check the array and record all places that was marked after
> the main thread wait-start time
> - have e.g. 6 graphs
> - two triples for e.g. 3 times of your choice (25ms, 100ms, 400ms ; the
> current probe results may be an inspiration)
> - graph will be an enumeration of the places
> - the first triple will record the places we are waiting in on the main
> - the second triple will record the places held by other threads (the cause
> of wait)
> Then we can see for what time the main thread waits for the lock and what
> may be the cause.
This bug was specific to the old cache.