#21 perl segfault causes system death (nearly)

closed-out-of-date
nobody
None
5
2004-12-02
2003-07-25
Mike Blackwell
No

If the perl compiler segfaults during syntax checking,
the system becomes useless. It appears to be
constantly writing to disk. It seems to be in system
mode rather than user mode (swapping?) because nothing
else can get much CPU time (thus can't kill Eclipse).

A simple way to get perl to segfault -- at least on
this machine -- is to feed it the simple typo

tied STDIN

(should have been 'tied *STDIN').

Perhaps EPIC could trap the SEGV signal and prevent this?

Discussion

  • Logged In: NO

    here is my output from eclipse at the command line
    concerning exactly this same thing:

    Parsed Syntax File perl.xml
    java.io.IOException: Interrupted system call
    at java.io.FileDescriptor.read(byte[], int, int)
    (/lib/ssa/libgcj.so.4.0.0)
    at java.io.FileInputStream.read(byte[], int, int)
    (/lib/ssa/libgcj.so.4.0.0)
    at java.io.FileInputStream.read(byte[])
    (/lib/ssa/libgcj.so.4.0.0)
    at
    org.epic.perleditor.editors.util.PerlExecutableUtilities.readStringFromStream(java.io.InputStream)
    (Unknown Source)
    at
    org.epic.perleditor.editors.PerlSyntaxValidationThread.validateSyntax()
    (Unknown Source)
    at
    org.epic.perleditor.editors.PerlSyntaxValidationThread.run()
    (Unknown Source)
    at _Jv_ThreadRun(java.lang.Thread) (/lib/ssa/libgcj.so.4.0.0)
    at GC_start_routine (/lib/ssa/libgcj.so.4.0.0)
    at __clone (/lib/i686/libc-2.3.2.so)

     
  • Logged In: NO

    I got this from my dmesg:

    Out of Memory: Killed process 3002 (gcjlauncher).
    Out of Memory: Killed process 3003 (gcjlauncher).
    Out of Memory: Killed process 3004 (gcjlauncher).
    Out of Memory: Killed process 3131 (gcjlauncher).
    Out of Memory: Killed process 3237 (gcjlauncher).
    Out of Memory: Killed process 3245 (gcjlauncher).
    Out of Memory: Killed process 3391 (gcjlauncher).
    Out of Memory: Killed process 3392 (gcjlauncher).
    Out of Memory: Killed process 3393 (gcjlauncher).
    Out of Memory: Killed process 3398 (gcjlauncher).
    Out of Memory: Killed process 3401 (gcjlauncher).
    Out of Memory: Killed process 3410 (gcjlauncher).

    This should shed some light on things. ;)

     
  • LeO
    LeO
    2004-10-14

    Logged In: YES
    user_id=703323

    I tried to reproduce this problem, but without luck.

    tied STDIN

    raises only a warning, nothing more. I'm using Eclipse
    3.1M2, epic 0.3.8 with ActivePerl 5.8.4 under XP. I consider
    the version of ActivePerl as the most vulnerable point.

    You have any valid sample to reproduce this issue?

     
  • LeO
    LeO
    2004-12-02

    • status: open --> closed-out-of-date
     
  • LeO
    LeO
    2004-12-02

    Logged In: YES
    user_id=703323

    Since there is currently no reproducable scenario available
    => close this ticket.