简体中文界面。帖子、指南及政策正文保留原文;未对原文作自动翻译。

Our old FR5 result ticks off the new inspection attempt

NinaAbbott0066 · 2026年3月31日 18:32 UTC

回复讨论
NI
NinaAbbott0066
I've reproduced a nasty little result swap in our offline reporting test. Start an inspection, start a later attempt, then deliver the first one's delayed completion. The new attempt turns green. It did not produce that result. Random sleeps only reproduce it sometimes, which makes the test a poor witness. I want a fixed event sequence that catches this every time and checks the old result hasn't simply been thrown away to make the screen behave.

19 条回复

TH
TheoBarnes0584

Drive the events explicitly in the test. Start the first identified attempt, start the second, then deliver the first completion. Assert both attempt records after each step. No real sleeping needed to establish that order.

6
NI
NinaAbbott0066

That fixed sequence fails reliably now. The event includes the first attempt identifier, but our handler attaches it to whichever attempt is current. The old attempt stays pending while the new one completes.

14
FE
FelixBaker0458

Good, you have the wrong behaviour pinned down. Deliver that same completion twice as well. A handler can use the right attempt and still add its result to the total twice.

17
AM
AmyAli0206

Does the saved result contain the old attempt identifier too, or is that lost before the handler sees it?

-4
NI
NinaAbbott0066
回复 AmyAli0206

Amy, it is present in both the event and saved input. We were ignoring it in favour of the screen's current selection. Felix, duplicate delivery also raises the completed total twice.

8
TH
TheoBarnes0584

Then route by the recorded identity and reconcile repeated receipts against that attempt's result. Keep the display selection out of ownership. The operator may be looking at an entirely different attempt when a result arrives.

16
OL
OliverBrooks0798

Can your test select a third attempt on the screen before delivering the first result, Nina?

0
FE
FelixBaker0458

Oliver's case is useful. Also deliver an unknown attempt identifier and require an explicit unmatched state. Do not let a fallback quietly revive current selection as ownership.

16
NI
NinaAbbott0066

The revised handler passes delayed and duplicate delivery for the two identified attempts. First completes, second stays pending, total rises once. We also added Oliver's selection change and the unknown-identity case; both exposed more assumptions in the display code.

3
AM
AmyAli0206

What does unknown identity do now? I would want the event retained for investigation, not lost as a parsing failure.

18
NI
NinaAbbott0066
回复 AmyAli0206

It goes to an unmatched list with the original event identity and source information. It completes nothing. The display can show that list without assigning the event to the selected attempt.

9
TH
TheoBarnes0584

Restart between receipt and reconciliation too. A tidy in-memory answer can still double-count when the process reloads a partly updated history.

4
FE
FelixBaker0458

And read the exported total in that test. Not just the screen that you've been fixing all week.

1
OL
OliverBrooks0798

Has another person run the fixed sequence without your debugging setup beside them?

10
NI
NinaAbbott0066

Our maintainer ran it from the test instructions. Restart exposed an export path that counted receipts instead of reconciled attempts. We have corrected that path and added the stored records, screen and export to the same assertions.

7
AM
AmyAli0206

Thanks for returning with the export finding. Did the original delayed result remain attached to its first attempt through that restart case?

1
NI
NinaAbbott0066
回复 AmyAli0206

Yes. First attempt keeps its result, second stays pending, duplicate receipt adds no completion, and the unmatched event remains available. Those assertions now survive restart in the offline suite.

15
NI
NinaAbbott0066

The maintainer also ran the agreed read-only reporting comparison on the workstation with the retained event set. Stored attempt records, displayed count and export agree after restart. We closed this reconciliation bug; the random-delay test is no longer our only way to find it.

-1
TH
TheoBarnes0584

Worth the boring explicit sequence. Has the test instruction kept the deliberately wrong arrival order so it cannot become another normal-order happy path later?

5

参与讨论

欢迎来到 Application Robot

所有人都可以阅读论坛。登录或注册后即可发起讨论、回复或上传照片。

忘记密码?

注册账号即表示你同意我们的 使用条款 社区准则。请阅读我们的 隐私政策 ,了解我们如何处理你的信息。