Moving what an order already holds into the part of the house a booker chose works out the new seats first and then goes and takes them, and the working out happens above the hold's locks. Between the two the party waits, and under a rush that wait runs into seconds, so the seats it settled on can be gone by the time it holds the locks. The exchange is all or nothing, so nothing is lost, but the booker asked for that part of the house and does not get it.
That is the shape #3616896: Seat a party under the hold's own locks, so a rush is served rather than refused removed from the hold path, and what makes a move the case still worth removing it from is where it reaches. A pass that closes a hole ranks the runs it could take by how much of the party already sits in them, and the party's own seats cannot be taken by anybody else, so what it is exposed on is a handful of seats. A move reaches into an area the party holds nothing in, so every seat it wants is one a stranger can take.
The same moment reaches an ordinary claim by quantity, where a seat the engine composed above the locks can be taken before the hold. Whether that deserves a sentence or a second attempt at composing is open, and it belongs here rather than with the wording, because it is this race and not a question of words.
The lock scope is the part that is already settled. A move names the area it moves into, and the party's own places say which parts of the house it is leaving, so what it must be alone with is known before anything is composed, and the anchors from #3616896: Seat a party under the hold's own locks, so a rush is served rather than refused already turn an area on a line into the row to wait on.
Two things a fix has to get right, both of them learned on the hold path. A rearrangement holds no new units, so a pending line that the group policies read as fresh demand would refuse a party for holding the very seats it is handing over. And retrying is the tempting shortcut and the dangerous one: a refused attempt is rolled back in the database while the entities in memory still say released, so a second attempt can work from a wrong picture, and quietly.
Not the pass that closes a hole, which is left exactly as it is. Measured on the load rig on one house filling from a third to three quarters full, at and past the knee where a hold waits seconds: 3272 claims, 1510 rearrangements that moved a party, and no refusal at all. The move itself is not covered by that reading, since the driver posts no choice of area.
The words a refusal reaches the booker in were a separate matter, and merged as #3618536: A booker who asked for a number is told a seat they never chose is taken, and hears about a repair they never asked for.
AI-Generated: Yes (Claude Code was used to draft this issue summary, to take the measurements it refers to, and to write the code, the documentation, the tests and the load driver change on the merge request. I review and run the work before it is merged.)
Issue fork yoyaku-3617880
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #2
mably commentedComment #4
mably commentedComment #5
mably commentedComment #7
mably commented