On 4/6/20 4:51 AM, Damien Le Moal wrote: > Commit b27aef6abfba ("zbd: use zone_lock to lock a zone") to fix > potential deadlocks with zonemode=zbd zone locking was incomplete. > The execution of the zone lock stress test t/zbd test case 48 still > sometimes lead to deadlocks (a large number of repeated execution is > sometimes needed). > > The remaining deadlock pattern identified with the repeated execution > of this test is due to the concurrent execution of jobs doing random > async writes to zones. In such case, any of the job may trigger an all > zone reset through the path get_next_rand_block() -> fio_file_reset() > while async writes are still inflight. The fix for this is to use the > zone_lock() function instead of directly calling pthread_mutex_lock()i > to ensure that no async IO is inflight for a zone that is part of a > reset range. Applied, thanks. -- Jens Axboe