Open
Description
Steps to reproduce:
- Set parameters in firebird.conf:
MaxParallelWorkers = 8
ParallelWorkers = 8
- Execute the script in isql:
index_create_deadlock.txt
As a result 7 out of 8 threads are waiting for a SR lock on the t1_idx1
index. Besides that, another interesting thing is that the main thread (which coordinates worker threads) is waiting for this lock too, while one of the worker threads has already done its job. I guess there is a problem in getWorkItem()
. The worker thread sometimes is fast enough to get an item with the main attachment (where m_ownAttach
is false) before the main thread. I'm not sure that's the way it's supposed to work.