Issue #3622732: Give the advance queue its table at install, so no start has to create one

A start queues its token from inside the transaction that creates the run, and the database queue creates its table the first time anything is queued. On MySQL that CREATE TABLE commits the open transaction implicitly, voiding the stack beneath it: a start on its own survives that, having been the only frame stacked, but a start made while another one is still open leaves the outer frames with nothing under them and the outer commit fails out of order, with both runs already written.

The table is now created when Orchestra is installed, and by an update for sites that already have it, so no start ever runs that DDL. The engine is untouched: checking on every start would put a schema query in front of work that does not need one, for a case that arises once in a site's life. A queue backend that is not the database one keeps its own storage, so the install skips it.

Edited by Frank Mably

Merge request reports

Loading
Loading