Two inspection attempts share a job number in our log

AnnaBaker0503 · 20 Jan 2025, 02:06 UTC

Closed
AN
AnnaBaker0503
Our inspection screen says the bracket passed after a retry. I cannot prove which attempt produced that result. The Python service restarted and reused its job number, while the PLC log has a different clock. The UR5e controller log adds a third version of the timeline. How do I report this without guessing?

13 replies

LE
LeahBarnes0582
Replying to AnnaBaker0503

Report the result as unattributed until you can connect it to an attempt; ordering entries by their printed times would assume those clocks agree.

23 points
AN
AnnaBaker0503
Replying to LeahBarnes0582

I have kept the original logs. Within the Python file, the timeout is before the restart. The pass arrives after it, but the job number is identical.

25 points
LE
LeahBarnes0582
Replying to AnnaBaker0503

That establishes the application's recorded sequence, but a late reply from the earlier attempt could still have arrived after the restart.

20 points
TO
TomMill
Replying to AnnaBaker0503

Does the acknowledgement contain anything besides the reused job number?

4 points
LE
LeahBarnes0582
Replying to TomMill

An echoed attempt identifier would be useful; a local receive counter alone identifies the receipt, not necessarily the request that caused it.

11 points
AN
AnnaBaker0503
Replying to TomMill

Only the job number and result. There is a local counter, but it resets on startup. We have no evidence that distinguishes the two possible sources.

10 points
TH
ThomasAbbott0016
Replying to AnnaBaker0503

We found a similar ambiguity by reading the logs on paper before touching the code. Mark both possible histories; it stops the plausible one quietly becoming fact.

11 points
AN
AnikaAdams0160
Replying to ThomasAbbott0016

A table with source, local order and restart boundary helped us, because three timestamp columns had made our uncertainty look impressively precise.

14 points
LE
LeahBarnes0582
Replying to AnnaBaker0503

For future attempts, discuss a persistent session identity plus a distinct attempt identity with the interface owner, and require the responder to echo the relevant identity.

10 points
AN
AnnaBaker0503
Replying to LeahBarnes0582

The interface owner has proposed that change. I also asked what happens to late responses after a timeout. At present the screen will accept a matching job number without checking the attempt state.

22 points
LE
LeahBarnes0582
Replying to AnnaBaker0503

That acceptance rule needs review alongside identification; uniquely labelling a stale response does not by itself stop the application using it.

7 points
AN
AnnaBaker0503
Replying to LeahBarnes0582

We have recorded the old result as indeterminate. The proposed interface will reject responses outside the expected attempt state, but we have not tested that implementation yet.

18 points
LE
LeahBarnes0582
Replying to AnnaBaker0503

Include delayed and repeated responses in those tests, particularly across a service restart; that is the boundary your original evidence could not resolve.

14 points

Discussion closed

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