Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
* RE: [Caml-list] Segmentation fault from Array.append Ocaml 4.0.x -- walk around
@ 2012-11-28 20:02 Lin Hong
  2012-12-04 15:20 ` Damien Doligez
  0 siblings, 1 reply; 3+ messages in thread
From: Lin Hong @ 2012-11-28 20:02 UTC (permalink / raw)
  To: Damien Doligez, caml users

Hi, all

we avoid the problem by creating our version of Array.append. Our version of Array.append looks just like the one from Ocaml 3.12, instead of operating directly on memory, we call get & set function to do the job.

still have no idea why Array.append from Ocaml4.0.x cause the seg fault, but we will stick to our walk around solution till new version come out.

Cheers,
Lin Hong
American Museum of Natural History
POY website :
https://code.google.com/p/poy/
http://research.amnh.org/scicomp/scripts/download.php

________________________________________
From: caml-list-request@inria.fr [caml-list-request@inria.fr] on behalf of Lin Hong [lhong@amnh.org]
Sent: Monday, November 19, 2012 12:04 PM
To: Damien Doligez; caml users
Subject: RE: [Caml-list] Segmentation fault from Array.append

Hi,

we recompiled Ocaml with debug version of runtime, then compiled our program into byte code, run the same data-set , the problem disappear.

but with native version of our program, the segmentation fault still shows.

As for native version, if we run it with Gc.compact() being called around Array.append, the problem won't show.

also gdb point us to some major_slice() function, so we call Gc.major_slice() before Array.append, this also make the problem disappear.


still don't know what's going on here, any other suggestions are highly appreciated.


Thanks.

Cheers,
Lin Hong
American Museum of Natural History
POY website :
https://code.google.com/p/poy/
http://research.amnh.org/scicomp/scripts/download.php

________________________________________
From: caml-list-request@inria.fr [caml-list-request@inria.fr] on behalf of Damien Doligez [damien.doligez@inria.fr]
Sent: Wednesday, October 17, 2012 9:33 AM
To: caml users
Subject: Re: [Caml-list] Segmentation fault from Array.append

Hello,

> From: Daniel Bünzli [daniel.buenzli@erratique.ch]
>
> http://rwmj.wordpress.com/2010/01/22/tip-tracking-down-ocaml-heap-corruptors/


I have posted a comment to that blog.  For the archive, here's what it says:

Starting with OCaml 4.00.0, there is an easy way to activate the debug version of the runtime:

1. configure OCaml with "-with-debug-runtime"
2. compile and install OCaml
3. compile your program with "-runtime-variant d"

This will compile your program with a version of the runtime which has assertions all over the place, and does a thorough check of the heap structure at each major GC (and at each compaction). If you then follow Rich’s advice, you should be able to narrow down the source of the heap corruption quite easily.

-- Damien


--
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

--
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-12-05  4:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-28 20:02 [Caml-list] Segmentation fault from Array.append Ocaml 4.0.x -- walk around Lin Hong
2012-12-04 15:20 ` Damien Doligez
2012-12-05  4:13   ` Lin Hong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox