Hi,
I was able to confirm that rebuilding glusterfs without tcmalloc (now
also on x86) fixes this issue.
Debugging revealed that this is due to tgt late dlopening optional
storage backends.
So if you have some of them installed like packages tgt-rbd +
tgt-glusterfs they will initialize late.

Since glusterfs now will pull in tcmalloc when doing so it will
late-override symbols and we have a conflict of allocations by libc
and tcmalloc leading to this crash.

I've found many similar issues:
- https://github.com/gperftools/gperftools/issues/1066
- https://github.com/kcat/openal-soft/issues/134
- https://tracker.ceph.com/issues/23653
- https://bugzilla.redhat.com/show_bug.cgi?id=1569391

The already linked Ubuntu bug also has some more debugging data for
those curious about it, but the TL;DR seems to be: "using tcmalloc in
a lib (like libgf* of glusterfs) is calling for issues as anyone
loading it late or multiple of them will likely crash the program."

Therefore this needs the same fix done for [1], just dropping the arch
restriction.
I'll NMU upload this based on Patrick's request to resolve 999700 as
NMU [2] since this one here is essentially the same issue but on x86.

Once he is back he can have a look (or discuss with upstream) if there
is a way to re-enable tcmalloc without causing all these issues.

Attached is the debdiff that will implement this.

[1]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=999700
[2]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=999700#15

-- 
Christian Ehrhardt
Staff Engineer, Ubuntu Server
Canonical Ltd

Attachment: fix-tcmalloc-x86-debian-999619.debdiff
Description: Binary data

Reply via email to