Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#411 Bad restarts when .clisprc signals errors.

segfault
closed-fixed
Sam Steingold
clisp (525)
5
2008-01-22
2007-05-08
szergling
No

When .clisprc signals any error (the ones I've checked are:
non-matching parens, (error "Any error") forms, and load errors
[loading files]), choosing the ABORT restart causes a segfault. This
is repeatable. I have enclosed a few sample sessions (it shouldn't be
required).

This occurs on cygwin with clisp-2.41 (not prepackaged - compiled
myself), and with GNU/Linux clisp-2.41 as well.

Discussion

  • szergling
    szergling
    2007-05-08

     
    Attachments
  • Jörg Höhle
    Jörg Höhle
    2007-05-23

    Logged In: YES
    user_id=377168
    Originator: NO

    >"occurs ... with GNU/Linux clisp-2.41 as well"
    Hmm, this does not crash for me on Linux (Ubuntu Dapper, April CVS build).

    BTW, mine says
    lisp.run -M lispinit.mem
    ;; Loading file /home/hoehle/.clisprc ...
    *** - READ: input stream
    #<INPUT BUFFERED FILE-STREAM CHARACTER #P"/home/hoehle/.clisprc" @2>
    ends within an object. Last opening parenthesis probably in line 1.
    Break 1 [1]>

    but it does not offer any restart. How comes you see many restarts?
    >SKIP :R1 skip (ERROR Will this error cause a segfault?)
    >STOP :R2 stop loading file /cygdrive/c/home/.clisprc
    >ABORT :R3 ABORT
    >ABORT :R4 ABORT
    >ABORT :R5 ABORT

    My Ubuntu-Dapper clisp-2.38 offers a single restart, whereas your samples show 3-5 restarts. How comes? (BTW, 2.38 crashes when I use that one restart).
    Might be related to bug #1220548 or bug #1448744 i.e. bogus stack unwinding and error-handlers may not be fully setup within .clisprc?
    E.g. ":r1" crashes, while "abort" does not (unwind_upto() is used differently, for unknown reason).

     
  • szergling
    szergling
    2007-05-31

    Logged In: YES
    user_id=1630354
    Originator: YES

    > My Ubuntu-Dapper clisp-2.38 offers a single restart, whereas your samples
    > show 3-5 restarts. How comes? (BTW, 2.38 crashes when I use that one
    > restart).

    You got me there. I don't know why. The one I showed came from my cygwin test.

    I can confirm that clisp encounters that same segfault behaviour on my Ubuntu
    (I believe it's the Breezy release), this time with 2 abort restarts. Some tests
    are enclosed (repl dump). I usually ignore the number of restarts offered (only
    need 1 right), so I won't know what to do about them...

    File Added: clisp-bug.txt

     
  • szergling
    szergling
    2007-05-31

     
    Attachments
  • Sam Steingold
    Sam Steingold
    2008-01-07

    Logged In: YES
    user_id=5735
    Originator: NO

    this bug is similar to 1506316 in that it is exhibited only by the base linkset, not the boot linkset.
    (1506316 is exhibited only by the boot, not the base linkset)

     
  • Sam Steingold
    Sam Steingold
    2008-01-22

    Logged In: YES
    user_id=5735
    Originator: NO

    thank you for your bug report.
    the bug has been fixed in the CVS tree.
    you can either wait for the next release (recommended)
    or check out the current CVS tree (see http://clisp.cons.org\)
    and build CLISP from the sources (be advised that between
    releases the CVS tree is very unstable and may not even build
    on your platform).

     
  • Sam Steingold
    Sam Steingold
    2008-01-22

    • assigned_to: haible --> sds
    • status: open --> closed-fixed
     
  • Sam Steingold
    Sam Steingold
    2008-01-22

    Logged In: YES
    user_id=5735
    Originator: NO

    I think I fixed this, but more testing is required because this is a tricky area...

     
  • szergling
    szergling
    2008-01-25

    Logged In: YES
    user_id=1630354
    Originator: YES

    clisp-2.43 from cvs:
    ;; Loading file /home/tyc20/temp/temp2.lisp ...
    *** - HI
    The following restarts are available:
    SKIP :R1 skip (ERROR HI)
    STOP :R2 stop loading file /home/tyc20/temp/temp2.lisp
    Break 1 [3]> :r1
    ;; Loaded file /home/tyc20/temp/temp2.lisp
    [1]> (quit)
    Bye.

    The misbehaving abort restart(s) are gone, so it seems ok, at least
    on my Ubuntu box.