Hi Folks,
We faced a deadlock caused by acquiring the same lock twice in src/modules/dmq_usrloc/usrloc_sync.c
dmq_ul.lock_udomain(_d, &aor);
lock_get(_d->table[sl].lock);
get_urecord_by_ruid
lock_ulslot(_d, sl);
lock_get(_d->table[i].lock);
The attached fix will not lock until get_urecord_by_ruid as returned.
Regards Julien
Sorry first patch was missing a lock that was required
On Tue, Dec 27, 2016 at 11:19 AM, Julien Chavanton jchavanton@gmail.com wrote:
Hi Folks,
We faced a deadlock caused by acquiring the same lock twice in src/modules/dmq_usrloc/usrloc_sync.c
dmq_ul.lock_udomain(_d, &aor);
lock_get(_d->table[sl].lock);
get_urecord_by_ruid
lock_ulslot(_d, sl);
lock_get(_d->table[i].lock);
The attached fix will not lock until get_urecord_by_ruid as returned.
Regards Julien