Affects Version/s: None
Michael and I ran into an issue today when running test/format on the LSM code.
It turns out that there is an issue when doing a checkpoint while closing a bulk cursor. The issue isn't related to LSM.
I've made some changes to the fop test application that demonstrate the problem. I pushed the changes to a new branch fops-bulk (https://github.com/wiredtiger/wiredtiger/tree/fops-bulk).
If I run fops with:
./t -n 1000 -r 1 -t 2
It regularly hangs. When I capture the state in a debugger, I can see:
The bulk close is attempting to get the schema lock while holding the handle lock. The checkpoint is attempting to get the handle lock while holding the schema lock.
I'm wondering if checkpoint should skip files that are being used for bulk load. Do you think that is a reasonable approach? I guess it would skip creating an empty file in a checkpoint if the open happened before a checkpoint started and the bulk cursor was opened after.