caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Jamie Brandon <jamie@scattered-thoughts.net>
To: caml-list@yquem.inria.fr
Subject: Re: [Caml-list] Causes for segfaults
Date: Mon, 15 Nov 2010 17:58:32 +0000	[thread overview]
Message-ID: <AANLkTimhKsAnR78N0pR2QwN7wrQ4-KbHbAyrrX1ihOPp@mail.gmail.com> (raw)
In-Reply-To: <AANLkTimz80mU6nG-dT5VJCyfr70s4OVO31c=Te9e8SJV@mail.gmail.com>

I finally fixed this. The difficulty was down to the sheer number of
different causes:

During incremental updates (but not bulk updates) the wrong data
structure was marshaled to disk so the next process to load from the
disk would segfault

DynArray contains functional values so compiling with -g breaks
previously marshaled values

Marshal segfaults on large data structures unless 'ulimit -s unlimited' is set

List.merge is not tail recursive and segfaults on large lists unless
'ulimit -s unlimited' is set (this only happens during bulk updates)

On 32 bit machines the arrays used in the suffix array are too large,
in older versions of ocaml this causes a segfault

I'm still not sure why gdb reliably tracked a segfault to
caml_ml_close_channel but the very next instruction was accessing the
data structure marshaled from disk.

I do feel that this would have been much easier to fix if ocaml raised
more informative errros. The change to Array.make and String.make to
raise exceptions instead of segfaulting is welcome. Is there a way to
cause stack overflows to raise exceptions in native compiled ocaml as
well?


  reply	other threads:[~2010-11-15 17:58 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-04 20:19 Jamie Brandon
2010-11-04 20:25 ` [Caml-list] " Raphael Proust
2010-11-04 20:39   ` Jamie Brandon
2010-11-05 15:54     ` David MENTRE
2010-11-05 22:18     ` oliver
2010-11-04 20:41 ` Till Varoquaux
2010-11-05 23:14   ` Jamie Brandon
     [not found]   ` <384325291.294734.1288998871132.JavaMail.root@zmbs3.inria.fr>
2010-11-06  2:51     ` Daniel de Rauglaudre
2010-11-08 14:26       ` Jamie Brandon
2010-11-08 14:48         ` Till Varoquaux
2010-11-10 15:52           ` Jamie Brandon
2010-11-15 17:58             ` Jamie Brandon [this message]
2010-11-15 18:17               ` John Whitington
2010-11-15 18:38                 ` Jamie Brandon
2010-11-15 21:47                   ` Török Edwin
     [not found]                 ` <157788745.568057.1289846305435.JavaMail.root@zmbs3.inria.fr>
2010-11-15 18:50                   ` Daniel de Rauglaudre
2010-11-15 19:00                     ` Anil Madhavapeddy
2010-11-15 19:08                     ` Norman Hardy
     [not found]                     ` <1795362267.568432.1289847605872.JavaMail.root@zmbs3.inria.fr>
2010-11-15 19:21                       ` Daniel de Rauglaudre

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AANLkTimhKsAnR78N0pR2QwN7wrQ4-KbHbAyrrX1ihOPp@mail.gmail.com \
    --to=jamie@scattered-thoughts.net \
    --cc=caml-list@yquem.inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).