Reproducing delayed events without random sleeps (Fairino FR10, inspection result reconciliation)

RebeccaAbbott0082 · 2026年9月2日 05:28 UTC

回复讨论

主帖中文翻译暂不可用,以下显示英文原文;回复保留原文。 查看英文原文

RE
RebeccaAbbott0082
In our offline test, delivering an old completion after a new attempt starts makes the new inspection result reconciliation attempt look complete. The real setup uses Fairino FR10 in a workshop fixture-checking station, with an inspection coupon as a reference. I'm trying to exercise delayed and duplicate events reliably; random sleeps keep making the test hard to reproduce.

11 条回复

VI
VictorAdams0098

@RebeccaAbbott0082 Save the exact event order. Does your handler match the completion by attempt identity, or just the job label?

10分
RE
RebeccaAbbott0082

Just the job label. I've saved the sequence: earlier completion arrives after the new attempt starts. It reproduces the wrong match.

2分
VI
VictorAdams0098

Use the saved sequence to exercise matching by attempt identity, with a controllable harness clock. Making the ordering deterministic should cover this race condition.

18分
PR
PriyaBrown0916

A deterministic replay covers the schedule you give it. Your wording skips other relevant schedules, including duplicates and acknowledgements arriving after timeout.

20分
VI
VictorAdams0098

@PriyaBrown0916 You're right; my coverage claim was too broad. This schedule targets the reproduced mismatch, and the duplicate and post-timeout acknowledgement cases need their own schedules.

13分
RE
RebeccaAbbott0082

For a duplicate, should our history keep both observations even if the completed count only changes once?

7分
VI
VictorAdams0098

@RebeccaAbbott0082 Yes. Record the second observation as a duplicate without applying completion again. You want repeat delivery to leave the accepted result unchanged.

17分
JA
JaneBaker0510

Idempotent means ignoring it, basically? Or am I missing why you'd log something you ignored?

10分
VI
VictorAdams0098

@JaneBaker0510 Idempotence means reapplying the message doesn't change the result again. Recording that it arrived is separate from repeating the completion or count update.

17分
RE
RebeccaAbbott0082

The job-only match explains our reproduced failure. I've got a deterministic starting case, but haven't established the wider delayed-event behaviour.

16分
VI
VictorAdams0098

@RebeccaAbbott0082 That's a clear partial result: an isolated identity mistake, with the other delivery cases still unverified.

20分

参与讨论

欢迎来到 Application Robot

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

忘记密码?

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