View Issue Details

IDProjectCategoryView StatusLast Update
0000241fileGeneralpublic2021-03-14 17:03
Reporterthesamesam Assigned Tochristos  
PrioritynormalSeverityminorReproducibilityunable to reproduce
Status resolvedResolutionfixed 
PlatformLinuxOSGentoo GNU/LinuxOS Versionamd64 (stable)
Product Version5.39 
Fixed in Version5.40 
Summary0000241: file is killed by seccomp filter when executing futex syscall
DescriptionA user reported to us in Gentoo that all file invocations, when built with seccomp, resulted in "bad system call" (i.e. killed by the seccomp filter).

They were able to produce strace output showing futex() was the problematic syscall, although it's not clear why futex() is being used here. I've attached their system information and strace output.

Currently, src/seccomp.c has:
>#ifdef XZLIBSUPPORT
> ALLOW_RULE(futex);
>#endif

So, clearly we expect futex in some cases. In this case, the user had not built file with LZMA support, but when they were asked to enable it, the issue disappeared (as expected).

Do you have any suggestions as to why this syscall was being used (and if it is problematic - seems not), or does the filter simply need updating to allow it unconditionally?
Steps To ReproduceNot been able to reproduce, but often these changes are quite sensitive to glibc version and other factors in the system environment.

The user's glibc version appeared to be the main version in deployment in Gentoo and has not been visible on any of my systems. This is the only report I've seen of this issue, although in the past we've occasionally seen this style of problem with other syscalls that was resolved by filter updates upstream in file.

I am happy to try pass on questions to the user downstream.
Additional InformationDownstream report in Gentoo: https://bugs.gentoo.org/771096
TagsNo tags attached.

Activities

thesamesam

2021-03-02 05:03

reporter  

emerge_info.txt (7,876 bytes)   
emerge --info
Portage 3.0.13 (python 3.8.7-final-0, default/linux/amd64/17.1/desktop/gnome, gcc-9.3.0, glibc-2.32-r6, 5.4.92-gentoo x86_64)
=================================================================
System uname: Linux-5.4.92-gentoo-x86_64-Intel-R-_Core-TM-_i5-6400_CPU_@_2.70GHz-with-glibc2.2.5
KiB Mem:    16354360 total,    714016 free
KiB Swap:    7999484 total,   7998716 free
Timestamp of repository gentoo: Sun, 14 Feb 2021 18:30:01 +0000
Head commit of repository gentoo: 56e0659a8b27ec63c6803299817306cbc912da43
Timestamp of repository dotnet: Mon, 08 Feb 2021 11:17:19 +0000
Head commit of repository dotnet: 6d8823ab968890067271447516ad4db90dfd4387

Head commit of repository steam-overlay: 656212492f399065178bd255e27530ebe6886361

sh dash 0.5.11.3-r1
ld GNU ld (Gentoo 2.35.1 p2) 2.35.1
ccache version 4.1 [enabled]
app-shells/bash:          5.0_p18::gentoo
dev-java/java-config:     2.3.1::gentoo
dev-lang/perl:            5.30.3::gentoo
dev-lang/python:          2.7.18-r6::gentoo, 3.7.9-r2::gentoo, 3.8.7-r1::gentoo, 3.9.1-r1::gentoo
dev-util/ccache:          4.1::gentoo
dev-util/cmake:           3.18.5::gentoo
sys-apps/baselayout:      2.7::gentoo
sys-apps/openrc:          0.42.1-r1::gentoo
sys-apps/sandbox:         2.20::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r5::gentoo
sys-devel/automake:       1.16.2-r1::gentoo
sys-devel/binutils:       2.35.1-r1::gentoo
sys-devel/gcc:            8.4.0-r1::gentoo, 9.3.0-r2::gentoo
sys-devel/gcc-config:     2.3.2-r1::gentoo
sys-devel/libtool:        2.4.6-r6::gentoo
sys-devel/make:           4.3::gentoo
sys-kernel/linux-headers: 5.4-r1::gentoo (virtual/os-headers)
sys-libs/glibc:           2.32-r6::gentoo
Repositories:

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

dotnet
    location: /var/db/repos/dotnet
    sync-type: git
    sync-uri: https://github.com/gentoo-mirror/dotnet.git
    masters: gentoo

edgets
    location: /var/db/repos/edgets
    masters: gentoo

crossdev
    location: /var/db/repos/portage-crossdev
    masters: gentoo
    priority: 10

4nykey
    location: /var/lib/layman/4nykey
    masters: gentoo
    priority: 50

ace
    location: /var/lib/layman/ace
    masters: gentoo
    priority: 50

beatussum-overlay
    location: /var/lib/layman/beatussum-overlay
    masters: gentoo
    priority: 50

guru
    location: /var/lib/layman/guru
    masters: gentoo
    priority: 50

jorgicio
    location: /var/lib/layman/jorgicio
    masters: gentoo
    priority: 50

rage
    location: /var/lib/layman/rage
    masters: gentoo
    priority: 50

steam-overlay
    location: /usr/local/portage/steam-overlay
    sync-type: git
    sync-uri: https://github.com/anyc/steam-overlay.git
    masters: gentoo
    priority: 50

trolltoo
    location: /var/lib/layman/trolltoo
    masters: gentoo
    priority: 50

vowstar
    location: /var/lib/layman/vowstar
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt"
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 /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/media/ivo/storage/distfiles"
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="-march=native -O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs ccache config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch 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="-march=native -O2 -pipe"
GENTOO_MIRRORS="http://mirror.dkm.cz/gentoo/"
LANG="cs_CZ.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j5"
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 --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac acl acpi alsa amd64 appindicator berkdb bluetooth branding bzip2 cairo cdda cdr cli colord crypt cuda cups custom-jdk cycles dbus dri dts dvd dvdr eds elogind emboss encode evo exif fat ffmpeg ffmpg flac fluidsynth fortran gconfi gdbm gdm gif gnome gnome-keyring gnome-online-accounts gnome-shell google googledrive gpm gstreamer gtk gtk3 gui hardcode-tray-fix hwaccel iconv icu imlib introspection ipv6 jpeg jumbo-build lcms libgig libglvnd libnotify libsecret libtirpc mad matroska minizip mng mp3 mp4 mpeg mtp multilib nautilus ncurses networkmanager nls nptl nsplugin ntfsprogs ogg openal opencl opengl openimageio openmp pam pango pcre pdf png policykit postproc ppds pulseaudio python qt5 rdp readline samba sdl seccomp secure-delete sensors soundio spell split-usr ssh ssl startup-notification steamruntime stk subversion svg sysprof system-ffmpeg system-mesa systray tcpd tiff tools tracker truetype ttf udev udisks unicode upower usb vaapi vdpau vim-syntax vkd3d vnc vorbis vpx vst vulkan wxwidgets x264 xattr xcb xinerama xml xv xvid zlib zsh-completion" ABI_X86="64" ADA_TARGET="gnat_2018" 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="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" 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="evdev" KERNEL="linux" L10N="cs" 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="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_8" PYTHON_TARGETS="python3_8" RUBY_TARGETS="ruby26" USERLAND="GNU" VIDEO_CARDS="nvidia" 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:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
emerge_info.txt (7,876 bytes)   
strace.txt (15,549 bytes)   
$ strace file ~/.bashrc

execve("/usr/bin/file", ["file", "/home/user/.bashrc"], 0x7fff74d08c58 /* 74 vars */) = 0
brk(NULL)                               = 0x55e04e3e3000
openat(AT_FDCWD, "/usr/lib64/libgio-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\270\3\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1857608, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff54a543000
mmap(NULL, 1867584, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff54a37b000
mprotect(0x7ff54a3b3000, 1593344, PROT_NONE) = 0
mmap(0x7ff54a3b3000, 1040384, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x38000) = 0x7ff54a3b3000
mmap(0x7ff54a4b1000, 548864, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x136000) = 0x7ff54a4b1000
mmap(0x7ff54a538000, 40960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bc000) = 0x7ff54a538000
mmap(0x7ff54a542000, 3904, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff54a542000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib64/libglib-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\315\1\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1201032, ...}) = 0
mmap(NULL, 1206440, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff54a254000
mprotect(0x7ff54a270000, 1081344, PROT_NONE) = 0
mmap(0x7ff54a270000, 532480, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c000) = 0x7ff54a270000
mmap(0x7ff54a2f2000, 544768, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9e000) = 0x7ff54a2f2000
mmap(0x7ff54a378000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x123000) = 0x7ff54a378000
mmap(0x7ff54a37a000, 2216, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff54a37a000
close(3)                                = 0
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=218596, ...}) = 0
mmap(NULL, 218596, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ff54a21e000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib64/libmagic.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0PG\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=158712, ...}) = 0
mmap(NULL, 161688, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff54a1f6000
mmap(0x7ff54a1fa000, 102400, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0x7ff54a1fa000
mmap(0x7ff54a213000, 36864, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1d000) = 0x7ff54a213000
mmap(0x7ff54a21c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x25000) = 0x7ff54a21c000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib64/libseccomp.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320Q\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=309280, ...}) = 0
mmap(NULL, 311568, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff54a1a9000
mmap(0x7ff54a1ce000, 40960, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x25000) = 0x7ff54a1ce000
mmap(0x7ff54a1d8000, 16384, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2f000) = 0x7ff54a1d8000
mmap(0x7ff54a1dc000, 106496, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x32000) = 0x7ff54a1dc000
close(3)                                = 0
openat(AT_FDCWD, "/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0@\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1798224, ...}) = 0
mmap(NULL, 1811664, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff549fee000
mmap(0x7ff54a010000, 1327104, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x22000) = 0x7ff54a010000
mmap(0x7ff54a154000, 307200, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x166000) = 0x7ff54a154000
mmap(0x7ff54a19f000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b0000) = 0x7ff54a19f000
mmap(0x7ff54a1a5000, 13520, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff54a1a5000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib64/libgobject-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\347\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=379696, ...}) = 0
mmap(NULL, 384776, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff549f90000
mmap(0x7ff549f9e000, 212992, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe000) = 0x7ff549f9e000
mmap(0x7ff549fd2000, 98304, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x42000) = 0x7ff549fd2000
mmap(0x7ff549fea000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x59000) = 0x7ff549fea000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib64/libgmodule-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@\22\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=18472, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff549f8e000
mmap(NULL, 20888, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff549f88000
mmap(0x7ff549f89000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7ff549f89000
mmap(0x7ff549f8b000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7ff549f8b000
mmap(0x7ff549f8c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7ff549f8c000
close(3)                                = 0
openat(AT_FDCWD, "/lib64/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0203\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=100592, ...}) = 0
mmap(NULL, 102800, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff549f6e000
mmap(0x7ff549f71000, 57344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7ff549f71000
mmap(0x7ff549f7f000, 28672, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0x7ff549f7f000
mmap(0x7ff549f86000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7ff549f86000
close(3)                                = 0
openat(AT_FDCWD, "/lib64/libmount.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\332\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=382776, ...}) = 0
mmap(NULL, 385800, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff549f0f000
mprotect(0x7ff549f1b000, 327680, PROT_NONE) = 0
mmap(0x7ff549f1b000, 245760, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xc000) = 0x7ff549f1b000
mmap(0x7ff549f57000, 77824, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x48000) = 0x7ff549f57000
mmap(0x7ff549f6b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5b000) = 0x7ff549f6b000
mmap(0x7ff549f6d000, 776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff549f6d000
close(3)                                = 0
openat(AT_FDCWD, "/lib64/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260C\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=84528, ...}) = 0
mmap(NULL, 96896, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff549ef7000
mprotect(0x7ff549efb000, 65536, PROT_NONE) = 0
mmap(0x7ff549efb000, 49152, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0x7ff549efb000
mmap(0x7ff549f07000, 12288, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10000) = 0x7ff549f07000
mmap(0x7ff549f0b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13000) = 0x7ff549f0b000
mmap(0x7ff549f0d000, 6784, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff549f0d000
close(3)                                = 0
openat(AT_FDCWD, "/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360k\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=148000, ...}) = 0
mmap(NULL, 128088, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff549ed7000
mmap(0x7ff549edd000, 61440, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7ff549edd000
mmap(0x7ff549eec000, 20480, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7ff549eec000
mmap(0x7ff549ef1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19000) = 0x7ff549ef1000
mmap(0x7ff549ef3000, 13400, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff549ef3000
close(3)                                = 0
openat(AT_FDCWD, "/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360!\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=460856, ...}) = 0
mmap(NULL, 463336, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff549e65000
mmap(0x7ff549e67000, 327680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7ff549e67000
mmap(0x7ff549eb7000, 122880, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x52000) = 0x7ff549eb7000
mmap(0x7ff549ed5000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6f000) = 0x7ff549ed5000
close(3)                                = 0
openat(AT_FDCWD, "/lib64/libbz2.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\"\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=74904, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff549e63000
mmap(NULL, 77192, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff549e50000
mmap(0x7ff549e52000, 53248, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7ff549e52000
mmap(0x7ff549e5f000, 8192, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0x7ff549e5f000
mmap(0x7ff549e61000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10000) = 0x7ff549e61000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib64/libffi.so.7", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\"\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=43280, ...}) = 0
mmap(NULL, 46728, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff549e44000
mprotect(0x7ff549e46000, 32768, PROT_NONE) = 0
mmap(0x7ff549e46000, 24576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7ff549e46000
mmap(0x7ff549e4c000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0x7ff549e4c000
mmap(0x7ff549e4e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9000) = 0x7ff549e4e000
close(3)                                = 0
openat(AT_FDCWD, "/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\21\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=14320, ...}) = 0
mmap(NULL, 16656, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff549e3f000
mmap(0x7ff549e40000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7ff549e40000
mmap(0x7ff549e41000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7ff549e41000
mmap(0x7ff549e42000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7ff549e42000
close(3)                                = 0
openat(AT_FDCWD, "/lib64/libblkid.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\237\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=328408, ...}) = 0
mmap(NULL, 331432, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff549dee000
mmap(0x7ff549df7000, 208896, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9000) = 0x7ff549df7000
mmap(0x7ff549e2a000, 65536, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3c000) = 0x7ff549e2a000
mmap(0x7ff549e3a000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4b000) = 0x7ff549e3a000
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff549dec000
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff549de9000
arch_prctl(ARCH_SET_FS, 0x7ff549de9740) = 0
mprotect(0x7ff54a19f000, 16384, PROT_READ) = 0
mprotect(0x7ff549e3a000, 16384, PROT_READ) = 0
mprotect(0x7ff549e42000, 4096, PROT_READ) = 0
mprotect(0x7ff549e4e000, 4096, PROT_READ) = 0
mprotect(0x7ff549e61000, 4096, PROT_READ) = 0
mprotect(0x7ff549ef1000, 4096, PROT_READ) = 0
mprotect(0x7ff549ed5000, 4096, PROT_READ) = 0
mprotect(0x7ff549f0b000, 4096, PROT_READ) = 0
mprotect(0x7ff549f6b000, 4096, PROT_READ) = 0
mprotect(0x7ff549f86000, 4096, PROT_READ) = 0
mprotect(0x7ff54a378000, 4096, PROT_READ) = 0
mprotect(0x7ff549f8c000, 4096, PROT_READ) = 0
mprotect(0x7ff549fea000, 12288, PROT_READ) = 0
mprotect(0x7ff54a1dc000, 102400, PROT_READ) = 0
mprotect(0x7ff54a21c000, 4096, PROT_READ) = 0
mprotect(0x7ff54a538000, 28672, PROT_READ) = 0
mprotect(0x55e04d057000, 4096, PROT_READ) = 0
mprotect(0x7ff54a56f000, 4096, PROT_READ) = 0
munmap(0x7ff54a21e000, 218596)          = 0
set_tid_address(0x7ff549de9a10)         = 20864
set_robust_list(0x7ff549de9a20, 24)     = 0
rt_sigaction(SIGRTMIN, {sa_handler=0x7ff549edd650, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7ff549ee9820}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0x7ff549edd6f0, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x7ff549ee9820}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
brk(NULL)                               = 0x55e04e3e3000
brk(0x55e04e404000)                     = 0x55e04e404000
futex(0x7ff54a37a618, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7ff54a37a618, FUTEX_WAKE_PRIVATE, 2147483647) = 0
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=225035648, ...}) = 0
mmap(NULL, 225035648, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ff53c74c000
close(3)                                = 0
prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)  = 0
prctl(PR_SET_DUMPABLE, SUID_DUMP_DISABLE) = 0
prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)  = 0
seccomp(SECCOMP_SET_MODE_STRICT, 1, NULL) = -1 EINVAL (Invalid argument)
seccomp(SECCOMP_SET_MODE_FILTER, 0, 0x55e04e3f0760) = 0
stat(0x55e04e3f0b30, 0x7ffc52d15900)    = -1 ENOENT (No such file or directory)
stat(0x55e04e3f0b30, 0x7ffc52d15900)    = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, 0x55e04e3f4270, O_RDONLY) = 3
fstat(3, 0x7ffc52d159e0)                = 0
mmap(NULL, 6652192, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x7ff53c0f3000
close(3)                                = 0
mprotect(0x7ff53c0f3000, 6652192, PROT_READ) = 0
openat(AT_FDCWD, 0x7ff54a1724d0, O_RDONLY) = 3
fstat(3, 0x7ffc52d15710)                = 0
mmap(NULL, 26988, PROT_READ, MAP_SHARED, 3, 0) = 0x7ff54a24d000
close(3)                                = 0
futex(0x7ff54a1a4974, FUTEX_WAKE_PRIVATE, 2147483647) = ?
+++ killed by SIGSYS +++
[1]    20861 invalid system call  strace file ~/.bashrc
strace.txt (15,549 bytes)   

christos

2021-03-14 17:03

manager   ~0003571

I enabled futexes unconditionally. They are used for threaded programs and it is possible that newer glibc does some thread initialization unconditionally. It would be interesting to find the stack trace of the futex call though.

Issue History

Date Modified Username Field Change
2021-03-02 05:03 thesamesam New Issue
2021-03-02 05:03 thesamesam File Added: emerge_info.txt
2021-03-02 05:03 thesamesam File Added: strace.txt
2021-03-14 17:02 christos Assigned To => christos
2021-03-14 17:02 christos Status new => assigned
2021-03-14 17:03 christos Status assigned => resolved
2021-03-14 17:03 christos Resolution open => fixed
2021-03-14 17:03 christos Fixed in Version => 5.40
2021-03-14 17:03 christos Note Added: 0003571