Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 818871 - dev-libs/leveldb-1.23: fails tests on arm64 (related to dev-util/google-perftools on arm64)
Summary: dev-libs/leveldb-1.23: fails tests on arm64 (related to dev-util/google-perft...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Arthur Zamarin
URL:
Whiteboard:
Keywords: PATCH, TESTFAILURE
Depends on: 820449
Blocks: 807025
  Show dependency tree
 
Reported: 2021-10-19 00:57 UTC by Sam James
Modified: 2021-10-27 22:54 UTC (History)
1 user (show)

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


Attachments
build.log (file_818871.txt,49.80 KB, text/plain)
2021-10-19 00:57 UTC, Sam James
Details
LastTest.log (file_818871.txt,4.74 KB, text/plain)
2021-10-19 00:58 UTC, Sam James
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sam James archtester Gentoo Infrastructure gentoo-dev Security 2021-10-19 00:57:35 UTC
Created attachment 745713 [details]
build.log

0% tests passed, 8 tests failed out of 8

Total Test time (real) =   0.99 sec

The following tests FAILED:
	  1 - c_test (SEGFAULT)
	  2 - fault_injection_test (SEGFAULT)
	  3 - issue178_test (SEGFAULT)
	  4 - issue200_test (SEGFAULT)
	  5 - issue320_test (SEGFAULT)
	  6 - env_test (SEGFAULT)
	  7 - status_test (SEGFAULT)
	  8 - no_destructor_test (SEGFAULT)
Errors while running CTest
Output from these tests are in: /var/tmp/portage/dev-libs/leveldb-1.23/work/leveldb-1.23_build/Testing/Temporary/LastTest.log
Use "--rerun-failed --output-on-failure" to re-run the failed cases verbosely.
 * ERROR: dev-libs/leveldb-1.23::gentoo failed (test phase):
 *   Tests failed. When you file a bug, please attach the following file: 
 * 	/var/tmp/portage/dev-libs/leveldb-1.23/work/leveldb-1.23_build/Testing/Temporary/LastTest.log
 * 

----
Portage 3.0.22 (python 3.9.7-final-0, default/linux/arm64/17.0/desktop/gnome, gcc-11.2.0, glibc-2.33-r7, 5.10.73-gentoo-dist aarch64)
=================================================================
System uname: Linux-5.10.73-gentoo-dist-aarch64-with-glibc2.33
KiB Mem:   131631672 total,  75399644 free
KiB Swap:   16777212 total,  16777212 free
Timestamp of repository gentoo: Mon, 18 Oct 2021 21:06:32 +0000
sh bash 5.1_p8
ld GNU ld (Gentoo 2.37_p1 p0) 2.37
app-shells/bash:          5.1_p8::gentoo
dev-java/java-config:     2.3.1::gentoo
dev-lang/perl:            5.34.0-r2::gentoo
dev-lang/python:          3.8.12_p1::gentoo, 3.9.7_p1::gentoo, 3.10.0_rc2::gentoo
dev-lang/rust-bin:        1.55.0::gentoo
dev-util/cmake:           3.21.3::gentoo
sys-apps/baselayout:      2.8::gentoo
sys-apps/openrc:          0.44.5::gentoo
sys-apps/sandbox:         2.25::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.71-r1::gentoo
sys-devel/automake:       1.16.4::gentoo
sys-devel/binutils:       2.37_p1::gentoo
sys-devel/gcc:            11.2.0::gentoo
sys-devel/gcc-config:     2.4::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.3::gentoo
sys-kernel/linux-headers: 5.14::gentoo (virtual/os-headers)
sys-libs/glibc:           2.33-r7::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-extra-opts:
    sync-rsync-verify-jobs: 1
    sync-rsync-verify-metamanifest: yes
    sync-rsync-verify-max-age: 24

ACCEPT_KEYWORDS="arm64 ~arm64"
ACCEPT_LICENSE="*"
CBUILD="aarch64-unknown-linux-gnu"
CFLAGS="-O2 -pipe -march=native -frecord-gcc-switches"
CHOST="aarch64-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe -march=native -frecord-gcc-switches"
DISTDIR="/var/cache/distfiles"
EMERGE_DEFAULT_OPTS="--keep-going --complete-graph --usepkg=y --with-bdeps=y --deep --usepkg-exclude virtual/* --usepkg-exclude acct-*/*"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -pipe -march=native -frecord-gcc-switches"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg cgroup config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox mount-sandbox multilib-strict network-sandbox news parallel-fetch parallel-install pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe -march=native -frecord-gcc-switches"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="C.UTF8"
LDFLAGS="-O2 -pipe -march=native -frecord-gcc-switches -Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0"
PKGDIR="/var/cache/binpkgs"
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 --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac acl acpi alsa arm64 bluetooth branding bzip2 cairo cdda cdr cli colord crypt cups dbus dri dts dvdr eds elogind emboss encode evo exif flac fortran gdbm gif gnome gnome-keyring gnome-online-accounts gpm gstreamer gtk gui hardened iconv icu introspection ipv6 jpeg lcms libglvnd libnotify libsecret libtirpc mad mng mp3 mp4 mpeg nautilus ncurses networkmanager nls nptl ogg opengl openmp pam pango pcre pdf png policykit ppds pulseaudio qt5 readline sdl seccomp spell split-usr ssl startup-notification svg sysprof tcpd tiff tracker truetype udev udisks unicode upower usb verify-sig vorbis wayland wxwidgets x264 xattr xcb xml xv xvid zlib" ADA_TARGET="gnat_2019" 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="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_ARM="edsp thumb thumb2 v4 v5 v6 v7 v8 vfp vfp-d32 vfpv3 vfpv4" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput" KERNEL="linux" L10N="en en-US en-GB" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3 php7-4" POSTGRES_TARGETS="postgres12 postgres13" PYTHON_SINGLE_TARGET="python3_9" PYTHON_TARGETS="python3_9 python3_8" RUBY_TARGETS="ruby26 ruby27" USERLAND="GNU" VIDEO_CARDS="fbdev dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RUSTFLAGS
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2021-10-19 00:58:16 UTC
Created attachment 745716 [details]
LastTest.log
Comment 2 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2021-10-24 07:10:16 UTC
I got e.g. this backtrace from test_c:
``
Starting program: /var/tmp/portage/dev-libs/leveldb-1.23/work/leveldb-1.23_build/c_test
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x0000fffff792ea08 in ?? () from /usr/lib64/libunwind.so.8
(gdb) bt
#0  0x0000fffff792ea08 in ?? () from /usr/lib64/libunwind.so.8
#1  0x0000fffff792f3d4 in _ULaarch64_is_signal_frame () from /usr/lib64/libunwind.so.8
#2  0x0000fffff792f9ec in _ULaarch64_step () from /usr/lib64/libunwind.so.8
#3  0x0000fffff7d80e84 in ?? () from /usr/lib64/libtcmalloc.so.4
#4  0x0000fffff7d801f8 in ?? () from /usr/lib64/libtcmalloc.so.4
#5  0x0000fffff7d81374 in GetStackTrace(void**, int, int) () from /usr/lib64/libtcmalloc.so.4
#6  0x0000fffff7d715a8 in tcmalloc::PageHeap::GrowHeap(unsigned long) () from /usr/lib64/libtcmalloc.so.4
#7  0x0000fffff7d7183c in tcmalloc::PageHeap::New(unsigned long) () from /usr/lib64/libtcmalloc.so.4
#8  0x0000fffff7d6f778 in tcmalloc::CentralFreeList::Populate() () from /usr/lib64/libtcmalloc.so.4
#9  0x0000fffff7d6f990 in tcmalloc::CentralFreeList::FetchFromOneSpansSafe(int, void**, void**) () from /usr/lib64/libtcmalloc.so.4
#10 0x0000fffff7d6fa3c in tcmalloc::CentralFreeList::RemoveRange(void**, void**, int) () from /usr/lib64/libtcmalloc.so.4
#11 0x0000fffff7d732e8 in tcmalloc::ThreadCache::FetchFromCentralCache(unsigned int, int, void* (*)(unsigned long)) () from /usr/lib64/libtcmalloc.so.4
#12 0x0000fffff7d847bc in tcmalloc::allocate_full_malloc_oom(unsigned long) () from /usr/lib64/libtcmalloc.so.4
#13 0x0000fffff7bd1264 in ?? () from /usr/lib/gcc/aarch64-unknown-linux-gnu/11.2.0/libstdc++.so.6
#14 0x0000fffff7fd641c in call_init (l=<optimized out>, argc=argc@entry=1, argv=argv@entry=0xfffffffff128, env=env@entry=0xfffffffff138) at dl-init.c:74
#15 0x0000fffff7fd6514 in call_init (env=0xfffffffff138, argv=0xfffffffff128, argc=1, l=<optimized out>) at dl-init.c:37
#16 _dl_init (main_map=0xfffff7fff280, argc=1, argv=0xfffffffff128, env=0xfffffffff138) at dl-init.c:121
#17 0x0000fffff7fc8d08 in _dl_start_user () from /lib/ld-linux-aarch64.so.1
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)
```

I thought I'd check Fedora given they support arm64, and they do indeed patch google-perftools: https://src.fedoraproject.org/rpms/gperftools/blob/rawhide/f/gperftools.spec#_77. Applying their patch for the new configure option for TLS and passing it via EXTRA_ECONF allows the tests for leveldb to pass.
Comment 3 Larry the Git Cow gentoo-dev 2021-10-27 05:34:17 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dd53c589c7aa7c42624b0053ec4523ac2015a7ac

commit dd53c589c7aa7c42624b0053ec4523ac2015a7ac
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2021-10-27 05:31:46 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2021-10-27 05:34:03 +0000

    dev-util/google-perftools: add Fedora TLS patch for arm64
    
    Use Fedora's TLS (thread local storage) patch to fix segfaults
    in consumers on e.g. arm64. We also apply the new
    configure option on s390 as Fedora do, but there might
    be other arches where this is needed.
    
    Bug: https://bugs.gentoo.org/818871
    Signed-off-by: Sam James <sam@gentoo.org>

 ...rftools-2.9.1-disable-generic-dynamic-tls.patch |  34 +++++++
 .../google-perftools-2.9.1-r1.ebuild               | 111 +++++++++++++++++++++
 2 files changed, 145 insertions(+)
Comment 4 Larry the Git Cow gentoo-dev 2021-10-27 05:37:41 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=77615d7b99d8048194e82df0103e69756b0ca864

commit 77615d7b99d8048194e82df0103e69756b0ca864
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2021-10-27 05:37:24 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2021-10-27 05:37:24 +0000

    dev-util/google-perftools: minor ebuild tidying, fix typo in 2.9.1-r1 too
    
    Bug: https://bugs.gentoo.org/818871
    Bug: https://bugs.gentoo.org/820449
    Signed-off-by: Sam James <sam@gentoo.org>

 ...ols-2.9.1-r1.ebuild => google-perftools-2.9.1-r2.ebuild} | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)
Comment 5 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2021-10-27 05:38:16 UTC
Added patch after discussion w/ gyakovlev, waiting on stable now.
Comment 6 Larry the Git Cow gentoo-dev 2021-10-27 22:54:43 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1679b572999e75d58bb326aa545611e1bcf06639

commit 1679b572999e75d58bb326aa545611e1bcf06639
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2021-10-27 22:54:30 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2021-10-27 22:54:30 +0000

    dev-util/google-perftools: drop 2.7-r1
    
    Closes: https://bugs.gentoo.org/818871
    Bug: https://bugs.gentoo.org/820449
    Signed-off-by: Sam James <sam@gentoo.org>

 dev-util/google-perftools/Manifest                 |  1 -
 .../google-perftools/files/2.8-musl-tests.patch    | 28 -------
 .../google-perftools/files/fix_ppc64el_FTBFS.patch | 31 --------
 .../google-perftools-2.7-r1.ebuild                 | 93 ----------------------
 4 files changed, 153 deletions(-)