View Issue Details

IDProjectCategoryView StatusLast Update
0000915LDMud 3.6LPC Compiler/Preprocessorpublic2026-03-26 17:24
Reportergorgar Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Product Version3.6.6 
Summary0000915: SIGSEGV in yyparse/read_jump_offset/get_bc_offset when compiling large LPC with foreach+continue
DescriptionHi team,
 I was running into a frequent crash when the main living object was compiling, so I used my AI workflow to reproduce it and document. This actual crash is a bit over my head.
Note that this driver has a few custom add-ins but as far as can be told, they aren't affecting this crash.

 The reproduce example file is atrocious and maybe unnecessary but it's just being used to demonstrate the issue.



Environment

LDMud: 3.6.6 (custom fork)
Platform: Ubuntu 22.04, x86_64
Core handling: apport (/var/lib/apport/coredump)
Summary
Compiling a large LPC file containing repeated foreach (...) { ... continue; ... } patterns causes a deterministic driver segfault during compile time.

Observed Behavior

Driver crashes with SIGSEGV
Stack shows:
get_bc_offset()
read_jump_offset()
yyparse() (prolang.y, continue/jump patching path)
Crash happens while compiling LPC (not runtime execution).
Expected Behavior
Compiler should either compile successfully or emit a compile error, never segfault.
Steps To ReproduceMinimal Reproducer
Attached:

ldmud_foreach_continue_crash_repro_big.c

How To Reproduce

Start driver.
Compile/load ldmud_foreach_continue_crash_repro_big.c.
Observe segfault.
TagsNo tags attached.
Attached Files
login_probe_20260326_131117.log (7,830 bytes)   
=== login_probe start 20260326_131117 ===
cwd: /home/df3/testmud/test-lib
ldmud: /home/df3/testmud/bin/ldmud

2026.03.26 13:11:17 [xerq] XERQ Mar 20 2026: Path 'erq', debuglevel 0
2026.03.26 13:11:17 [xerq] Demon started
2026.03.26 13:11:17 compiling secure/master.c ... done
2026.03.26 13:11:18 compiling secure/simul_efun.c ... done
2026.03.26 13:11:18 compiling room/room.c ... done
2026.03.26 13:11:18 compiling daemon/lava_terrain_d.c ... done
2026.03.26 13:11:18 compiling codex/ldmud_foreach_continue_crash_repro_big.c ...[xerq] read: No such device or address
2026.03.26 13:11:18 [xerq] Demon exiting.
timeout: the monitored command dumped core
/home/df3/testmud/test-lib/codex/login_probe.sh: line 46: 519357 Segmentation fault      timeout 30 "${LDMUD_BIN}" -d -c --mudlib "${MUDLIB}" --python-script "${MUDLIB}/quests/scripts/startup.py" --debug-file "${MUDLIB}/log/game_logs/debug.log" -u 2300 2301
[probe] sending login payload
[probe] payload stderr:

=== tail DF.err ===
2026.03.26 13:08:26 compiling room/room.c ... done
2026.03.26 13:08:26 compiling room/room.c ... done
2026.03.26 13:08:26 compiling room/room.c ... done
2026.03.26 13:08:26 compiling room/room.c ... done
2026.03.26 13:08:26 compiling room/room.c ... done
2026.03.26 13:08:26 compiling room/room.c ... done
2026.03.26 13:08:26 compiling room/room.c ... done
2026.03.26 13:08:26 compiling room/room.c ... done
2026.03.26 13:08:26 compiling room/room.c ... done
2026.03.26 13:08:26 compiling room/room.c ... done
2026.03.26 13:08:26 compiling room/room.c ... done
2026.03.26 13:08:26 compiling room/room.c ... done
2026.03.26 13:08:26 compiling room/room.c ... done
2026.03.26 13:08:26 compiling room/room.c ... done
2026.03.26 13:08:27 compiling room/room.c ... done
2026.03.26 13:08:27 compiling room/room.c ... done
2026.03.26 13:08:27 compiling room/room.c ... done
2026.03.26 13:08:27 compiling room/room.c ... done
2026.03.26 13:08:27 compiling room/room.c ... done
2026.03.26 13:08:27 compiling room/room.c ... done
2026.03.26 13:08:27 compiling room/room.c ... done
2026.03.26 13:08:27 compiling room/room.c ... done
2026.03.26 13:08:27 compiling room/room.c ... done
2026.03.26 13:08:28 compiling room/room.c ... done
2026.03.26 13:08:28 compiling room/room.c ... done
2026.03.26 13:08:29 compiling room/room.c ... done
2026.03.26 13:08:29 compiling room/room.c ... done
2026.03.26 13:08:29 compiling room/room.c ... done
2026.03.26 13:08:29 compiling room/room.c ... done
2026.03.26 13:08:29 compiling room/room.c ... done
2026.03.26 13:08:29 compiling room/room.c ... done
2026.03.26 13:08:29 compiling room/room.c ... done
2026.03.26 13:08:29 compiling room/room.c ... done
2026.03.26 13:08:29 compiling room/room.c ... done
2026.03.26 13:08:29 compiling room/room.c ... done
2026.03.26 13:08:30 compiling room/room.c ... done
2026.03.26 13:08:30 compiling bin/file/_cd.c ... done
2026.03.26 13:08:30 compiling bin/file/_ls.c ... done
2026.03.26 13:08:31 compiling room/room.c ... done
2026.03.26 13:08:37 compiling room/room.c ... done
2026.03.26 13:08:40 compiling room/room.c ... done
2026.03.26 13:08:43 compiling room/room.c ... done
2026.03.26 13:08:46 compiling room/room.c ... done
2026.03.26 13:08:48 compiling room/room.c ... done
2026.03.26 13:08:51 compiling room/room.c ... done
2026.03.26 13:08:53 compiling room/room.c ... done
2026.03.26 13:08:53 compiling room/room.c ... done
2026.03.26 13:08:55 compiling room/room.c ... done
2026.03.26 13:08:56 compiling room/room.c ... done
2026.03.26 13:08:58 compiling room/room.c ... done
2026.03.26 13:09:00 compiling room/room.c ... done
2026.03.26 13:09:03 compiling room/room.c ... done
2026.03.26 13:09:05 compiling room/room.c ... done
2026.03.26 13:09:08 compiling room/room.c ... done
2026.03.26 13:09:10 compiling room/room.c ... done
2026.03.26 13:09:10 compiling room/room.c ... done
2026.03.26 13:09:12 compiling room/room.c ... done
2026.03.26 13:09:12 compiling room/room.c ... done
2026.03.26 13:09:12 compiling room/room.c ... done
2026.03.26 13:09:12 compiling room/room.c ... done
2026.03.26 13:09:12 compiling room/room.c ... done
2026.03.26 13:09:12 compiling room/room.c ... done
2026.03.26 13:09:12 compiling room/room.c ... done
2026.03.26 13:09:12 compiling room/room.c ... done
2026.03.26 13:09:13 compiling room/room.c ... done
2026.03.26 13:09:13 compiling room/room.c ... done
2026.03.26 13:09:15 compiling room/room.c ... done
2026.03.26 13:09:15 compiling room/room.c ... done
2026.03.26 13:09:15 compiling room/room.c ... done
2026.03.26 13:09:18 compiling room/room.c ... done
2026.03.26 13:09:18 compiling room/room.c ... done
2026.03.26 13:09:18 compiling room/room.c ... done
2026.03.26 13:09:20 compiling room/room.c ... done
2026.03.26 13:09:20 compiling room/room.c ... done
2026.03.26 13:09:20 compiling room/room.c ... done
2026.03.26 13:09:22 compiling room/room.c ... done
2026.03.26 13:09:22 compiling room/room.c ... done
2026.03.26 13:09:24 compiling room/room.c ... done
2026.03.26 13:09:28 compiling room/room.c ... done
2026.03.26 13:09:28 compiling room/room.c ... done
2026.03.26 13:09:29 compiling room/room.c ... done
2026.03.26 13:09:30 compiling room/room.c ... done
2026.03.26 13:09:30 compiling room/room.c ... done
2026.03.26 13:09:31 compiling room/room.c ... done
2026.03.26 13:09:33 compiling room/room.c ... done
2026.03.26 13:09:33 compiling room/room.c ... done
2026.03.26 13:09:34 compiling room/room.c ... done
2026.03.26 13:09:35 compiling room/room.c ... done
2026.03.26 13:09:35 compiling room/room.c ... done
2026.03.26 13:09:36 compiling room/room.c ... done
2026.03.26 13:09:38 compiling room/room.c ... done
2026.03.26 13:09:39 compiling room/room.c ... done
2026.03.26 13:09:40 compiling room/room.c ... done
2026.03.26 13:09:41 compiling room/room.c ... done
2026.03.26 13:09:43 compiling room/room.c ... done
2026.03.26 13:09:45 compiling room/room.c ... done
2026.03.26 13:09:45 compiling room/room.c ... done
2026.03.26 13:09:48 compiling room/room.c ... done
2026.03.26 13:09:48 compiling room/room.c ... done
2026.03.26 13:09:50 compiling room/room.c ... done
2026.03.26 13:09:53 compiling room/room.c ... done
2026.03.26 13:09:55 compiling room/room.c ... done
2026.03.26 13:09:58 compiling room/room.c ... done
2026.03.26 13:09:58 compiling room/room.c ... done
2026.03.26 13:09:58 compiling room/room.c ... done
2026.03.26 13:09:58 compiling room/room.c ... done
2026.03.26 13:09:58 compiling room/room.c ... done
2026.03.26 13:09:58 compiling room/room.c ... done
2026.03.26 13:09:58 compiling room/room.c ... done
2026.03.26 13:09:59 compiling room/room.c ... done
2026.03.26 13:10:01 compiling room/room.c ... done
2026.03.26 13:10:04 compiling room/room.c ... done
2026.03.26 13:10:06 compiling room/room.c ... done
2026.03.26 13:10:07 compiling room/room.c ... done
2026.03.26 13:10:09 compiling room/room.c ... done
2026.03.26 13:10:11 compiling room/room.c ... done
2026.03.26 13:10:14 compiling room/room.c ... done
2026.03.26 13:10:15 compiling room/room.c ... done
[xerq] read: Success
2026.03.26 13:10:16 [xerq] Demon exiting.

=== tail debug.log ===
2026.03.26 13:11:17 LDMud 3.6.6 (3.6.6) (release)
2026.03.26 13:11:17 Seeding PRG from /dev/urandom.
2026.03.26 13:11:17 TLS: (GnuTLS) trusted x509 certificates locations not specified.
2026.03.26 13:11:17 TLS: (GnuTLS) CRL checking disabled.
2026.03.26 13:11:17 TLS: Importing built-in default DH parameters.
2026.03.26 13:11:17 TLS: Setting built-in default priorities: PFS:+SECURE128:-VERS-SSL3.0:-DHE-DSS:-ARCFOUR-128:-MD5:-DES-CBC:%SERVER_PRECEDENCE.
2026.03.26 13:11:17 mySQL 8.0.45
2026.03.26 13:11:17 Attempting to start erq '/home/df3/testmud/bin/erq'.
2026.03.26 13:11:17 Hostname 'df2' address '127.0.1.1'
2026.03.26 13:11:17 UDP recv-socket requested for port: 2300

=== fresh log/rep/mudlib ===

=== login_probe end ===

Activities

Issue History

Date Modified Username Field Change
2026-03-26 17:24 gorgar New Issue
2026-03-26 17:24 gorgar File Added: gdb_latest_core_full_20260326_130303.log
2026-03-26 17:24 gorgar File Added: ldmud_foreach_continue_crash_repro_big.c
2026-03-26 17:24 gorgar File Added: login_probe_20260326_131117.log