4

Google Chrome won't launch.

Whenever I try to launch it,

google-chrome-stable 

I get,

Illegal instruction (core dumped)

(I have already taken a look at,

No help. Yes, majority of these are closed. And before you vote to close this one as well, please understand that the same Chrome is running in the same OS (Ubuntu 15.10) in at least two other of my machines without any problem. So, if I report this on launchpad, the issue is likely to be ignored since they will not be able to reproduce it.)

Steps tried so far

  1. Completely remove Chrome.

    sudo apt-get purge google-chrome*
    
  2. Remove my (Chrome) configuration directory.

    rm -rvf .config/google-chrome/
    
  3. Reinstall Chrome from the latest binary.

    sudo dpkg -i ~/Downloads/google-chrome-stable_current_amd64.deb
    
  4. Relaunch Chrome and watch the log file. Chrome won't launch and core is dumped again. For log file, with command,

    sudo tail -f /var/log/syslog
    

    I get,

    Oct 18 12:27:53 HomeDell kernel: [ 1047.701443] traps: chrome[4798] trap invalid opcode ip:55f20da8199f sp:7ffd755d2080 error:0 in chrome[55f20c27d000+58b7000]
    

This is where I feel lost and do not know how to proceed further.

As I have already said, I am using Ubuntu 15.10 and it has been upgraded fully.


EDIT 1

Output of lscpu

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    2
Core(s) per socket:    1
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            15
Model:                 4
Model name:            Intel(R) Pentium(R) 4 CPU 3.00GHz
Stepping:              3
CPU MHz:               2992.460
BogoMIPS:              5984.92
L1d cache:             16K
L2 cache:              2048K
NUMA node0 CPU(s):     0,1

Output of file /opt/google/chrome/chrome

/opt/google/chrome/chrome: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.26, BuildID[sha1]=7990871775815c5438608f84498e66be16dd8d8b, stripped

EDIT 2

As advised here, I enabled the microcode (which was indeed disabled) for CPU, downloaded and installed the latest .deb file, made it a point to reboot my machine, then (try to) launch Google Chrome.

Unfortunately, the situation did not improve.

Masroor
  • 3,143
  • Install using apt-get or via software center. The deb package might be on the wrong version. – Aizuddin Zali Oct 18 '15 at 09:59
  • @AizuddinZali Unfortunately, google-chrome is not available either in USO or via apt-get. Are we missing something here? – Masroor Oct 18 '15 at 15:25
  • I mean chromium. – Aizuddin Zali Oct 18 '15 at 15:51
  • @AizuddinZali I am not looking forward to installing Chromium and would like to solve the present problem, not bypass it. I have used Google Chrome for years, and still it is running good in two other machines. Thanks anyway. – Masroor Oct 18 '15 at 15:58
  • Cant help more since you are on Beta release.opcode error point out that machine code having problem with the kernel processing it. – Aizuddin Zali Oct 18 '15 at 16:07
  • 1
    Are you sure the deb package isn't corrupted? Please, add the output of lscpu and file /opt/google/chrome/chrome. – Eric Carvalho Oct 19 '15 at 12:20

1 Answers1

4

This error happens when the CPU tries to execute an instruction that is not part of its instruction set. This may be caused by several reasons, like:

  • a corrupted executable file
  • a bug that makes the CPU load instructions from a memory segment that doesn't hold executable code
  • the program was compiled targeting an instruction set unsupported by the CPU
  • hardware failure

File corruption is easy to detect, you could just download the deb file again and reinstall. Hardware failure would probably affect other programs, not only Chrome.

I guess your other systems in which Chrome runs flawlessly have a newer CPU, right? Maybe last versions of chrome dropped support for Pentium 4 (although Chrome requirements for Linux states that Pentium 4 is supported). It could even be a bug in code that detects CPU capabilities and directs execution for a branch optimized for a particular instruction set.

There's one thing I think is worth trying. Open "Additional Drivers" and try to enable (or disable) the processor microcode firmware:

enter image description here

I've seen this causing "illegal instruction" errors sometimes.

Eric Carvalho
  • 54,385
  • My other two hardware, successfully running Google Chrome have newer hardware, almost the latest actually. In this (failing) older machine, I have enabled the microcode (which was indeed disabled), downloaded and installed the latest .deb file, made it a point to reboot my machine, then (try to) launch Google Chrome. Unfortunately, the situation did not improve. The same error message. Are we facing a closed door? – Masroor Oct 20 '15 at 00:32
  • 1
    Chrome(ium) now requires the processor to support SSE2 instructions. If it doesn't support that, then it will crash. – saiarcot895 Oct 20 '15 at 01:02
  • @saiarcot895 Does that mean that Chrome will never be usable in this machine? Any way to circumvent the issue? – Masroor Oct 20 '15 at 01:51
  • If you absolutely want to use Chrome, you'll have to install an older version of Chrome and stick with that version (which is a bad idea from a security standpoint, IMO), or upgrade the processor. See also this answer – saiarcot895 Oct 20 '15 at 02:20
  • However, it seems your CPU supports a 64-bit OS, so this might not even be related to your issue. – saiarcot895 Oct 20 '15 at 02:21
  • @saiarcot895 But looks like my machine has SSE2, cat /proc/cpuinfo | grep flags flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts nopl pni dtes64 monitor ds_cpl est cid cx16 xtpr flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts nopl pni dtes64 monitor ds_cpl est cid cx16 xtpr. – Masroor Oct 20 '15 at 02:48
  • @Masroor Seems like you're affected by this bug. Could you test older versions? You can find them in software archives, like this is one. – Eric Carvalho Oct 20 '15 at 11:53
  • 1
    @EricCarvalho Indeed, the older version works. I tried the latest of the old ones, namely Google Chrome 42.0.2311.90 (64-bit), and it works without any hitch. Now, I need to stop automatic upgrading of Google Chrome, at least for the time being. – Masroor Oct 20 '15 at 15:30