Status display pauses whenever the diagnostic log rolls over
JaneBennett0771 · 28 Feb 2025, 02:41 UTC
19 replies
Can you measure request duration and file-write duration separately without writing those measurements through the same blocking logger?
5pointsI can collect a short timing trace in memory and inspect it afterwards. The request, formatting and write currently all happen on the display thread.
20pointsThat gives you three suspects in one queue. Can you also record when a sample arrives versus when the screen finally paints it?
6pointsWe 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.
9pointsDid your request time stay normal during those freezes? Curious which measurement actually let you rule the communication path out
9pointsI 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.
7pointsThat supports a logging stall in those examples. What happens to the display when you replay saved samples with logging disabled?
21pointsIf 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.
14pointsDoes 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.
15pointsI would add that to the same review. Are you planning to display reception age, logging backlog, or both?
12pointsSaved-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.
14pointsTo 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.
7pointsThe 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.
5pointsCan you distinguish a writer failure from an ordinary full queue? The person using it needs to know whether any logging is still happening
16pointsHow 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.
8pointsAnd what does shutdown do with the remaining queue? Worth deciding now rather than discovering the answer when a technician closes the app
19pointsWriter 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.
7pointsThe 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.
7pointsDid 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
10pointsDiscussion closed
This discussion is closed to new replies after six months without activity. Last activity: .