bugGuile - Bugs: bug #30162, "abort to unknown...

 
 

bug #30162: "abort to unknown prompt" can be infinitely recursive

Submitted by:  Mike Gran <mike121>
Submitted on:  Thu 17 Jun 2010 03:57:33 AM UTC  
 
Category: NoneSeverity: 3 - Normal
Item Group: NoneStatus: Fixed
Privacy: PublicAssigned to: None
Open/Closed: Closed

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Wed 09 Feb 2011 10:33:47 PM UTC, comment #4:

Fixed, finally. Thanks for the report.

Please open another report if the nohup case is a Guile bug.

Andy Wingo <wingo>
Project Administrator
Sun 23 Jan 2011 03:30:34 PM UTC, comment #3:

An easier way to replicate the bug is to just call "nohup guile".

Mike Gran <mike121>
Project Member
Sun 20 Jun 2010 06:35:23 PM UTC, comment #2:

I came across the problem when I built Guile master on a Cygwin box with a misconfigured iconv/libunistring that didn't have any encodings other than "C" and "POSIX" available. With only those encodings, the guile-tools compilation process on non-ASCII files appears to succeed but actually creates zero-length .go files. When running Guile with zero-length .go files, there is some sort of scm_misc_error about mmap'ing .go files. That error happens really early in the startup, before a prompt has been created. This leads to the recursive "abort to unknown prompt" problem, which causes segfault.

At first glance, it doesn't appear that this problem is related to today's hydra build failure.

Mike Gran <mike121>
Project Member
Sun 20 Jun 2010 04:15:49 PM UTC, comment #1:

Hi Mike,

Guile pristine builds have been failing for a few days with "Cannot exit gracefully when init is in progress; aborting": <http://hydra.nixos.org/build/460404>.

I haven't yet taken the time to investigate, but it this how you found out about this problem?

Thanks,
Ludo'.

Ludovic Courtès <civodul>
Project Administrator
Thu 17 Jun 2010 03:57:33 AM UTC, original submission:

It appears that aborting to a unknown prompt when no prompt yet exists will cause a recursive overflow leading to segfault.

To see the bug, try replacing (srcdir)/module/ice-9/eval.go with a zero length file. This will cause an "object file too small" error to be thrown from make_objcode_by_mmap() before a prompt exists.

It may be that the commit "remove internal treatment of default prompt tag" c6a32a2cd59190dcf17c7fb3022588f56079a03e may have removed code that was necessary after all. But that's just a guess.

Mike Gran <mike121>
Project Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by wingo (Posted a comment)
  • -unavailable- added by civodul (Posted a comment)
  • -unavailable- added by mike121 (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 2 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Wed 09 Feb 2011 10:33:47 PM UTCwingoStatusNone=>Fixed
      Open/ClosedOpen=>Closed

    Back to the top


    Powered by Savane 3.1-cleanup1