Skip to content

MCP server crashes with SIGILL on Ivy Bridge CPUs (missing AVX2 support) #202

@mmmikko

Description

@mmmikko

Issue Type

Browser Issue

Operating System

Linux

Description of the bug

MCP server crashes with SIGILL on Ivy Bridge CPUs (missing AVX2 support)

Description

The BrowserOS MCP server fails to start on older Intel CPUs (Ivy Bridge generation) that support AVX but not AVX2 instructions. The browseros_server binary crashes immediately with an illegal instruction error (SIGILL), preventing MCP integration with Claude Code or other MCP clients.

System Information

  • BrowserOS Version: 137.0.7229.69
  • OS: Ubuntu 24.04 LTS (kernel 6.14.0-27-generic)
  • CPU: Intel Core i5-3210M (Ivy Bridge, 3rd generation)
  • CPU Features: Has AVX, lacks AVX2 (introduced in Haswell/4th gen)

Steps to Reproduce

  1. Install BrowserOS on a system with Ivy Bridge CPU (or any CPU without AVX2)
  2. Open BrowserOS → Settings → MCP
  3. Toggle "Enable BrowserOS as MCP server" to ON
  4. Observe error in terminal

Expected Behavior

The MCP server should start successfully and listen on the configured port (e.g., http://127.0.0.1:9100/mcp or http://127.0.0.1:9226/mcp), allowing MCP clients to connect.

Actual Behavior

The browseros_server binary crashes immediately with:

Illegal instruction (core dumped)

Terminal output:

[23109:23109:1114/114612.291766:ERROR:chrome/browser/browseros_server/browseros_server_manager.cc:803] browseros: MCP control request failed - HTTP 0, net error: net::ERR_CONNECTION_REFUSED

Testing the binary directly:

$ /usr/lib/browseros/BrowserOSServer/default/resources/bin/browseros_server
Illegal instruction (core dumped)
$ echo $?
132

Exit code 132 = 128 + signal 4 (SIGILL)

Technical Details

Crash analysis:

  • Signal: 4 (SIGILL - Illegal Instruction)
  • Crash dump location: /var/crash/_usr_lib_browseros_BrowserOSServer_default_resources_bin_browseros_server.1000.crash
  • No browseros_server process appears in process list
  • No ports listening on 9100, 9226, or any expected MCP port

CPU flags (has AVX but not AVX2):

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 rdtscp lm constant_tsc
arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni
pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1
sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand

Impact

Users with older CPUs (pre-Haswell/4th gen Intel, pre-Excavator AMD) cannot use BrowserOS MCP integration with Claude Code, Gemini CLI, or other MCP clients, despite the main browser working fine.

Suggested Solution

Compile the browseros_server binary with a more conservative baseline (e.g., AVX instead of AVX2) or provide separate binaries for different CPU feature levels. Alternatively, detect CPU capabilities at runtime and gracefully fail with a clear error message about system requirements.

Related Issues

Possibly related to #199 (MCP server binds to random ports) - the random port behavior might be a symptom of the server repeatedly crashing and restarting.

Workaround

None currently available. The main BrowserOS browser works fine for regular browsing and AI features, but MCP integration is completely unavailable on affected CPUs.

Steps to Reproduce

  1. Install BrowserOS on a system with Ivy Bridge CPU (or any CPU without AVX2)
  2. Open BrowserOS → Settings → MCP
  3. Toggle "Enable BrowserOS as MCP server" to ON
  4. Observe error in terminal

Screenshots / Videos

No response

BrowserOS Version

137.0.7229.69

Additional Context

No response

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions