Okay, I've done a bit of digging on this using a debug build.

The problem is in the very first line of BackendImpl::MatchEntry():

    Addr address(data_->table[hash & mask_]);

data_->table[] is a memory-mapped array, backed by the file
~/.cache/chromium/Default/Cache/index (in my case). When my home
directory goes away due to my Kerberos authentication expiring, this
file is no longer accessible, and thus any attempt to read from its
mapping fails with SIGBUS.

Arguably, the fix would be to eliminate the use of memory-mapped files
from Chromium's disk-cache backend. Nowhere else in Chromium are files
in the user's home directory memory-mapped, so this wouldn't be such a
big deal. Indeed, I would make the case that mapping files in $HOME is a
bad idea precisely because of the potential for network filesystems to
cause this to yield SIGBUS errors. (Alternately, the signal could be
caught and handled appropriately, but this option did not appeal to the
Chromium developers.)

For now, I'm trying out Chromium's mostly-undocumented --disk-cache-dir
option as a workaround. By relocating the disk cache to a directory on
the local disk, I should be able to avoid this crash.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/807611

Title:
  chromium-browser crashed with signal 7

To manage notifications about this bug go to:
https://bugs.launchpad.net/chromium-browser/+bug/807611/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to