You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Original bug ID: 5518 Reporter: @sliquister Status: closed (set by @damiendoligez on 2012-03-06T19:18:15Z) Resolution: fixed Priority: normal Severity: crash OS: Ubuntu Version: 3.12.1 Fixed in version: 3.13.0+dev Category: runtime system and C interface Monitored by:@hcarty@damiendoligez
Bug description
It also breaks in version 3.11.2.
The following program segfaults in the garbage collector:
let empty = lazy [||]
let _ = Lazy.force empty
let () = Gc.minor ()
Steps to reproduce
Compile with ocamlc or ocamlopt without any particular options.
Additional information
If the lazy value is not forced, it doesn't segfault.
If the array is not empty, it doesn't segfault.
If the empty array is computed rather than a literal, it still segfaults.
The text was updated successfully, but these errors were encountered:
I would say that the following piece of code from minor_gc is the culprit:
if (Is_block (f)){
vv = Is_in_value_area(f);
if (vv) {
ft = Tag_val (Hd_val (f) == 0 ? Field (f, 0) : f);
}
}
f is the array, and I think Field(f, 0) is called because the header of an
atom with a tag 0 looks a lot like a forwarded header.
Original bug ID: 5518
Reporter: @sliquister
Status: closed (set by @damiendoligez on 2012-03-06T19:18:15Z)
Resolution: fixed
Priority: normal
Severity: crash
OS: Ubuntu
Version: 3.12.1
Fixed in version: 3.13.0+dev
Category: runtime system and C interface
Monitored by: @hcarty @damiendoligez
Bug description
It also breaks in version 3.11.2.
The following program segfaults in the garbage collector:
let empty = lazy [||]
let _ = Lazy.force empty
let () = Gc.minor ()
Steps to reproduce
Compile with ocamlc or ocamlopt without any particular options.
Additional information
If the lazy value is not forced, it doesn't segfault.
If the array is not empty, it doesn't segfault.
If the empty array is computed rather than a literal, it still segfaults.
The text was updated successfully, but these errors were encountered: