# google-chrome and chromium hang/crash at start.

## ChadJoan

The story:

google-chrome was crashing.  So I got a roommate's quickpkg of chromium (my machine only has 4GB of RAM).  That hangs.  I installed a newer version of google-chrome.  Now that hangs too.  In no event did I ever get a window to open up, and not even a peep out of the terminal (unless it says "Killed!" or "Segmentation fault", I forget which and when).  When I try to do things with flash in firefox, the plugin crashes.  

So I have no way to use flash on this machine.

I read about some people having problems with versions of chrome that needed SSE2.  My machine does have SSE2, but the symptoms are very similar.  I hear the running chrome with --no-sandbox can help.  It does!  google-chrome will open up some blank non-functioning tabs if I pass it the --no-sandbox option.

Unlike the people lacking SSE2, moving the /opt/google/chrome/PepperFlash directory does not seem to affect the outcome.

I am running on a hardened system, and a 64-bit build.

I did some strace'ing.  I'll spare you the spammy parts and give you the juicy bits near the end.

This first one shows where google-chrome hangs.  I run google-chrome (with sandboxing) until it hangs, and then I hit CTRL-C and interrupt it.

```
chad@Hugin ~ $ strace google-chrome

...

access("/proc/8550/oom_score_adj", F_OK) = 0

creat("/proc/8550/oom_score_adj", 0666) = 3

write(3, "0", 1)                        = 1

close(3)                                = 0

readlink("/proc/self/exe", "/opt/google/chrome/chrome", 4096) = 25

prctl(PR_SET_NAME, 0x364472cec18, 0x6f726863, 0x364472cec18, 0x2) = 0

gettid()                                = 8550

gettid()                                = 8550

geteuid()                               = 1000

rt_sigaction(SIGCHLD, {0x3649c655c0, [], SA_RESTORER, 0x3644330fa20}, NULL, 8) = 0

sched_get_priority_min(SCHED_OTHER)     = 0

sched_get_priority_max(SCHED_OTHER)     = 0

sched_getparam(8550, { 0 })             = 0

sched_getscheduler(8550)                = 0 (SCHED_OTHER)

sched_setscheduler(8550, SCHED_OTHER, { 0 }) = 0

rt_sigaction(SIGPIPE, {SIG_IGN, [], SA_RESTORER, 0x3644330fa20}, NULL, 8) = 0

stat("/proc/self/exe", {st_mode=S_IFREG|0755, st_size=91249520, ...}) = 0

getuid()                                = 1000

socketpair(PF_FILE, SOCK_SEQPACKET, 0, [3, 4]) = 0

pipe([5, 6])                            = 0

clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x36447431bd0) = 8555

readlink("/proc/self/exe", "/opt/google/chrome/chrome", 4096) = 25

socketpair(PF_FILE, SOCK_SEQPACKET, 0, [7, 8]) = 0

stat("/opt/google/chrome/chrome-sandbox", {st_mode=S_IFREG|S_ISUID|0711, st_size=18664, ...}) = 0

access("/opt/google/chrome/chrome-sandbox", X_OK) = 0

socket(PF_FILE, SOCK_DGRAM, 0)          = 9

clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x36447431bd0) = 8556

recvmsg(7, 0x3ced33f7ae0, 0)            = ? ERESTARTSYS (To be restarted if SA_RESTART is set)

--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=8556, si_status=0, si_utime=0, si_stime=0} ---

rt_sigreturn()                          = -1 EINTR (Interrupted system call)

recvmsg(7, ^CProcess 8550 detached

 <detached ...>

```

chromium with sandbox seems to hang the same way as google-chrome:

```
chad@Hugin ~ $ strace chromium

...

access("/proc/8606/oom_score_adj", F_OK) = 0

creat("/proc/8606/oom_score_adj", 0666) = 3

write(3, "0", 1)                        = 1

close(3)                                = 0

readlink("/proc/self/exe", "/usr/lib64/chromium-browser/chro"..., 4096) = 34

prctl(PR_SET_NAME, 0x72cf88b298, 0x6f726863, 0x72cf88b298, 0x72cf88b270) = 0

gettid()                                = 8606

gettid()                                = 8606

geteuid()                               = 1000

rt_sigaction(SIGCHLD, {0x72c7ee9690, [], SA_RESTORER, 0x319c2b88a20}, NULL, 8) = 0

sched_get_priority_min(SCHED_OTHER)     = 0

sched_get_priority_max(SCHED_OTHER)     = 0

sched_getparam(8606, { 0 })             = 0

sched_getscheduler(8606)                = 0 (SCHED_OTHER)

sched_setscheduler(8606, SCHED_OTHER, { 0 }) = 0

rt_sigaction(SIGPIPE, {SIG_IGN, [], SA_RESTORER, 0x319c2b88a20}, NULL, 8) = 0

stat("/proc/self/exe", {st_mode=S_IFREG|0755, st_size=81061976, ...}) = 0

getuid()                                = 1000

socketpair(PF_FILE, SOCK_SEQPACKET, 0, [3, 4]) = 0

pipe([5, 6])                            = 0

clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x319c2f51bd0) = 8609

readlink("/proc/self/exe", "/usr/lib64/chromium-browser/chro"..., 4096) = 34

socketpair(PF_FILE, SOCK_SEQPACKET, 0, [7, 8]) = 0

stat("/usr/lib64/chromium-browser/chrome_sandbox", {st_mode=S_IFREG|S_ISUID|0711, st_size=18352, ...}) = 0

access("/usr/lib64/chromium-browser/chrome_sandbox", X_OK) = 0

socket(PF_FILE, SOCK_DGRAM, 0)          = 9

clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x319c2f51bd0) = 8610

recvmsg(7, 0x3d66b7dbd70, 0)            = ? ERESTARTSYS (To be restarted if SA_RESTART is set)

--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=8610, si_status=0, si_utime=0, si_stime=0} ---

rt_sigreturn()                          = -1 EINTR (Interrupted system call)

recvmsg(7, ^C^CProcess 8606 detached

 <detached ...>

```

This is the chromium run with --no-sandbox.  It crashes on its own due to the illegal instruction.

```
chad@Hugin ~ $ strace chromium --no-sandbox

...

recvfrom(8, "\1\0c\0\0\0\0\0\1\202A\200\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096, 0, NULL, NULL) = 32

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

poll([{fd=8, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=8, revents=POLLOUT}])

writev(8, [{"\202\0\1\0", 4}, {NULL, 0}, {"", 0}], 3) = 4

poll([{fd=8, events=POLLIN}], 1, -1)    = 1 ([{fd=8, revents=POLLIN}])

recvfrom(8, "\1\0d\0\0\0\0\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096, 0, NULL, NULL) = 32

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

eventfd2(0, O_NONBLOCK|O_CLOEXEC)       = 9

write(9, "\1\0\0\0\0\0\0\0", 8)         = 8

write(9, "\1\0\0\0\0\0\0\0", 8)         = 8

poll([{fd=8, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=8, revents=POLLOUT}])

writev(8, [{"b\0\6\0\17\0\0\5", 8}, {"XInputExtension", 15}, {"\0", 1}], 3) = 24

poll([{fd=8, events=POLLIN}], 1, -1)    = 1 ([{fd=8, revents=POLLIN}])

recvfrom(8, "\1\0e\0\0\0\0\0\1\203B\201\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096, 0, NULL, NULL) = 32

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

poll([{fd=8, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=8, revents=POLLOUT}])

writev(8, [{"b\0\6\0\17\0\0\5", 8}, {"XInputExtension", 15}, {"\0", 1}], 3) = 24

poll([{fd=8, events=POLLIN}], 1, -1)    = 1 ([{fd=8, revents=POLLIN}])

recvfrom(8, "\1\0f\0\0\0\0\0\1\203B\201\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096, 0, NULL, NULL) = 32

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

poll([{fd=8, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=8, revents=POLLOUT}])

writev(8, [{"\203\1\6\0\17\0\0\5", 8}, {"XInputExtension", 15}, {"\0", 1}], 3) = 24

poll([{fd=8, events=POLLIN}], 1, -1)    = 1 ([{fd=8, revents=POLLIN}])

recvfrom(8, "\1\1g\0\0\0\0\0\2\0\2\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096, 0, NULL, NULL) = 32

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

poll([{fd=8, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=8, revents=POLLOUT}])

writev(8, [{"b\1\6\0\17\0\0\5", 8}, {"XInputExtension", 15}, {"\0", 1}], 3) = 24

poll([{fd=8, events=POLLIN}], 1, -1)    = 1 ([{fd=8, revents=POLLIN}])

recvfrom(8, "\1\0h\0\0\0\0\0\1\203B\201\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096, 0, NULL, NULL) = 32

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

poll([{fd=8, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=8, revents=POLLOUT}])

writev(8, [{"\203\1\6\0\17\0\0\5", 8}, {"XInputExtension", 15}, {"\0", 1}], 3) = 24

poll([{fd=8, events=POLLIN}], 1, -1)    = 1 ([{fd=8, revents=POLLIN}])

recvfrom(8, "\1\1i\0\0\0\0\0\2\0\2\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096, 0, NULL, NULL) = 32

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

poll([{fd=8, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=8, revents=POLLOUT}])

writev(8, [{"\203\2\1\0", 4}, {NULL, 0}, {"", 0}], 3) = 4

poll([{fd=8, events=POLLIN}], 1, -1)    = 1 ([{fd=8, revents=POLLIN}])

recvfrom(8, "\1\2j\0o\0\0\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096, 0, NULL, NULL) = 476

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

poll([{fd=8, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=8, revents=POLLOUT}])

writev(8, [{"\203\3\2\0\4\0\0\5", 8}, {NULL, 0}, {"", 0}], 3) = 8

poll([{fd=8, events=POLLIN}], 1, -1)    = 1 ([{fd=8, revents=POLLIN}])

recvfrom(8, "\1\3k\0\2\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096, 0, NULL, NULL) = 40

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

poll([{fd=8, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=8, revents=POLLOUT}])

writev(8, [{"\203\3\2\0\t\0\0\5", 8}, {NULL, 0}, {"", 0}], 3) = 8

poll([{fd=8, events=POLLIN}], 1, -1)    = 1 ([{fd=8, revents=POLLIN}])

recvfrom(8, "\1\3l\0\2\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096, 0, NULL, NULL) = 40

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

poll([{fd=8, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=8, revents=POLLOUT}])

writev(8, [{"\211\2\4\0\1\0\0\5\200\1\0\0\7\0\0\0\27\0\2\0\200\1\0\0", 24}, {NULL, 0}, {"", 0}], 3) = 24

poll([{fd=8, events=POLLIN}], 1, -1)    = 1 ([{fd=8, revents=POLLIN}])

recvfrom(8, "\1\0n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096, 0, NULL, NULL) = 32

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

recvfrom(8, 0x49687fd4f4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)

pipe([10, 11])                          = 0

write(9, "\1\0\0\0\0\0\0\0", 8)         = 8

gettid()                                = 8579

gettid()                                = 8579

gettid()                                = 8579

gettid()                                = 8579

mmap(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x2f62b298000

mprotect(0x2f62b298000, 4096, PROT_NONE) = 0

clone(child_stack=0x2f62ba97df0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x2f62ba989d0, tls=0x2f62ba98700, child_tidptr=0x2f62ba989d0) = 8583

futex(0x3c4ba7ef5f4, FUTEX_WAIT_PRIVATE, 1, NULL <unfinished ...>

+++ killed by SIGILL +++

Illegal instruction

```

google-chrome with --no-sandbox will not crash, as I pointed out before strace'ing.  I don't know which part to strace of that, so I'm leaving it out.  Unfortunately it isn't very useful, even though it does start.

```

chad@Hugin ~ $ eix google-chrome

[I] www-client/google-chrome

     Available versions:  

        (stable)        (~)26.0.1410.63_p192696^msd

        (beta)  (~)27.0.1453.81_beta198567^msd

        (unstable)      [M](~)28.0.1500.11_alpha199640^msd

        {{+linguas_am +linguas_ar +linguas_bg +linguas_bn +linguas_ca +linguas_cs +linguas_da +linguas_de +linguas_el +linguas_en_GB +linguas_es +linguas_es_LA +linguas_et +linguas_fa +linguas_fi +linguas_fil +linguas_fr +linguas_gu +linguas_he +linguas_hi +linguas_hr +linguas_hu +linguas_id +linguas_it +linguas_ja +linguas_kn +linguas_ko +linguas_lt +linguas_lv +linguas_ml +linguas_mr +linguas_ms +linguas_nb +linguas_nl +linguas_pl +linguas_pt_BR +linguas_pt_PT +linguas_ro +linguas_ru +linguas_sk +linguas_sl +linguas_sr +linguas_sv +linguas_sw +linguas_ta +linguas_te +linguas_th +linguas_tr +linguas_uk +linguas_vi +linguas_zh_CN +linguas_zh_TW +plugins}}

     Installed versions:  27.0.1453.81_beta198567(beta)^msd(09:36:26 PM 05/30/2013)(linguas_ja plugins -linguas_am -linguas_ar -linguas_bg -linguas_bn -linguas_ca -linguas_cs -linguas_da -linguas_de -linguas_el -linguas_en_GB -linguas_es -linguas_es_LA -linguas_et -linguas_fa -linguas_fi -linguas_fil -linguas_fr -linguas_gu -linguas_he -linguas_hi -linguas_hr -linguas_hu -linguas_id -linguas_it -linguas_kn -linguas_ko -linguas_lt -linguas_lv -linguas_ml -linguas_mr -linguas_ms -linguas_nb -linguas_nl -linguas_pl -linguas_pt_BR -linguas_pt_PT -linguas_ro -linguas_ru -linguas_sk -linguas_sl -linguas_sr -linguas_sv -linguas_sw -linguas_ta -linguas_te -linguas_th -linguas_tr -linguas_uk -linguas_vi -linguas_zh_CN -linguas_zh_TW)

     Homepage:            http://www.google.com/chrome

     Description:         The web browser from Google

chad@Hugin ~ $ eix -e chromium

[D] www-client/chromium

     Available versions:  

        (0)     [m]26.0.1410.43 [m]~26.0.1410.63 [m]~27.0.1453.73 [m]~27.0.1453.81 [M]~28.0.1500.5 [M]~28.0.1500.11

        (live)  [M]**9999-r1

        {{bindist cups custom-cflags gnome gnome-keyring gps kerberos +linguas_am +linguas_ar +linguas_bg +linguas_bn +linguas_ca +linguas_cs +linguas_da +linguas_de +linguas_el +linguas_en_GB +linguas_es +linguas_es_LA +linguas_et +linguas_fa +linguas_fi +linguas_fil +linguas_fr +linguas_gu +linguas_he +linguas_hi +linguas_hr +linguas_hu +linguas_id +linguas_it +linguas_ja +linguas_kn +linguas_ko +linguas_lt +linguas_lv +linguas_ml +linguas_mr +linguas_ms +linguas_nb +linguas_nl +linguas_pl +linguas_pt_BR +linguas_pt_PT +linguas_ro +linguas_ru +linguas_sk +linguas_sl +linguas_sr +linguas_sv +linguas_sw +linguas_ta +linguas_te +linguas_th +linguas_tr +linguas_uk +linguas_vi +linguas_zh_CN +linguas_zh_TW pulseaudio selinux (+)system-ffmpeg system-sqlite tcmalloc test}}

     Installed versions:  27.0.1453.93(11:14:32 PM 05/23/2013)(cups linguas_ja system-ffmpeg -bindist -custom-cflags -gnome -gnome-keyring -gps -kerberos -linguas_am -linguas_ar -linguas_bg -linguas_bn -linguas_ca -linguas_cs -linguas_da -linguas_de -linguas_el -linguas_en_GB -linguas_es -linguas_es_LA -linguas_et -linguas_fa -linguas_fi -linguas_fil -linguas_fr -linguas_gu -linguas_he -linguas_hi -linguas_hr -linguas_hu -linguas_id -linguas_it -linguas_kn -linguas_ko -linguas_lt -linguas_lv -linguas_ml -linguas_mr -linguas_ms -linguas_nb -linguas_nl -linguas_pl -linguas_pt_BR -linguas_pt_PT -linguas_ro -linguas_ru -linguas_sk -linguas_sl -linguas_sr -linguas_sv -linguas_sw -linguas_ta -linguas_te -linguas_th -linguas_tr -linguas_uk -linguas_vi -linguas_zh_CN -linguas_zh_TW -pulseaudio -selinux -system-sqlite -tcmalloc -test)

     Homepage:            http://chromium.org/

     Description:         Open-source version of Google Chrome web browser

```

What is going on, and how do I workaround/debug this?

Please help!

Thanks in advance.

----------

## Bones McCracker

These may help you with diagnosis or debugging:

http://www.gossamer-threads.com/lists/gentoo/hardened/266876

http://code.google.com/p/chromium/issues/detail?id=94472

----------

## Ant P.

 *ChadJoan wrote:*   

> I read about some people having problems with versions of chrome that needed SSE2.  My machine does have SSE2, but the symptoms are very similar.

 

Are you sure the binaries from that quickpkg you used are compatible with your CPU?

Also, I'm not sure what 4GB has to do with it; I build chromium on a 1GB netbook without problems.

----------

