caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* 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

* Re: [Caml-list] Segfault in caml_oldify_local_roots.
  2006-08-31  8:33 ` [Caml-list] " David Brown
@ 2006-08-31 20:11   ` Markus Mottl
  0 siblings, 0 replies; 3+ messages in thread
From: Markus Mottl @ 2006-08-31 20:11 UTC (permalink / raw)
  To: David Brown; +Cc: caml-list

On 8/31/06, David Brown <caml-list2@davidb.org> wrote:
> 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.

This is a known bug which is fixed in the current CVS-release:

  http://caml.inria.fr/mantis/view.php?id=4039

Normally, closing an already closed channel a second time should not
cause any problems.

Regards,
Markus

-- 
Markus Mottl        http://www.ocaml.info        markus.mottl@gmail.com


^ 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;
as well as URLs for NNTP newsgroup(s).