Closed as not planned
Description
Zig Version
0.11.0
Steps to Reproduce and Observed Behavior
stack_probe.zig is causing a segmentation fault when in debug mode. Here is one instance where this happened
This stack segmentation fault is also happening when attempting to parse large json strings using std.json.parseFromSlice
Example code causing a segfault. level.Level is a large struct.
const string = try std.fs.cwd().readFileAlloc(a, path, 100000);
if (!try std.json.validate(a, string)) {
return error.invalid_json;
}
const parsed = try std.json.parseFromSlice(level.Level, a, string, .{});
Process 13483 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=2, address=0x7ff7bf6ff500)
frame #0: 0x0000000100164c54 dev`__zig_probe_stack at stack_probe.zig:53:13 [opt]
50 switch (arch) {
51 .x86_64 => {
52 // %rax = probe length, %rsp = stack pointer
-> 53 asm volatile (
54 \\ push %%rcx
55 \\ mov %%rax, %%rcx
56 \\ cmp $0x1000,%%rcx
warning: dev was compiled with optimization - stepping may behave oddly; variables may not be available.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=2, address=0x7ff7bf6ff500)
* frame #0: 0x0000000100164c54 dev`__zig_probe_stack at stack_probe.zig:53:13 [opt]
frame #1: 0x00000001000a0f89 dev`json.static.innerParse__anon_16225(allocator=mem.Allocator @ 0x00007ff7bfc75588, source=0x00007ff7bfd02868, options=json.static.ParseOptions @ 0x00007ff7bfbe8260) at static.zig:361:63
frame #2: 0x0000000100088e4e dev`json.static.innerParse__anon_15817(allocator=mem.Allocator @ 0x00007ff7bfc75588, source=0x00007ff7bfd02868, options=json.static.ParseOptions @ 0x00007ff7bfbe8260) at static.zig:361:63
frame #3: 0x000000010006fbf0 dev`json.static.parseFromTokenSourceLeaky__anon_14537(allocator=mem.Allocator @ 0x00007ff7bfc75588, scanner_or_reader=0x00007ff7bfd02868, options=json.static.ParseOptions @ 0x00000001001d3980) at static.zig:140:33
frame #4: 0x00000001000409c4 dev`json.static.parseFromTokenSource__anon_11798(allocator=mem.Allocator @ 0x00007ff7bfeff338, scanner_or_reader=0x00007ff7bfd02868, options=json.static.ParseOptions @ 0x00000001001d3980) at static.zig:107:49
frame #5: 0x000000010002c19f dev`json.static.parseFromSlice__anon_10958(allocator=mem.Allocator @ 0x00007ff7bfeff338,
When the code is compiled in modes other than debug, the segmentation fault does not happen
Expected Behavior
No segmentation fault
Metadata
Metadata
Assignees
Labels
No labels