bugGNU Octave - Bugs: bug #32176, infinite loop if PS1 contains...

 
 

bug #32176: infinite loop if PS1 contains deleted current directory

Submitted by:  Petr Mikulik <mikulik>
Submitted on:  Wed 19 Jan 2011 10:03:08 AM UTC  
 
Category: InterpreterSeverity: 3 - Normal
Priority: 5 - NormalItem Group: Segfault, Bus Error, etc.
Status: FixedAssigned to: Mike Miller <mtmiller>
Originator Name: Open/Closed: Closed
Release: devOperating System: GNU/Linux

Add a New Comment(Rich Markup)
   

You are not logged in

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

 

(Jump to the original submission Jump to the original submission)

Sat 12 Oct 2013 10:52:16 PM UTC, comment #13:

Oops. I forgot to push from my repository. It's in the main repo now.

Rik <rik5>
Project Administrator
Sat 12 Oct 2013 08:53:35 PM UTC, comment #12:

Rik, I wasn't sure from your last comment if you meant you were going to push it so I didn't push. I don't see it on the main repo yet though.

Mike Miller <mtmiller>
Project AdministratorIn charge of this item.
Sat 12 Oct 2013 05:54:43 PM UTC, comment #11:

I applied Mike's patch and crossed the bug off the must-fix list (http://wiki.octave.org/3.8_Bug_Fix_List).

Rik <rik5>
Project Administrator
Sat 12 Oct 2013 03:43:33 PM UTC, comment #10:

I was thinking just for this case, but I also wasn't sure where the error was coming from.

I think the patch is fine for now. At least it avoids the infinite loop.

John W. Eaton <jwe>
Project Administrator
Sat 12 Oct 2013 03:32:16 PM UTC, comment #9:

Oops, attached now.

Do you mean make it a warning for just this case, or change octave_getcwd to only generate a warning and return an empty string? I wonder if the latter would have unintended consequences.

(file #29361)

Mike Miller <mtmiller>
Project AdministratorIn charge of this item.
Sat 12 Oct 2013 03:22:38 PM UTC, comment #8:

BTW, I don't see a patch attached.

John W. Eaton <jwe>
Project Administrator
Sat 12 Oct 2013 03:18:59 PM UTC, comment #7:

I know in comment #1 jwe mentions the best solution might be for Octave to keep what it thinks the current working directory is. This would probably bring other benefits as well. My patch does not address that, just the immediate problem.

Mike Miller <mtmiller>
Project AdministratorIn charge of this item.
Sat 12 Oct 2013 03:15:39 PM UTC, comment #6:

Should the error be a warning instead?

Otherwise it seems OK to me.

John W. Eaton <jwe>
Project Administrator
Sat 12 Oct 2013 03:13:02 PM UTC, comment #5:

Attached patch fixes the infinite loop. Not pushed yet because I'm not sure what string is best to present in place of the directory. This patch does the following:

If no one objects I can push this fix.

Mike Miller <mtmiller>
Project AdministratorIn charge of this item.
Thu 29 Aug 2013 08:30:55 PM UTC, comment #4:

Bug is still here, 8/29/13.

Rik <rik5>
Project Administrator
Fri 19 Apr 2013 11:45:00 PM UTC, comment #3:

Confirmed still present in the development version, if and only if PS1 contains the \W or \w escape sequences.

Mike Miller <mtmiller>
Project AdministratorIn charge of this item.
Wed 19 Jan 2011 01:08:48 PM UTC, comment #2:

Oh I see it's not the Octave's default, but my own in $HOME/.octaverc:

Unfortunately Octave cannot be interrupted by Ctrl-C in the infinite loop but it must be killed completely.

Petr Mikulik <mikulik>
Wed 19 Jan 2011 11:15:14 AM UTC, comment #1:

I think this could be avoided by having Octave maintain an internal idea of what the current working directory is and that is only updated when chdir is called. But unfortunately, I think this will require more changes that I'd like to make right before the release.

BTW, in the Octave sources, the default value of the Octave prompt is

so I guess someone else is giving you the value you have.

John W. Eaton <jwe>
Project Administrator
Wed 19 Jan 2011 10:03:08 AM UTC, original submission:

If current working directory where Octave runs is removed (by another process, for example) then:

1. If PS1 contains cwd, e.g. the default value of W|\t|\#>
then Octave goes into an infinite loop saying:

2. If PS1 does not contain cwd, then it says:

Could 1. behave as 2.?

Petr Mikulik <mikulik>

 

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

Attach File(s):
   
   
Comment:
   

Attached Files
file #29361:  bug32176.patch added by mtmiller (1KiB - text/x-patch)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by rik5 (Posted a comment)
  • -unavailable- added by mtmiller (Posted a comment)
  • -unavailable- added by jwe (Posted a comment)
  • -unavailable- added by mikulik (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 project members can vote.

     

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

     

     

    Follow 9 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Sat 12 Oct 2013 05:54:43 PM UTCrik5StatusPatch Submitted=>Fixed
      Open/ClosedOpen=>Closed
    Sat 12 Oct 2013 03:32:16 PM UTCmtmillerAttached File-=>Added bug32176.patch, #29361
    Sat 12 Oct 2013 03:13:02 PM UTCmtmillerStatusConfirmed=>Patch Submitted
      Assigned toNone=>mtmiller
      Release3.3.54=>dev
    Fri 19 Apr 2013 11:45:00 PM UTCmtmillerCategoryNone=>Interpreter
      StatusNone=>Confirmed
      Summaryinfinite loop if current directory removed=>infinite loop if PS1 contains deleted current directory

    Back to the top


    Powered by Savane 3.1-cleanup1