That said, the above trace looks suspiciously like a double-unlock. That breaks pthread rules, but the software implementation has historically let you do it anyway (or, rather, it fails to abort there because it would be expensive to do so, but your code is still buggy, prone to hanging, etc).
There's a thread on debian-devel right now about this same issue[1] as it related to ghostscript, where people noticed that with hardware lock elision, the world exploded, and without, it seemed to work, maybe, ish (though, as I said, the ghostscript bug was likely the cause of some mysterious hangs).
A test build of glibc with lock elision disabled is in progress here:
https:/ /launchpad. net/~adconrad/ +archive/ ubuntu/ nole/+packages
That said, the above trace looks suspiciously like a double-unlock. That breaks pthread rules, but the software implementation has historically let you do it anyway (or, rather, it fails to abort there because it would be expensive to do so, but your code is still buggy, prone to hanging, etc).
There's a thread on debian-devel right now about this same issue[1] as it related to ghostscript, where people noticed that with hardware lock elision, the world exploded, and without, it seemed to work, maybe, ish (though, as I said, the ghostscript bug was likely the cause of some mysterious hangs).
[1] https:/ /lists. debian. org/debian- devel/2016/ 11/msg00210. html