Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
Cursor fails to launch since (and including) version 3.19.
Symptoms:
- start cursor from the CLI
- no window starts; process visible in htop, ~120MB
- after a few seconds or minutes of near 100% CPU usage, cursor process crashes.
Steps to Reproduce
On my system (Tuxedo OS / Ubuntu 24.04):
- upgrade cursor to version > 3.18 (apt)
- attempt to launch
- no window appears; after a few minutes, cursor crashes with:
Thread 1 “cursor” received signal SIGSEGV, Segmentation fault.
Expected Behavior
The IDE to launch normally.
Operating System
Linux
Version Information
Fails on: Cursor IDE >= 3.19.*
Works on: Cursor IDE <= 3.18.*
Additional Information
Fixed by downgrading and pinning on an older version. Luckily 3.18 is still available.
I’ve asked claude code (opus) to investigate and fix. It was unable to and recommended to make a report here, with the following information:
3.19/3.20 (Electron 42) hang at startup with a syscall storm, then SIGSEGV — 3.18.25 (Electron 40) works on same machine
Summary
Cursor 3.20.10 never opens a window on my machine. About one second after launch the main
process pegs one CPU core at 100% system time, stops servicing IPC, and segfaults ~64 s
later. 3.18.25 on the identical machine and profile starts normally in 4 seconds.The variable that tracks the failure is the bundled Electron version:
Version Electron Result 3.17.8 – works (from my usage history) 3.18.25 40.10.3 works — measured 3.19.13 – fails (from my usage history; I rolled back on Sep 8) 3.20.10 42.10.0 fails — measured
Environment
- TUXEDO OS (Ubuntu 24.04 base), kernel
7.0.0-111030-tuxedo, glibc2.39-0ubuntu8.9- KDE Plasma 6.6.6, X11
- NVIDIA RTX 5060, driver 580.178.04, 3× 2560×1440
- Installed via apt from
downloads.cursor.com/aptrepoReproduction
cursor --no-sandbox --user-data-dir=$(mktemp -d) --disable-extensions /tmp/somedirFails with a brand-new profile and no extensions. Reproduces when the
.debis extracted to
/tmpand run directly, so it is not tied to the installed tree.Symptoms
No window ever appears; Cursor’s own
logs/directory is never createdMain thread (
CrBrowserMain): 0% user time, 100% system time, from ~1 s after launch onwardChild processes self-terminate at 15 s, since the browser process never connects:
[INFO:content/child/child_thread_impl.cc:903] Terminating current process after 15 seconds with no connection.Main process SIGSEGV at ~64 s
It is extremely deterministic. Two independent runs (installed copy, and the
.debextracted
to a different path) ended atsyscw= 8,390,092 and 8,390,119 — 27 syscalls apart out
of 8.4 million.The anomaly
/proc/<pid>/ioattributes a huge volume of write operations to the process — ~500ksyscw/s,
wchargrowing ~2.3 GB/s — butstracecannot see them:
- In one 4-second window: kernel
syscwdelta 1,842,409, whilestrace -ffiltering
write,writev,pwrite64,pwritevlogged 0 calls- A full
strace -f -crun to the crash observed 37,034 syscalls total, including only
112writeand 122writevNothing on the system reads this data, and nothing lands on disk (456 KB written to the profile
dir). Noiou-sqp/iou-wrkkernel threads exist. Blockingio_uring_setupviaLD_PRELOAD
reduces the rate (545k→92k/s) but does not prevent the hang or the crash.Crash backtrace
Captured with
gdb(ASLR disabled, so library addresses are stable across runs):Thread 1 "cursor" received signal SIGSEGV, Segmentation fault. 0x00007ffeeb1540e0 in ?? () #0 0x00007ffeeb1540e0 in ??? () #1 0x00007ffff78ddc13 in ??? () at /lib/x86_64-linux-gnu/libgio-2.0.so.0 #2 0x00007ffff78e625f in ??? () at /lib/x86_64-linux-gnu/libgio-2.0.so.0 #3 0x00007ffff787e7bb in ??? () at /lib/x86_64-linux-gnu/libgio-2.0.so.0 #4 0x00007ffff7882713 in ??? () at /lib/x86_64-linux-gnu/libgio-2.0.so.0 #5 0x00007ffff78dce62 in ??? () at /lib/x86_64-linux-gnu/libgio-2.0.so.0 #6 0x00007ffff787e7bb in ??? () at /lib/x86_64-linux-gnu/libgio-2.0.so.0 #7 0x00007ffff787e7f5 in ??? () at /lib/x86_64-linux-gnu/libgio-2.0.so.0 #8 0x00007ffff7ea545e in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #9 0x00007ffff7f04977 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #10 0x00007ffff7ea4a23 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #11 0x0000555558812f36 in ??? () #12 0x000002f00011c420 in ??? () #13 0x0000000000000000 in ??? () rip 0x7ffeeb1540e0 rsp 0x7fffffffc5b8 rbp 0x7fffffffc5e0 rip = 0x7ffeeb1540e0; saved rip = 0x7ffff78ddc13 No symbol matches $rip.Across separate runs, frames #1–#11 are identical, but frame #0 varies
(0x00007ffeeb1540e0vs0x00007ffff48a90e0) and falls in the thread-stack address range.
Same call path every time, different jump target — i.e. GIO dispatches a callback through a
dangling/garbage function pointer, rather than jumping to a fixed bad address.Cursor links system glib/gio/gtk3 (no bundled copy). glib 2.80.0 was unchanged across the
working and broken versions.
systemd-coredumponly stored truncated cores for these crashes, so the coredumps themselves
yield no usable stack; the livegdbcapture above is the reliable artifact.Ruled out by direct test
Each tested with a throwaway
--user-data-dir:
- Profile /
state.vscdb— clean profile fails identically- Extensions —
--disable-extensions- GPU —
--disable-gpu,--use-gl=swiftshader,--in-process-gpu; hardware acceleration
already disabled viaargv.json- X server / NVIDIA / multi-monitor — identical failure under
xvfb-run- D-Bus —
DBUS_SESSION_BUS_ADDRESS=disabled:- Keyring —
--password-store=basicandgnome-libsecret- Proxy —
--no-proxy-server,GIO_USE_PROXY_RESOLVER=dummy- io_uring —
UV_USE_IO_URING=0, plusLD_PRELOADreturningENOSYSfromio_uring_setup- Package integrity —
dpkg -Vclean; downloaded.debis MD5-identical to the apt-cached one- AppArmor — extracting to
/tmpputs it outside thecursor-sandboxprofile path; same failureSide note (separate issue)
Without
--no-sandboxit fails immediately with:FATAL:sandbox/linux/services/credentials.cc:131] Check failed: . : Permission denied (13)That’s
kernel.apparmor_restrict_unprivileged_userns=1on Ubuntu 24.04. The shipped
/etc/apparmor.d/cursor-sandboxonly covers the agent helpercursorsandbox, and itsuserns,
rule is commented out (“Uncomment this on AppArmor 4.0”) — but Ubuntu 24.04 ships AppArmor 4.x.
Chrome’s.debships a profile that handles this.Ask
Happy to run further diagnostics, test a build, or collect anything specific. Given 3.18.25
(Electron 40) works and 3.19/3.20 (Electron 42) don’t on otherwise identical software, the
Electron bump looks like the place to start.
Does this stop you from using Cursor
Sometimes - I can sometimes use Cursor