[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bash-4.0 and checkjobs w/non-login shell
From: |
Chet Ramey |
Subject: |
Re: bash-4.0 and checkjobs w/non-login shell |
Date: |
Mon, 23 Feb 2009 23:00:31 -0500 |
User-agent: |
Thunderbird 2.0.0.19 (Macintosh/20081209) |
Mike Frysinger wrote:
> On Monday 23 February 2009 18:05:26 Chet Ramey wrote:
>> Mike Frysinger wrote:
>>> i was going through the new features list in NEWS to see what cool things
>>> are in here and i saw the new checkjobs option. is it just me or does
>>> this cause a non-login bash to crash at exit which leads to an infinite
>>> loop / cpu churning ?
>> I can't reproduce this. Do you have a trap set on EXIT?
>
> ok, here's the odd thing i was able to reduce things down to:
> $ gdb --args ./bash --norc
> (gdb) r
> Starting program: /home/vapier/bash-4.0/bash --norc
> bash-4.0$ . ~/.profile.d/screen.sh
> No Sockets found in /var/run/screen/S-vapier.
>
> bash-4.0$ shopt -s checkjobs
> bash-4.0$ exit
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x00000000004819e9 in exit_or_logout (list=0x0) at ./exit.def:116
> 116 else if (check_jobs_at_exit && stopmsg == 0 && RUNNING (i))
Well, that was it. Try the attached patch.
Chet
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
Chet Ramey, ITS, CWRU chet@case.edu http://cnswww.cns.cwru.edu/~chet/
*** ../bash-4.0/builtins/exit.def 2009-01-04 14:32:22.000000000 -0500
--- builtins/exit.def 2009-02-23 22:56:58.000000000 -0500
***************
*** 114,118 ****
if (jobs[i] && STOPPED (i))
stopmsg = JSTOPPED;
! else if (check_jobs_at_exit && stopmsg == 0 && RUNNING (i))
stopmsg = JRUNNING;
--- 114,118 ----
if (jobs[i] && STOPPED (i))
stopmsg = JSTOPPED;
! else if (check_jobs_at_exit && stopmsg == 0 && jobs[i] && RUNNING (i))
stopmsg = JRUNNING;