Page MenuHomePhabricator

PHP-queue predis backend is losing data when exit() is call in popAtomic callback
Open, Needs TriagePublic


When we get a DB error like a constraint violation, the message is dropped.

We're wrapping the lpop call that takes the message off the list in a predis MultiExec transaction along with the callback:

If there's an exception, the predis driver discards the transaction, leaving the message on the queue:

But the exit() being called by Civi seems to break that. Why is the predis driver committing the txn? Is there an autocommit option set someplace?