checking whether pthreads work with -pthread... yes checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE checking if more special flags are required for pthreads... no checking for NPTL bug... yes !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! You seem to have a buggy PTHREAD library! LinuxSampler would probably crash due to this. Please report us the system you are using and/or file a bug report to the bug tracking system of your distribution. If you have a NPTL-enabled glibc AND it was compiled for TLS as well, you can try to circumvent this problem for now by setting the environment variable LD_ASSUME_KERNEL="2.4.1" , which should cause this test to pass. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! configure: error: possibly NPTL glibc bug detected !!! Please attach the following file when seeking support: !!! /var/tmp/portage/media-sound/linuxsampler-1.0.0-r1/work/linuxsampler-1.0.0/config.log * ERROR: media-sound/linuxsampler-1.0.0-r1::gentoo failed (configure phase): * econf failed * * Call stack: * ebuild.sh, line 93: Called src_configure * environment, line 1882: Called econf '--enable-alsa-driver' '--disable-arts-driver' '--disable-jack-driver' '--disable-instruments-db' '--disable-static' * phase-helpers.sh, line 584: Called die * The specific snippet of code: * die "econf failed" * * If you need support, post the output of `emerge --info '=media-sound/linuxsampler-1.0.0-r1::gentoo'`, * the complete build log and the output of `emerge -pqv '=media-sound/linuxsampler-1.0.0-r1::gentoo'`. * The complete build log is located at '/var/log/portage/media-sound:linuxsampler-1.0.0-r1:20150124-010457.log'. * For convenience, a symlink to the build log is located at '/var/tmp/portage/media-sound/linuxsampler-1.0.0-r1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/media-sound/linuxsampler-1.0.0-r1/temp/environment'. * Working directory: '/var/tmp/portage/media-sound/linuxsampler-1.0.0-r1/work/linuxsampler-1.0.0' * S: '/var/tmp/portage/media-sound/linuxsampler-1.0.0-r1/work/linuxsampler-1.0.0' * GNU info directory index is up-to-date. * IMPORTANT: config file '/etc/crontab' needs updating. !!! existing preserved libs: >>> package: net-libs/zeromq-2.2.0 * - /usr/lib64/libzmq.so.3 * - /usr/lib64/libzmq.so.3.0.0 * used by /usr/lib64/perl5/vendor_perl/5.20.1/x86_64-linux/auto/ZMQ/LibZMQ3/LibZMQ3.so (dev-perl/ZMQ-LibZMQ3-1.19.0) Use emerge @preserved-rebuild to rebuild packages using these libraries * See the CONFIGURATION FILES section of the emerge * man page to learn how to update config files. ! ! ! This is a build bot chroot located at a hardened amd64 host ! ! ! Portage 2.2.15 (python 3.3.5-final-0, hardened/linux/amd64, gcc-4.9.2, glibc-2.20-r1, 3.18.2-hardened-r1 x86_64) ================================================================= System Settings ================================================================= System uname: Linux-3.18.2-hardened-r1-x86_64-Intel-R-_Core-TM-_i7-3770_CPU_@_3.40GHz-with-gentoo-2.2 KiB Mem: 16166860 total, 2112804 free KiB Swap: 16777212 total, 16712732 free Timestamp of tree: Fri, 23 Jan 2015 23:45:01 +0000 sh bash 4.3_p33-r1 ld GNU ld (Gentoo 2.24 p1.4) 2.24 ccache version 3.2.1 [disabled] app-shells/bash: 4.3_p33-r1 dev-java/java-config: 2.2.0 dev-lang/perl: 5.20.1-r4 dev-lang/python: 2.7.9-r1, 3.3.5-r1 dev-util/ccache: 3.2.1-r1 dev-util/cmake: 3.1.0 dev-util/pkgconfig: 0.28-r2 sys-apps/baselayout: 2.2 sys-apps/openrc: 0.13.8 sys-apps/sandbox: 2.6-r1 sys-devel/autoconf: 2.13, 2.69 sys-devel/automake: 1.9.6-r4, 1.11.6-r1, 1.13.4, 1.15 sys-devel/binutils: 2.24-r3 sys-devel/gcc: 4.9.2 sys-devel/gcc-config: 1.8 sys-devel/libtool: 2.4.5 sys-devel/make: 4.1-r1 sys-kernel/linux-headers: 3.18 (virtual/os-headers) sys-libs/glibc: 2.20-r1 Repositories: gentoo ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /var/lib/hsqldb /var/spool/torque" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-O2 -pipe" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--nospinner --tree --quiet-build --deep --jobs 1" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://mirror.leaseweb.com/gentoo/ http://ftp.uni-erlangen.de/pub/mirrors/gentoo http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ http://gd.tuwien.ac.at/opsys/linux/gentoo/" LANG="en_US.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j1" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.de.gentoo.org/gentoo-portage" USE="X acl aes-ni alsa amd64 apache2 avx avx2 berkdb bzip2 cli corefonts cracklib crypt cups cxx dbus dnssec dri drmkms dvd ecc ffmpeg fontconfig fortran fpm gdbm git gtk gudev gui hardened iconv isag jpeg justify libvirtd logrotate macvtap mbox minizip mmx modules multilib mysql ncurses nls nptl ogg opengl openmp pam pax_kernel pcre plasma png policykit qemu qt3support qt4 readline session spice sse sse2 sse4 sse4_1 sse4_2 ssh-askpass ssl ssse3 tcpd theora thinkpad threads tk tls truetype uml unicode urandom usb usbredir uxa v4l v4l2 vaapi video vorbis xa xattr xmp xscreensaver xtpax xvfb xvmc zenmap zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga nouveau nv r128 radeon savage sis tdfx trident vesa via vmware dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON The build log is stored in /var/log/portage/_emerge_20150124-020510.log The chroot image is amd64-unstable-hardened
Created attachment 394756 [details] config log
This is still happening with linuxsampler-2.0.0. I reported this bug upstream, as I believe it is their bug, but they insist that this only breaks on Gentoo and that they are allowed to ignore the documentation because it works on every other system. It seems Gentoo does something different, and even though what LinuxSampler does goes against the requirements of POSIX, it happens to work on every other distro and they believe this is Gentoo's fault. I don't know if there really is a subtle problem somehow triggered by a difference in the Gentoo glibc/pthreads stuff, or if they just got lucky with every other distro. I also run Hardened, as the original reporter of this bug does, so that's quite likely the difference in question. Upstream bug: https://bugs.linuxsampler.org/cgi-bin/show_bug.cgi?id=237 One workaround is to build with --enable-pthread-testcancel --disable-nptl-bug-check. If upstream doesn't want to do anything about this, then perhaps just adding that to the ebuild is the easiest way to go.
This seems to be triggered by hardened, as I haven't seen this error on my non-hardened (no-multilib profile) system. Of course we're willing to add a patch on our side. Pinging hardened team for their recommendation.
Confirmed on hardened. It seems they're doing use-after-free in the test. This is because pthread_mutex_lock is not a cancellation point in POSIX. The detached thread just breaks when the mutex is getting destroyed. That is just broken code that happens to not be caught on non-hardened. [23807.835365] traps: conftest[9128] general protection ip:7f83d2be53c8 sp:7f83d35ec420 error:0 in libgcc_s.so.1[7f83d2bd6000+16000]
Created attachment 425348 [details] info.txt ----------------------------------------------------------------- This is an unstable amd64 chroot image (named amd64-hardened-unstable_20160121-225008) at a hardened host acting as a tinderbox. ----------------------------------------------------------------- make.conf: USE="mmx sse sse2 pax_kernel -cdinstall -oci8 bindist alsa compat -csc -dvd gtk gudev haptic imap javaxml kvm -llvm minizip modplug multimedia ois opengl -openmpi plasma png python qemu qt4 sqlite svg system-jpeg system-libvpx system-sqlite usbredir v4l2 xa xscreensaver xslt"
Created attachment 425350 [details] emerge-history.txt
Created attachment 425352 [details] environment
Created attachment 425354 [details] media-sound:linuxsampler-2.0.0-r1:20160212-212522.log
I've pushed a patch that replaces PTHREAD_CANCEL_ASYNCHRONOUS with PTHREAD_CANCEL_DEFERRED. While I can't verify this with my non-hardened system, I have compared the code using -fsanitize=thread and can confirm that the old one segfaults, whereas with PTHREAD_CANCEL_DEFERRED it exits cleanly. commit c3f25a35664cfe0d06ff946157e2302fed763710 Author: David Seifert <soap@gentoo.org> Date: Fri Feb 12 22:17:21 2016 +0100 media-sound/linuxsampler: Fix undefined behaviour in NPTL test Gentoo-Bug: 537516 * EAPI=6 * Replace PTHREAD_CANCEL_ASYNCHRONOUS, which is undefined behaviour when used for a non-pure function
Toralf, please give it another shot... commit f7b26ec1e274a1985e25929b839221ed8f70e5e5 Author: David Seifert <soap@gentoo.org> Date: Sat Feb 13 13:42:08 2016 +0100 media-sound/linuxsampler: Fixed automagic dependency on media-libs/lv2 Gentoo-Bug: 557010 * Added USE=lv2 flag, which pulls in media-libs/lv2 as dependency * Fix configure.ac automagically enabling lv2 support * Amend metadata.xml to reflect new USE flag