QueueClassic/queue_classic

QC is not thread safe

smathieu opened this issue · 2 comments

In version 3.1RC1

If you're using a forking worker such as puma, the QC.default_conn_adapter method gets memorized globally. Since each thread normally have their own db connection, the DB connection used by QC will be a different one to the one used by the web process.

This breaks transaction isolation and can create crashes that are very painful to debug.

ukd1 commented

👍 good find

senny commented

I'm closing this one as #248 has been merged.

@smathieu feel free to reopen if there is more todo.