Chrome/Chromium 충돌("앗 이런!", segfault): "리소스를 일시적으로 사용할 수 없습니다."

Chrome/Chromium 충돌("앗 이런!", segfault): "리소스를 일시적으로 사용할 수 없습니다."

Chrome/Chromium은 웹사이트를 로드하지 않고 '아, 이런! 문제가 발생했습니다...' 페이지만 로드합니다. 일부 하위 프로세스에 세그폴트가 발생했습니다.

터미널에서 실행하면 다음과 같은 내용이 많이 표시됩니다.

[...오류: platform_thread_posix.cc(126)] pthread_create: 리소스를 일시적으로 사용할 수 없습니다.

Chrome이 계속 실행되는 동안 다른 프로그램을 실행하면 때때로 동일한 오류가 발생합니다.Resource temporarily unavailable

이는 systemd 229를 사용하는 Arch Linux에서 발생하지만 Fedora Linux에서도 유사한 동작이 보고되었습니다.

이러한 충돌의 원인은 무엇입니까?


언뜻 보면 프로세스 제한은 문제가 되지 않는 것 같습니다.

$ 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

답변1

다른 문제를 조사하는 동안 관련된 내용을 발견했을 수도 있습니다. 다른 tty로 전환할 수 없습니다(Ctrl + Alt + F2):

A start job is running for Login Service...

이는 자체적인 한계가 있는 또 다른 시스템 문제일 수 있음이 밝혀졌습니다.

분명히 문제를 해결한 다음 구성 파일을 만들었습니다.

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

다시 시작한 후에는 Chrome이 더 이상 충돌하지 않으며 다른 tty로 전환하면 다시 작동합니다.

이것이 올바른 해결책인지는 확실하지 않지만 지금까지는 효과가 있는 것 같습니다. 누구든지 더 나은 아이디어가 있으면 답변을 게시하십시오.


/var/log/daemon.log나중에 참고할 수 있도록 tty가 작동하지 않을 때의 로그인은 다음과 같습니다.

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.

관련 정보