Skip to content

Chrome/Chromium does not work (pread64: Input/output error (5)) if home directory is mounted via NFS #326

@wapsi

Description

@wapsi

This happens on Zen kernels, if ~/.config/chromium|chrome directory is under NFS mount:

user@xxx:~$ chromium
[0905/204352.786436:ERROR:process_memory_linux.cc(49)] pread64: Input/output error (5)
Bus error (core dumped)
user@xxx:~$ google-chrome
[0905/204157.440930:ERROR:process_memory_linux.cc(49)] pread64: Input/output error (5)
Bus error (core dumped)

This is somehow related to my /home NFS mount, because as a local user Chrome/Chromium starts just fine. And they start OK as "NFS home mount" user if I symlink my ~/.config/chromium to a directory that resides on my local SSD.

So I guess it's an issue with the Zen/Liquorix kernel, because Chrome/Chromium works on Debian stable/sid kernels just fine, even the ~/.config/chromium directory resides on a NFS share.

In strace, there is this happening:

--- SIGBUS {si_signo=SIGBUS, si_code=BUS_ADRERR, si_addr=0x7fc58e200000} ---
gettid()                                = 10629
prctl(PR_GET_DUMPABLE)                  = 1 (SUID_DUMP_USER)
prctl(PR_SET_PTRACER, 10644)            = 0
rt_sigprocmask(SIG_BLOCK, [CONT], [BUS], 8) = 0
sendmsg(4, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\0\0\0\1\0\0\0\250I\207\224\305\177\0\0\10\3463\0d/\0\0\0\0\0\0\0\0\0\0"..., iov_len=40}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 40
rt_sigtimedwait([CONT], [0905/204405.563561:ERROR:scoped_ptrace_attach.cc(27)] ptrace: Operation not permitted (1)
{si_signo=SIGCONT, si_code=SI_TKILL, si_pid=10644, si_uid=549401103}, {tv_sec=5, tv_nsec=0}, 8) = 18 (SIGCONT)
rt_sigprocmask(SIG_SETMASK, [BUS], NULL, 8) = 0
futex(0x2f640033e628, FUTEX_WAKE_PRIVATE, 2147483647) = 0
rt_sigaction(SIGBUS, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0x7fc592c5afd0}, NULL, 8) = 0
getpid()                                = 10629
gettid()                                = 10629
rt_tgsigqueueinfo(10629, 10629, SIGBUS, {si_signo=SIGBUS, si_code=BUS_ADRERR, si_addr=0x7fc58e200000}) = 0
rt_sigreturn({mask=[]})                 = 140486469746688
--- SIGBUS {si_signo=SIGBUS, si_code=BUS_ADRERR, si_addr=0x7fc58e200000} ---
+++ killed by SIGBUS (core dumped) +++
Bus error (core dumped)

I also tried to reset Chromium settings by renaming .config/chromium => .config/chromium.bak, and starting Chromium again, but it still crashes.

Kernel version:
Linux 6.4.14-1-liquorix-amd64 #1 ZEN SMP PREEMPT liquorix 6.4-18.1~bookworm (2023-09-02) x86_64 GNU/Linux

I've the following sysctl parameters applied, nothing else (I don't believe that these cause the issue):

# NFS optimizations
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 32768 262144 16777216
net.ipv4.tcp_wmem = 32768 262144 16777216
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_timestamps = 0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions