Late FR10 coupon completion lands on the replacement attempt

AnilBennett0723 · 30 Jun 2026, 01:51 UTC

Reply to discussion
AN
AnilBennett0723
Our offline reporter completes the newer attempt when an old coupon completion arrives after it starts. Random sleeps make the failure unreliable to reproduce. I need a controlled test of delayed and duplicate events that the maintainer can rerun, not another lucky failure on my laptop.

12 replies

BE
BenCarter0979
Replying to AnilBennett0723

Control delivery explicitly through the actual handler: hold the old attempt's event, start the newer attempt, then deliver the held event and inspect both records. Repeat the same delivery to test duplication without relying on elapsed wall-clock time.

19 points
AN
AnilBennett0723
Replying to BenCarter0979

The saved event contains an attempt reference. Our handler ignores it and updates whichever attempt is active. That reproduces every time with explicit delivery, including when the older attempt already timed out.

2 points
FE
FelixCarter0980
Replying to AnilBennett0723

Keep the old timeout as a terminal state unless your agreed model explicitly permits a reviewed change. A late event can be retained as evidence without turning timeout into success or completing the replacement attempt.

14 points
IS
IsaacBennett0781
Replying to AnilBennett0723

Does the test inspect the saved records as well as the screen, Anil? I've watched a display get fixed while the file underneath still told the next launch the wrong story.

-1 points
HE
HenryBarnes0525
Replying to BenCarter0979

And don't have the test secretly identify the attempt through a side variable; pass only what the recorded interface actually supplies.

6 points
AN
AnilBennett0723
Replying to AnilBennett0723

Henry, only the event's recorded identity enters the handler. Isaac, assertions now cover both attempts in storage and the display. The proposed handler looks up the matching attempt and records late evidence separately from its terminal state.

15 points
BE
BenCarter0979
Replying to AnilBennett0723

Include an event for an unknown identity and a duplicate with conflicting contents, so the revised lookup cannot fall back to the active attempt or silently overwrite an already established result.

21 points
FE
FelixCarter0980
Replying to BenCarter0979

And verify the operator wording for that conflict. An unchanged green result with an invisible diagnostic warning would not explain why review is needed.

12 points
AN
AnilBennett0723
Replying to BenCarter0979

Tests pass for late, repeated, unknown and conflicting events. Unknowns are unassigned observations; conflicts raise a visible review state without replacing the stored result. The newer attempt stays pending until its own matching completion arrives.

10 points
IS
IsaacBennett0781
Replying to AnilBennett0723

Has reopening been included yet? Interested in whether the old event stays old after the process loses its in-memory list, especially if the attempt counter starts from the same value.

9 points
AN
AnilBennett0723
Replying to IsaacBennett0781

Reopen tests pass using the producer session and attempt counter already carried in the real event. The original handler fails our delayed-event case; the replacement preserves both histories across repeat delivery and restart. Maintainer ran the checked-in tests from a clean checkout.

8 points
BE
BenCarter0979
Replying to AnilBennett0723

That closes the bookkeeping defect demonstrated by this test. Keep the event-format reference with it; the offline result does not establish the physical inspection outcome or authorise retrying an uncertain real job.

20 points

Add to the discussion

Welcome to Application Robot

Everyone can read the forum. Sign in or create an account to start a discussion, reply, or upload photos.

Forgot your password?

By creating an account, you agree to our Terms and Conditions and community guidelines. Read our Privacy Policy for how your information is handled.