Starting worker does not work with no cache timeout
When the cache timeout is 0, the call to pool.init
does not result in filled pool so the next call to Pool.get
fails.
This is because a transaction is started before calling pool.init
. At start Cache.sync
is called but it does not start a listener because _clean_last
is not set. But pool.init
fills the _modules
with an empty list. Then load_modules
starts a new transaction which calls Cache.sync
which start a listener that trigger a Pool.refresh
but this times it is actually refreshed because _modules
is an empty list.
The result is that at the end of the pool.init
, the pool is not filled.
This has been fixed by 30429d744d29 but older series are still affected.