Can you measure request duration and file-write duration separately without writing those measurements through the same blocking logger?
Status display pauses whenever the diagnostic log rolls over
JaneBennett0771 · 28 Feb 2025, 02:41 UTC
19 replies
I can collect a short timing trace in memory and inspect it afterwards. The request, formatting and write currently all happen on the display thread.
20 pointsThat gives you three suspects in one queue. Can you also record when a sample arrives versus when the screen finally paints it?
6 pointsWe once blamed a controller for a dashboard that was busy printing its own misery to disk, so timing the display path separately saved a very pointless service visit.
9 pointsDid your request time stay normal during those freezes? Curious which measurement actually let you rule the communication path out
9 pointsI have a trace now. The long intervals fall inside the file-write stage at rollover; request duration stays close to its usual range in those examples. The screen update follows the write.
7 pointsThat supports a logging stall in those examples. What happens to the display when you replay saved samples with logging disabled?
21 pointsIf you move writing off the display path, decide what happens when the writer falls behind. An unlimited queue can trade a frozen screen for rising memory use. This is a diagnostic tool, but its failure still needs to be visible.
14 pointsDoes the display show the age of its last received sample? A smooth refresh after the change could still show old data. The operator should be able to distinguish fresh status from a responsive window.
15 pointsI would add that to the same review. Are you planning to display reception age, logging backlog, or both?
12 pointsSaved-sample playback stays responsive without file logging. I am implementing a bounded writer queue and separate indicators for sample age and logging health. The display will not use the file's last-write time as freshness.
14 pointsTo answer Ada, yes, our request timing stayed ordinary while the write timing ballooned; we checked that before moving the writer, because a familiar symptom isn't proof of a familiar cause.
7 pointsThe revised version handles a deliberately slow test writer without freezing the window. It reports dropped diagnostic records when its queue fills. Received samples still carry their own age on screen.
5 pointsCan you distinguish a writer failure from an ordinary full queue? The person using it needs to know whether any logging is still happening
16 pointsHow are background writer exceptions surfaced? They should not vanish in a worker thread while the application says logging is enabled. Include an unwritable destination in your checks.
8 pointsAnd what does shutdown do with the remaining queue? Worth deciding now rather than discovering the answer when a technician closes the app
19 pointsWriter failures now produce a persistent error state. Shutdown attempts a bounded flush and reports any unsaved count. We checked an unwritable destination and a stalled writer; neither leaves the window hanging indefinitely.
7 pointsThe rollover pauses have stopped in the revised diagnostic tool. We also tested delayed sample reception: the age indicator becomes stale even though the window stays responsive. That was a useful separate check.
7 pointsDid the maintenance team understand the separate logging and freshness indicators when you handed it over? That's the last bit I'd want to hear about
10 pointsDiscussion closed
This discussion is closed to new replies after six months without activity. Last activity: .