* Segfault in caml_oldify_local_roots.
@ 2006-08-31 6:32 David Brown
2006-08-31 8:33 ` [Caml-list] " David Brown
0 siblings, 1 reply; 3+ messages in thread
From: David Brown @ 2006-08-31 6:32 UTC (permalink / raw)
To: caml-list
Just wondering if anyone has any ideas on how I might debug this. The
problem happens with ocaml-3.09.2, and doesn't with 3.08.3. The program
uses camlzip as well as the sha1 binding pulled out of Xavier's cryptokit.
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1210538320 (LWP 24659)]
0x08059c60 in caml_oldify_local_roots () at roots.c:52
52 caml_oldify_one (*sp, sp);
(gdb) p sp
$1 = (value *) 0x1
(gdb) bt
#0 0x08059c60 in caml_oldify_local_roots () at roots.c:52
#1 0x080729f9 in caml_empty_minor_heap () at minor_gc.c:189
#2 0x08072b00 in caml_minor_collection () at minor_gc.c:222
#3 0x08059890 in caml_alloc_string (len=10) at alloc.c:77
#4 0x0805df53 in caml_create_string (len=21) at str.c:50
#5 0x0806e802 in caml_interprete (prog=0x80aa520, prog_size=125072)
at interp.c:863
#6 0x0807064b in caml_main (argv=0xbfb95954) at startup.c:414
#7 0x0805882f in main (argc=3, argv=0xbfb95954) at main.c:35
I don't see any obvious problems in either binding and was wondering if
anyone has seen anything like this?
Thanks,
David Brown
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Caml-list] Segfault in caml_oldify_local_roots.
2006-08-31 6:32 Segfault in caml_oldify_local_roots David Brown
@ 2006-08-31 8:33 ` David Brown
2006-08-31 20:11 ` Markus Mottl
0 siblings, 1 reply; 3+ messages in thread
From: David Brown @ 2006-08-31 8:33 UTC (permalink / raw)
Cc: caml-list
David Brown wrote:
> Just wondering if anyone has any ideas on how I might debug this. The
> problem happens with ocaml-3.09.2, and doesn't with 3.08.3. The program
> uses camlzip as well as the sha1 binding pulled out of Xavier's
cryptokit.
>
> Program received signal SIGSEGV, Segmentation fault.
> 52 caml_oldify_one (*sp, sp);
I found the problem, in how I was using the Gzip module. I was doing
something like:
let fd = open_out_bin ... in
let zfd = Gzip.open_out_chan fd in
...
Gzip.close_out zfd;
close_out fd
Turns out that if I'd read it more carefully, I should have realized that
Gzip.close_out will also close the underlying handle. Apparently calling
close_out twice on the same handle messes things up enough to segfault the
garbage collector.
Dave Brown
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2006-08-31 20:11 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-08-31 6:32 Segfault in caml_oldify_local_roots David Brown
2006-08-31 8:33 ` [Caml-list] " David Brown
2006-08-31 20:11 ` Markus Mottl
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox