Status display pauses whenever the diagnostic log rolls over

JaneBennett0771 · 28 Feb 2025, 02:41 UTC

Closed
JA
JaneBennett0771
Our read-only FR5 diagnostic display sometimes freezes at log rollover. I added detailed file logging shortly before this started, but communication delays are another possibility. Cell controls are independent of this display. How can I distinguish a slow request from time spent writing its result?

19 replies

AD
AdaArcher0390
Replying to JaneBennett0771

Can you measure request duration and file-write duration separately without writing those measurements through the same blocking logger?

5 points
JA
JaneBennett0771
Replying to AdaArcher0390

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 points
AD
AdaArcher0390
Replying to JaneBennett0771

That gives you three suspects in one queue. Can you also record when a sample arrives versus when the screen finally paints it?

6 points
IM
ImranChan1088
Replying to JaneBennett0771

We 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 points
AD
AdaArcher0390
Replying to ImranChan1088

Did your request time stay normal during those freezes? Curious which measurement actually let you rule the communication path out

9 points
JA
JaneBennett0771
Replying to AdaArcher0390

I 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 points
AD
AdaArcher0390
Replying to JaneBennett0771

That supports a logging stall in those examples. What happens to the display when you replay saved samples with logging disabled?

21 points
LU
LuisBrown0956
Replying to JaneBennett0771

If 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 points
RE
ReeceBell0645
Replying to LuisBrown0956

Does 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 points
AD
AdaArcher0390
Replying to ReeceBell0645

I would add that to the same review. Are you planning to display reception age, logging backlog, or both?

12 points
JA
JaneBennett0771
Replying to AdaArcher0390

Saved-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 points
IM
ImranChan1088
Replying to AdaArcher0390

To 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 points
JA
JaneBennett0771
Replying to JaneBennett0771

The 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 points
AD
AdaArcher0390
Replying to JaneBennett0771

Can you distinguish a writer failure from an ordinary full queue? The person using it needs to know whether any logging is still happening

16 points
RE
ReeceBell0645
Replying to JaneBennett0771

How 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 points
AD
AdaArcher0390
Replying to JaneBennett0771

And what does shutdown do with the remaining queue? Worth deciding now rather than discovering the answer when a technician closes the app

19 points
JA
JaneBennett0771
Replying to AdaArcher0390

Writer 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 points
JA
JaneBennett0771
Replying to JaneBennett0771

The 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 points
AD
AdaArcher0390
Replying to JaneBennett0771

Did 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 points

Discussion closed

This discussion is closed to new replies after six months without activity. Last activity: .