[FIX] pos_restaurant: wait for the order sync instead of racing it
The "Check if order has a server ID" step of the test_book_and_release_table
tour sampled the order's id exactly once and threw if it was not yet a number.
Nothing sequenced that sample after the syncAllOrders RPC that assigns the id:
the preceding waitForLoading() only waits for `body:not(:has(.loader))`, and
the step's own `trigger: "body"` matches immediately. Whether the step passed
was therefore decided by whether the server happened to answer first.
On Viindoo's runbot it does not. Subbuild 407980 shows the step running at
02:05:36,110 and the server logging "created pos.order #563" at 02:05:36,152 -
the assertion lost the race by 42 ms and the tour failed, even though the order
was created successfully moments later.
The margin is small and hardware-dependent, not caused by module load. Measured
across 24 runs at four addons-path scales (58, 126, 293 and 1330 installed
modules - the last exceeding runbot's own 1089), the server won locally by
+50..+93 ms every time, and a 23x growth in installed modules moved the mean by
only ~24%. Registry size, POS asset-bundle weight and third-party POS addons
were each ruled out as the mechanism; what differs is how fast the machine is.
Poll for the id with a deadline instead of sampling once, so the step waits for
the sync it depends on rather than racing it. The thrown error is unchanged, so
existing log triage still matches.
The usual idiom for a non-deterministic tour step is a more specific `trigger`,
letting the tour engine's own retry loop do the waiting - see 8cb86ec07ad5
"[FIX] lunch: fix non-determistic tour error". It does not transfer here: the
condition is JS model state (posmodel's pos.order id), not a DOM fact, so there
is no selector to wait on.
Verified by constructing the failure, since the race is won on the development
machine and cannot be reproduced there naturally. With a 400 ms sleep injected
into pos.order.sync_from_ui, the unfixed tour fails with exactly the runbot
signature ("FAILED: [7/10] ... Step Check if order has a server ID" /
"Order does not have a valid server ID", delta -360 ms). With that same sleep
still in place, the fixed tour passes all 10 steps (delta -320 ms - the server
is still slow, the step now waits for it). With the sleep removed the fixed tour
passes at +86 ms, back inside the natural baseline band, and the rest of the
pos_restaurant suite is unaffected (0 failed, 0 errors; the one skip,
test_13_crm_team, needs pos_sale and is pre-existing).
| Subbuilds | Name | State | Detail |
|---|---|---|---|
| Build 408364 | At install tests: from account to website_sms 3m | Failed | Log |
| Build 408365 | Post install tests: step install all modules 3m | Failed | Log |
| Build 408366 | Post install tests: from account to hr_recruitment_survey | Failed | |
| Build 408367 | Post install tests: from hr_skills to phone_validation | Failed | |
| Build 408368 | Post install tests: from point_of_sale to purchase_requisition_stock | Failed | |
| Build 408369 | Post install tests: from purchase_stock to test_lint | Failed | |
| Build 408370 | Post install tests: from test_mail to to_purchase_line_numbering | Failed | |
| Build 408371 | Post install tests: from to_purchase_order_advance to viin_approval_purpose_routing | Failed | |
| Build 408372 | Post install tests: from viin_approval_sale to viin_product_approval_marketplace | Failed | |
| Build 408373 | Post install tests: from viin_product_approval_marketplace_website_sale to web_unsplash | Failed | |
| Build 408374 | Post install tests: from website to website_sms | Failed |
| Create Date | Level | Message |
|---|---|---|
| 08/26/2026 20:20:05 | INFO |
Updated repository Viindoo-tvtmaaddons
|
| 08/26/2026 20:20:05 | INFO |
Updated repository Viindoo-erponline-enterprise
|
| 08/26/2026 20:20:05 | INFO |
Updated repository Viindoo-branding
|
| 08/26/2026 20:20:05 | INFO |
Cloned repository Viindoo-odoo
|
| 08/26/2026 20:25:29 | ERROR |
Subbuild # 408364:
Container rb-c8e3d56-224268-408364 exited with code 1 but its log holds no recognised error
|
| 08/26/2026 20:25:29 | ERROR |
Subbuild # 408365:
Container rb-c8e3d56-224268-408365 exited with code 1 but its log holds no recognised error
|