Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 772137

Summary: net-im/slack-4.13.0 crashes with /dev/shm related error
Product: Gentoo Linux Reporter: Alex Efros <powerman-asdf>
Component: Current packagesAssignee: Vladimir Pavljuchenkov (SpiderX) <spiderx>
Status: RESOLVED FIXED    
Severity: normal CC: contact, proxy-maint, sam
Priority: Normal Keywords: PullRequest
Version: unspecified   
Hardware: All   
OS: Linux   
URL: https://github.com/electron/electron/issues/30758
See Also: https://github.com/gentoo/gentoo/pull/26950
Whiteboard:
Package list:
Runtime testing required: ---

Description Alex Efros 2021-02-22 10:27:20 UTC
On start I see icon in tray, but no slack window.
The console output looks like:

  ...normal messages...
  [24562:0222/115725.643019:FATAL:platform_shared_memory_region_posix.cc(255)] This is frequently caused by incorrect permissions on /dev/shm.  Try 'sudo chmod 1777 /dev/shm' to fix.

  Unexpected crash report id length
  Failed to get crash dump id.
  Report Id: 

  Unexpected crash report id length
  Failed to get crash dump id.
  Report Id: 

Firstly, 4.12.2 works just fine.
Secondly, enabling USE=suid doesn't fix the issue.
The strace output shows possible reason for that error message (access syscall):

[pid 24562] openat(AT_FDCWD, "/dev/shm/.org.chromium.Chromium.bK482s", O_RDWR|O_CREAT|O_EXCL, 0600 <unfinished ...>
[pid 24562] <... openat resumed>)       = -1 EPERM (Операция не позволена)
[pid 24562] access("/dev/shm", W_OK|X_OK <unfinished ...>
[pid 24562] <... access resumed>)       = -1 EPERM (Операция не позволена)
[pid 24562] socketpair(AF_UNIX, SOCK_SEQPACKET, 0 <unfinished ...>
[pid 24562] <... socketpair resumed>, [30, 31]) = 0
[pid 24562] sendmsg(4, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\20\0\0\0 \0\0\0\10\0\0\0\5\2003`\0\0\0\0", iov_len=20}], msg_iovlen=1, msg_control=[{cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, cmsg_data=[31]}], msg_controllen=20, msg_flags=0}, MSG_NOSIGNAL <unfinished ...>
[pid 24562] <... sendmsg resumed>)      = 20
[pid 24562] close(31 <unfinished ...>
[pid 24562] <... close resumed>)        = 0
[pid 24562] recvmsg(30,  <unfinished ...>
[pid 24562] <... recvmsg resumed>{msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="0\0\0\0\31\0\0\09\0\0\0\v\0\0\0\26\0\0\0\1\0\0\0y\0\0\0\1\0\0\0"..., iov_len=512}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 52
[pid 24562] close(30 <unfinished ...>
[pid 24562] <... close resumed>)        = 0
[pid 24562] write(2, "[24562:0222/115725.643019:FATAL:"..., 181 <unfinished ...>
[pid 24562] <... write resumed>)        = 181

The weird thing here is I can't see reason for these EPERM errors, look:

$ id
uid=1000(powerman) gid=1000(powerman) groups=1000(powerman),3(sys),7(lp),10(wheel),14(uucp),16(cron),18(audio),19(cdrom),27(video),35(games),78(kvm),80(cdrw),85(usb),100(users),106(lpadmin),114(davfs2),116(vboxusers),118(wireshark),250(portage),377(pcap),998(docker)
$ ls -ld /dev /dev/shm
drwxr-xr-x 20 root root 3920 Feb 15 13:10 /dev
drwxrwxrwt  2 root root   40 Feb 22 12:23 /dev/shm
$ ls -al /dev/shm
total 0
drwxrwxrwt  2 root root   40 Feb 22 12:23 .
drwxr-xr-x 20 root root 3920 Feb 15 13:10 ..
$ mount | grep '/dev\(/shm\)\? '
devtmpfs on /dev type devtmpfs (rw,nosuid,relatime,size=10240k,nr_inodes=3072749,mode=755)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime)
$ touch /dev/shm/.org.chromium.Chromium.bK482s
$ ls -l /dev/shm/.org.chromium.Chromium.bK482s
-rw-r--r-- 1 powerman powerman 0 Feb 22 12:25 /dev/shm/.org.chromium.Chromium.bK482s


Portage 3.0.13 (python 3.8.7-final-0, default/linux/amd64/17.1/hardened, gcc-9.3.0, glibc-2.32-r6, 5.4.97-gentoo x86_64)
=================================================================
System uname: Linux-5.4.97-gentoo-x86_64-Intel-R-_Core-TM-_i7-2600K_CPU_@_3.40GHz-with-glibc2.2.5
KiB Mem:    24585736 total,   6170112 free
KiB Swap:    8388604 total,   8386556 free
Timestamp of repository gentoo: Mon, 22 Feb 2021 09:30:01 +0000
Head commit of repository gentoo: d7b828d069e252c42da9f485a1252b13dbd273c6
sh bash 5.0_p18
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:          3.8.7-r1::gentoo, 3.9.1-r1::gentoo
dev-util/ccache:          4.1::gentoo
dev-util/cmake:           3.18.5::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.7::gentoo
sys-apps/sandbox:         2.20::gentoo
sys-devel/autoconf:       2.13-r1::gentoo, 2.69-r5::gentoo
sys-devel/automake:       1.13.4-r2::gentoo, 1.16.2-r1::gentoo
sys-devel/binutils:       2.35.1-r1::gentoo
sys-devel/gcc:            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-extra-opts: 
    sync-rsync-verify-max-age: 24
    sync-rsync-verify-metamanifest: yes
    sync-rsync-verify-jobs: 1

local
    location: /usr/local/portage
    masters: gentoo
    priority: 0

powerman
    location: /home/powerman/proj/gentoo/powerman-overlay
    masters: gentoo
    priority: 50

steam-overlay
    location: /var/lib/layman/steam-overlay
    sync-type: laymansync
    sync-uri: https://github.com/anyc/steam-overlay.git
    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 /service /usr/inferno/keydb /usr/inferno/lib /usr/inferno/services /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/easy-rsa /usr/share/gnupg/qualified.txt /usr/share/i2p/scripts /var/log"
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="-march=native -O2 -pipe"
DISTDIR="/usr/portage-distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps=y --autounmask --autounmask-write --alert=y"
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 clean-logs 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 strict-keepdir unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-march=native -O2 -pipe"
GENTOO_MIRRORS="http://mirror.leaseweb.com/gentoo/ http://mirrors.aliyun.com/gentoo/ http://ftp.snt.utwente.nl/pub/os/linux/gentoo"
LANG="ru_RU.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="en ru ru_RU"
MAKEOPTS="-j6"
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 aes alac alsa amd64 avx bash-completion bluetooth branding bzip2 cairo caps cdda cddb cdr chm cli crypt cups dbus dcron dga djvu dri dts dvb dvd dvdr egl eglfs elogind emboss encode exif fam ffmpeg flac fontconfig gallium gdbm gif gpg gtk hardened iconv icu id3tag idn ipv6 jpeg jpeg2k lcms libglvnd libnotify libtirpc mac mad matroska mmx mmxext mng mp3 mp4 mpeg mtp multilib musepack ncurses network-cron nls nptl nsplugin ogg opengl openmp opus pam pango pclmul pcre pdf perl pie png policykit popcnt ppds qt5 readline rtc sdl seccomp spell split-usr sse sse2 sse3 sse4_1 sse4_2 ssl ssp ssse3 startup-notification svg tcpd theora tiff truetype udev udisks unicode upower usb vaapi vdpau vim-syntax vorbis wavpack wxwidgets x264 x265 xattr xcb xml xscreensaver xtpax xv xvid xvmc zlib" 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="log_config vhost_alias autoindex alias rewrite dir deflate filter mime negotiation auth_basic authn_file authz_host authz_user authz_groupfile cgi actions headers env setenvif authn_core authz_core unixd socache_shmcb access_compat" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx 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" GRUB_PLATFORMS="efi-64 pc" INPUT_DEVICES="evdev" KERNEL="linux" L10N="en ru" 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" NGINX_MODULES_HTTP="access auth_basic autoindex browser charset empty_gif fastcgi geo gzip limit_conn limit_req map memcached proxy referer rewrite scgi split_clients ssi upstream_ip_hash userid uwsgi addition fancyindex" NGINX_MODULES_STREAM="ssl_preread map" OFFICE_IMPLEMENTATION="libreoffice" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_8" PYTHON_TARGETS="python3_8" QEMU_SOFTMMU_TARGETS="x86_64 i386" QEMU_USER_TARGETS="x86_64 i386" RUBY_TARGETS="ruby26" USERLAND="GNU" VIDEO_CARDS="nvidia nouveau" XFCE_PLUGINS="clock trash" 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, INSTALL_MASK, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Vladimir Pavljuchenkov (SpiderX) 2021-02-23 12:47:35 UTC
Please show the following from affected system:

1. grep 'shm' /proc/mounts

2. df -h | grep shm


Try to launch it with wiped ~/.config/Slack
Comment 2 Alex Efros 2021-02-23 13:23:53 UTC
(In reply to Vladimir Pavljuchenkov (SpiderX) from comment #1)
> Please show the following from affected system:
> 
> 1. grep 'shm' /proc/mounts

shm /dev/shm tmpfs rw,nosuid,nodev,noexec,relatime 0 0
shm /var/lib/docker/containers/e28f114e392f08556c8d0c8c8963dd553360f30cbbd311a829472f3cbda4c81f/mounts/shm tmpfs rw,nosuid,nodev,noexec,relatime,size=65536k 0 0

> 2. df -h | grep shm

shm                 12G         345M   12G            3% /dev/shm
shm                 64M            0   64M            0% /var/lib/docker/containers/e28f114e392f08556c8d0c8c8963dd553360f30cbbd311a829472f3cbda4c81f/mounts/shm

> Try to launch it with wiped ~/.config/Slack

This doesn't change anything.
Comment 3 Vladimir Pavljuchenkov (SpiderX) 2021-02-25 17:53:44 UTC
Try to stop your docker container where you mounted shm and try once again to launch slack.
Comment 4 Alex Efros 2021-02-26 18:12:36 UTC
(In reply to Vladimir Pavljuchenkov (SpiderX) from comment #3)
> Try to stop your docker container where you mounted shm and try once again
> to launch slack.

It was a swaggerapi/swagger-editor container. I can't see how it might affect slack, but I've stopped and removed it, checked no one else is using shm, and tried to run slack - no change, same error and it didn't work.
Comment 5 rypervenche 2021-03-11 14:07:18 UTC
I too have been having this problem and have downgraded to 4.12.2 for the time being. I can provide any output or logs that may be necessary.

Running Gentoo Testing.
No Docker installed.

$ ls -ld /dev/shm
drwxrwxrwt 2 root root 60 Mar 11 08:06 /dev/shm

$ grep 'shm' /proc/mounts
shm /dev/shm tmpfs rw,nosuid,nodev,noexec,relatime 0 0

$ df -h | grep shm
shm               7.6G  194M  7.4G    3% /dev/shm

Removing my slack configuration directory didn't change anything.
Comment 6 Alex Efros 2021-03-20 14:45:57 UTC
How is it happens 4.13.0 is now the only version in portage without fixing this bug first?
Comment 7 Larry the Git Cow gentoo-dev 2021-03-20 16:03:59 UTC
The bug has been referenced in the following commit(s):

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

commit 16fdaa4df3c9d0e66105c6855461f9314d75caba
Author:     Joonas Niilola <juippis@gentoo.org>
AuthorDate: 2021-03-20 16:03:28 +0000
Commit:     Joonas Niilola <juippis@gentoo.org>
CommitDate: 2021-03-20 16:03:51 +0000

    net-im/slack: restore 4.12.2
    
    Bug: https://bugs.gentoo.org/772137
    Signed-off-by: Joonas Niilola <juippis@gentoo.org>

 net-im/slack/Manifest            |  1 +
 net-im/slack/slack-4.12.2.ebuild | 98 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 99 insertions(+)
Comment 8 Yixun Lan archtester gentoo-dev 2021-03-23 09:39:32 UTC
hello, I've bumped 4.14.0, could you check if still have this problem?

as I didn't checked this bug before, and prune out the 4.12.0 version ..
Comment 9 Yixun Lan archtester gentoo-dev 2021-03-23 09:43:15 UTC
btw, it sounds the 4.14.0 works great here ..
Comment 10 Alex Efros 2021-03-23 13:42:48 UTC
(In reply to Yixun Lan from comment #8)
> hello, I've bumped 4.14.0, could you check if still have this problem?

Yes, 4.14.0 is still crashes with same error:

[16782:0323/153826.797675:FATAL:platform_shared_memory_region_posix.cc(255)] This is frequently caused by incorrect permissions on /dev/shm.  Try 'sudo chmod 1777 /dev/shm' to fix.

Unexpected crash report id length
Failed to get crash dump id.
Report Id: 

I see the tray icon (and even able to use it menu to Quit), but no main window.
Comment 11 Yixun Lan archtester gentoo-dev 2021-03-24 02:25:45 UTC
(In reply to Alex Efros from comment #10)
> (In reply to Yixun Lan from comment #8)
> > hello, I've bumped 4.14.0, could you check if still have this problem?
> 
> Yes, 4.14.0 is still crashes with same error:
> 
> [16782:0323/153826.797675:FATAL:platform_shared_memory_region_posix.cc(255)]
> This is frequently caused by incorrect permissions on /dev/shm.  Try 'sudo
> chmod 1777 /dev/shm' to fix.
> 
> Unexpected crash report id length
> Failed to get crash dump id.
> Report Id: 
> 
> I see the tray icon (and even able to use it menu to Quit), but no main
> window.

I believe it's a bug if the /dev/shm permission is not 1777, as the handbook
also suggest this[1]

could you check why or maybe file a bug for this?

[1] https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation#Mounting_the_necessary_filesystems
Comment 12 Alex Efros 2021-03-24 02:32:55 UTC
(In reply to Yixun Lan from comment #11)
> I believe it's a bug if the /dev/shm permission is not 1777, as the handbook
> also suggest this[1]
> 
> could you check why or maybe file a bug for this?

The permissions is 1777, problem is somewhere else. Please read first comment here, I've included all such details there.
Comment 13 Larry the Git Cow gentoo-dev 2021-03-24 06:33:40 UTC
The bug has been referenced in the following commit(s):

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

commit adba580be72f0b3613d7237954532f9f6b6d58f6
Author:     Yixun Lan <dlan@gentoo.org>
AuthorDate: 2021-03-24 06:28:35 +0000
Commit:     Yixun Lan <dlan@gentoo.org>
CommitDate: 2021-03-24 06:33:17 +0000

    net-im/slack: restore 4.12.2 for now
    
    Bug: https://bugs.gentoo.org/772137
    Signed-off-by: Yixun Lan <dlan@gentoo.org>

 net-im/slack/Manifest            |  1 +
 net-im/slack/slack-4.12.2.ebuild | 98 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 99 insertions(+)
Comment 14 Yixun Lan archtester gentoo-dev 2021-03-24 06:36:58 UTC
(In reply to Alex Efros from comment #12)
> The permissions is 1777, problem is somewhere else. Please read first
> comment here, I've included all such details there.
since it's a binary release, so please report it to upstream
for now, I just restore the old 4.12.2 version
Comment 15 Alex Efros 2021-08-27 18:47:12 UTC
Still actual in 4.19.2. :(
Upstream refuse to fix this because "Gentoo is not a supported distro".
Comment 16 Alex Efros 2021-08-30 14:47:03 UTC
Looks like this is a sandbox-related issue, which can be fixed this way:

1. Unpack /opt/slack/resources/app.asar (using `npx asar extract app.asar destfolder`).
2. Edit extracted destfolder/dist/main.bundle.js to remove string "||external_electron_.app.enableSandbox()".
3. Pack it back into app.asap (using `npx asar pack destfolder app.asar`).

Running `slack --no-sandbox` has no effect, not sure is this option supported or is there any other way to disable or somehow fix sandbox.
Comment 17 Alex Efros 2021-08-30 15:45:47 UTC
With this flag it works without modifications:
slack --disable-seccomp-filter-sandbox
Comment 18 Larry the Git Cow gentoo-dev 2022-08-31 08:42:13 UTC
The bug has been closed via the following commit(s):

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

commit 9c85489fe25a2cb24ac97e52af5a9118af326c03
Author:     Vladimir Pavljuchenkov (SpiderX) <spiderx@spiderx.dp.ua>
AuthorDate: 2022-08-21 15:40:04 +0000
Commit:     Joonas Niilola <juippis@gentoo.org>
CommitDate: 2022-08-31 08:39:14 +0000

    net-im/slack: version bump to 4.27.156, wrt #836874, #772137, #853964
    
    Closes: https://bugs.gentoo.org/836874
    Closes: https://bugs.gentoo.org/772137
    Closes: https://bugs.gentoo.org/853964
    Package-Manager: Portage-3.0.30, Repoman-3.0.3
    Signed-off-by: Vladimir Pavljuchenkov <spiderx@spiderx.dp.ua>
    Closes: https://github.com/gentoo/gentoo/pull/26950
    Closes: https://github.com/gentoo/gentoo/pull/26744
    Signed-off-by: Joonas Niilola <juippis@gentoo.org>

 net-im/slack/Manifest              |   1 +
 net-im/slack/slack-4.27.156.ebuild | 110 +++++++++++++++++++++++++++++++++++++
 2 files changed, 111 insertions(+)