View Issue Details

IDProjectCategoryView StatusLast Update
0000496tcshGeneralpublic2023-12-14 02:34
Reporterspokh Assigned To 
Status newResolutionopen 
OSCentOSOS Version7.3 
Product Version6.24.10 
Summary0000496: Tcsh hangs in pprint
DescriptionI had two jobs running in background. I ran "%2" command to bring second one to foreground. I got following error:

    2: No such job (badjob).

After that, tcsh hangs, and does not give me any prompt.

I had seen this issue earlier with previous tcsh versions, but it would happen only once in a while.
Anyways, I wanted to really get issue fixed, so I had installed debug version of latest tcsh.

I have attached gdb to tcsh, and it shows following stack-trace:

#0 pprint (pp=0x6f3560, flag=7) at sh.proc.c:997
0000001 0x00000000004244f5 in pnote () at sh.proc.c:435
0000002 0x000000000040692d in process (catch=1) at sh.c:2037
0000003 0x000000000040572e in main (argc=0, argv=0x7fffffffca08) at sh.c:1432

I tried to debug it, and I could see that it is stuck in following loop:

997 while (pp->p_procid != pp->p_jobid)
998 pp = pp->p_friends;

(gdb) p pp
$13 = (struct process *) 0x6f3560
(gdb) p pp->p_procid
$14 = 0
(gdb) p pp->p_friends
$15 = (struct process *) 0x6f3560

As you can see, "pp->p_friends" is same as "pp", so the list is circular list, and iteration would never end.

I would keep my gdb attached to tcsh, so if you have any suggestion to check in gdb, please let me know.

TagsNo tags attached.


There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2023-12-14 02:34 spokh New Issue