Linux – Chrome/Chromium crashes (“Aw, snap!”, segfault): “Resource temporarily unavailable”

arch linuxchromelimitlinux

Chrome/Chromium won't load any websites and just shows the "Aw, Snap! Something went wrong…" page. Some sub-processes segfault.

When started in a Terminal, it will show lots of these:

[…ERROR:platform_thread_posix.cc(126)] pthread_create: Resource temporarily unavailable

While Chrome is still running, starting another program sometimes triggers the same error: Resource temporarily unavailable

This is on Arch Linux with systemd 229, but similar behavior has been reported on Fedora Linux.

What is causing these crashes?


At first glance, the process limit does not seem to be the issue:

$ ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 23870
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 99
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 23870
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Best Answer

While investigating another issue, I may have found something relevant. It wasn't possible to switch to another tty (Ctrl + Alt + F2):

A start job is running for Login Service...

Turns out this may be another systemd issue, which has its own limits.

The following config file was created, which apparently fixed the issue:

# mkdir /etc/systemd/logind.conf.d/
# /etc/systemd/logind.conf.d/systemd-stupid-limits.conf
LimitNOFILE=500000
LimitNPROC=100000
UserTasksMax=100000

After a reboot, Chrome does not crash anymore and switching to another tty is working again.

Not sure if this is the right solution, but it does seem to work so far. If someone has a better idea, please post an answer.


For future reference, this was logged in /var/log/daemon.log when the tty wasn't working:

systemd[1]: Starting Login Service...
systemd[1]: systemd-logind.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: Failed to start Login Service.
systemd[1]: systemd-logind.service: Unit entered failed state.
systemd[1]: systemd-logind.service: Failed with result 'exit-code'.
systemd[1]: systemd-logind.service: Service has no hold-off time, scheduling restart.
systemd[1]: Stopped Login Service.
Related Question