Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 537516 - media-sound/linuxsampler-1.0.0-r1 - configure: error: possibly NPTL glibc bug detected
Summary: media-sound/linuxsampler-1.0.0-r1 - configure: error: possibly NPTL glibc bug...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Sound Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-01-24 09:28 UTC by Toralf Förster
Modified: 2016-02-13 16:00 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
config log (config.log,45.79 KB, text/plain)
2015-01-24 09:28 UTC, Toralf Förster
Details
info.txt (info.txt,6.55 KB, text/plain)
2016-02-12 21:32 UTC, Toralf Förster
Details
emerge-history.txt (emerge-history.txt,674.94 KB, text/plain)
2016-02-12 21:32 UTC, Toralf Förster
Details
environment (environment,105.04 KB, text/plain)
2016-02-12 21:32 UTC, Toralf Förster
Details
media-sound:linuxsampler-2.0.0-r1:20160212-212522.log (media-sound:linuxsampler-2.0.0-r1:20160212-212522.log,159.08 KB, text/plain)
2016-02-12 21:32 UTC, Toralf Förster
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Toralf Förster gentoo-dev 2015-01-24 09:28:25 UTC
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
Comment 1 Toralf Förster gentoo-dev 2015-01-24 09:28:40 UTC
Created attachment 394756 [details]
config log
Comment 2 Hector Martin 2015-08-12 06:12:50 UTC
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.
Comment 3 Ben de Groot (RETIRED) gentoo-dev 2015-08-12 07:48:28 UTC
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.
Comment 4 Radoslaw Szkodzinski 2015-10-05 00:52:54 UTC
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]
Comment 5 Toralf Förster gentoo-dev 2016-02-12 21:32:38 UTC
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"
Comment 6 Toralf Förster gentoo-dev 2016-02-12 21:32:40 UTC
Created attachment 425350 [details]
emerge-history.txt
Comment 7 Toralf Förster gentoo-dev 2016-02-12 21:32:43 UTC
Created attachment 425352 [details]
environment
Comment 8 Toralf Förster gentoo-dev 2016-02-12 21:32:46 UTC
Created attachment 425354 [details]
media-sound:linuxsampler-2.0.0-r1:20160212-212522.log
Comment 9 David Seifert gentoo-dev 2016-02-12 21:33:16 UTC
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
Comment 10 David Seifert gentoo-dev 2016-02-13 12:46:23 UTC
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