Skip to content

Segfault in claude before its first answer in Fontconfig.discover #10432

@jcollie

Description

@jcollie

Discussed in #10420

Originally posted by krk January 23, 2026

Issue Description

Ghostty crashes just before claude can print its first answer. This only started happening recently.

Expected Behavior

Not crashing.

Actual Behavior

Crashes.

Reproduction Steps

  1. Start ghostty on Ubuntu 24 x86_64
  2. Change to a project folder and start claude
  3. Ask claude to "analyze project".
  4. ghostty will segfault.

Also reproducible with ghostty-1.1.4-main+0d55a1d.

This only started happening recently.

Ghostty Logs

debug(app): mailbox message=redraw_surface
debug(font_codepoint_resolver): searching for a fallback font for cp=23BF
Thread 4 "renderer" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7b157a5076c0 (LWP 763806)]
0x0000000004b013fd in FcCompare (pat=0x7b1564001ea0, fnt=0x7b15e3b75078, value=0x7b156405a098, result=0x7b157a501470, data=0x7b157a501310) at /x/.cache/zig/p/N-V-__8AAIrfdwARSa-zMmxWwFuwpXf1T3asIN7s5jqi9c1v/src/fcmatch.c:622
622	    while (i1 < pat->num && i2 < fnt->num)
(gdb) bt
#0  0x0000000004b013fd in FcCompare (pat=0x7b1564001ea0, fnt=0x7b15e3b75078, value=0x7b156405a098, result=0x7b157a501470, data=0x7b157a501310)
    at /x/.cache/zig/p/N-V-__8AAIrfdwARSa-zMmxWwFuwpXf1T3asIN7s5jqi9c1v/src/fcmatch.c:622
#1  0x0000000004b00cd7 in FcFontSetSort (config=0x3859b8c0, sets=0x7b157a501390, nsets=1, p=0x7b1564001ea0, trim=0, csp=0x0, result=0x7b157a501470)
    at /x/.cache/zig/p/N-V-__8AAIrfdwARSa-zMmxWwFuwpXf1T3asIN7s5jqi9c1v/src/fcmatch.c:1273
#2  0x0000000004b01e48 in FcFontSort (config=0x3859b8c0, p=0x7b1564001ea0, trim=0, csp=0x0, result=0x7b157a501470) at /x/.cache/zig/p/N-V-__8AAIrfdwARSa-zMmxWwFuwpXf1T3asIN7s5jqi9c1v/src/fcmatch.c:1399
#3  0x00000000033d6dc0 in config.Config.fontSort (self=0x3859b8c0, pat=0x7b1564001ea0, trim=false, charset=0x0) at /ws/tools/ghostty-1.1.4-main+0d55a1d/pkg/fontconfig/config.zig:27
#4  0x00000000033d667a in font.discovery.Fontconfig.discover (self=0x7b15e59e56a0, desc=...) at /ws/tools/ghostty-1.1.4-main+0d55a1d/src/font/discovery.zig:272
#5  0x00000000035e6996 in font.discovery.Fontconfig.discoverFallback (self=0x7b15e59e56a0, alloc=Python Exception <class 'gdb.MemoryError'>: Cannot access memory at address 0x7b15e3b75078
#6  0x000000000351dda4 in font.CodepointResolver.getIndex (self=0x7b15e59a10b0, alloc=..., cp=9151, style=regular, p=...)
    at /ws/tools/ghostty-1.1.4-main+0d55a1d/src/font/CodepointResolver.zig:175
#7  0x00000000038f3d65 in font.SharedGrid.getIndex (self=0x7b15e59a1000, alloc=..., cp=9151, style=regular, p=...) at /ws/tools/ghostty-1.1.4-main+0d55a1d/src/font/SharedGrid.zig:166
#8  0x00000000038f42b3 in font.shaper.run.RunIterator.indexForCell (self=0x7b157a502ff0, alloc=..., cell=0x7b15abcafaa0, style=regular, presentation=...) at /ws/tools/ghostty-1.1.4-main+0d55a1d/src/font/shaper/run.zig:339
#9  0x00000000038f5e66 in font.shaper.run.RunIterator.next (self=0x7b157a502ff0, alloc=...) at /ws/tools/ghostty-1.1.4-main+0d55a1d/src/font/shaper/run.zig:221
#10 0x0000000003927eb2 in renderer.generic.Renderer(renderer.OpenGL).rebuildCells (self=0x7b15e0046000, wants_rebuild=false, screen=0x7b157a503778, screen_type=primary, mouse=..., preedit=..., cursor_style_=..., color_palette=0x7b157a5039c4)
    at /ws/tools/ghostty-1.1.4-main+0d55a1d/src/renderer/generic.zig:2477
#11 0x000000000392d3cc in renderer.generic.Renderer(renderer.OpenGL).updateFrame (self=0x7b15e0046000, state=0x7b15e0052868, cursor_blink_visible=true) at /ws/tools/ghostty-1.1.4-main+0d55a1d/src/renderer/generic.zig:1263
#12 0x00000000038b3439 in renderer.Thread.renderCallback (self_=0x7b15e00528a8, r=0) at /ws/tools/ghostty-1.1.4-main+0d55a1d/src/renderer/Thread.zig:607
#13 0x00000000038b32b0 in renderer.Thread.wakeupCallback (self_=0x7b15e00528a8, r=0) at /ws/tools/ghostty-1.1.4-main+0d55a1d/src/renderer/Thread.zig:524
#14 0x000000000392e8ca in watcher.async.AsyncDynamic(dynamic.Xev(&.{ .io_uring, .epoll }[0..2])).wait__anon_545685__struct_573522.callback ()
    at /x/.cache/zig/p/libxev-0.0.0-86vtc5b1EgB7vFmt9Tk7ySteR5AeEHW7xcR6gK9dMUD3/src/watcher/async.zig:615
#15 watcher.async.AsyncEventFd(main.Xev(.io_uring,backend.io_uring)).wait__anon_573538__struct_593700.callback (ud=0x7b15e00528a8, l_inner=0x7b15e00528b8, c_inner=0x7b15e00529f8, r=...)
    at /x/.cache/zig/p/libxev-0.0.0-86vtc5b1EgB7vFmt9Tk7ySteR5AeEHW7xcR6gK9dMUD3/src/watcher/async.zig:117
#16 0x000000000387165f in backend.io_uring.Completion.invoke (self=0x7b15e00529f8, loop=0x7b15e00528b8, res=8) at /x/.cache/zig/p/libxev-0.0.0-86vtc5b1EgB7vFmt9Tk7ySteR5AeEHW7xcR6gK9dMUD3/src/backend/io_uring.zig:800
#17 0x00000000038742e9 in backend.io_uring.Loop.tick___anon_545893 (self=0x7b15e00528b8) at /x/.cache/zig/p/libxev-0.0.0-86vtc5b1EgB7vFmt9Tk7ySteR5AeEHW7xcR6gK9dMUD3/src/backend/io_uring.zig:189
#18 0x00000000038743de in backend.io_uring.Loop.run (self=0x7b15e00528b8, mode=until_done) at /x/.cache/zig/p/libxev-0.0.0-86vtc5b1EgB7vFmt9Tk7ySteR5AeEHW7xcR6gK9dMUD3/src/backend/io_uring.zig:80
#19 0x0000000003878f04 in dynamic.Xev(&.{ .io_uring, .epoll }[0..2]).Loop.run (self=0x7b15e00528b8, mode=until_done) at /x/.cache/zig/p/libxev-0.0.0-86vtc5b1EgB7vFmt9Tk7ySteR5AeEHW7xcR6gK9dMUD3/src/dynamic.zig:172
#20 0x0000000003879207 in renderer.Thread.threadMain_ (self=0x7b15e00528a8) at /ws/tools/ghostty-1.1.4-main+0d55a1d/src/renderer/Thread.zig:263
#21 0x000000000380e8c1 in renderer.Thread.threadMain (self=0x7b15e00528a8) at /ws/tools/ghostty-1.1.4-main+0d55a1d/src/renderer/Thread.zig:202
#22 0x000000000378c2bb in Thread.callFn__anon_517638 (args=...) at /x/.local/share/mise/installs/zig/0.14.1/lib/std/Thread.zig:488
#23 0x0000000003707f45 in Thread.PosixThreadImpl.spawn__anon_347233.Instance.entryFn (raw_arg=0x395786e0) at /x/.local/share/mise/installs/zig/0.14.1/lib/std/Thread.zig:757
#24 0x00007b15e809caa4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
#25 0x00007b15e8129c6c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78


### Ghostty Version

```text
Ghostty 1.1.4-dev+0000000

Version
  - version: 1.1.4-dev+0000000
  - channel: tip
Build Config
  - Zig version: 0.14.1
  - build mode : builtin.OptimizeMode.Debug
  - app runtime: apprt.Runtime.gtk
  - font engine: font.main.Backend.fontconfig_freetype
  - renderer   : renderer.generic.Renderer(renderer.OpenGL)
  - libxev     : io_uring
  - desktop env: other
  - GTK version:
    build      : 4.14.5
    runtime    : 4.14.5
  - libadwaita : enabled
    build      : 1.5.0
    runtime    : 1.5.0
  - libX11     : enabled
  - libwayland : enabled

OS Version Information

Ubuntu 24.04.3

(Linux only) Display Server

X11

(Linux only) Desktop Environment/Window Manager

GNOME 46

Minimal Ghostty Configuration

default

Additional Relevant Configuration

No response

I acknowledge that:

  • I have reviewed the FAQ and confirm that my issue is NOT among them.
  • I have searched the Ghostty repository (both open and closed Discussions and Issues) and confirm this is not a duplicate of an existing issue or discussion.
  • I have checked the "Preview" tab on all text fields to ensure that everything looks right, and have wrapped all configuration and code in code blocks with a group of three backticks (```) on separate lines.

Metadata

Metadata

Assignees

No one assigned

    Labels

    crashCauses a crash, very high priority to fixfontIssue within the font stack (typically src/font)

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions