On Tue, 8 May 2012 12:40:30 -0500
Jonathan Nieder <jrnie...@gmail.com> wrote:

> Terho Uotila wrote:
> 
> > Trying to start dash as interactive shell starts looping error
> > messages until killed, in some xen vps machines. (Unfortunately I
> > don't know why some have this error and others do not.)
> >

Correction to my original report, this is not only xen, I have affected
openvz vps too.

> Do you mean that you pass no input to "dash" but it sees a "(" anyway?
> Is this reproducible?
> 
Trying to start dash as interactive shell will consistently produce this
problem on affected vps. Originally I noticed this when trying to use
dash as login shell, but for testing/demonstration purposes I prefer to
start it from command line since recovery is easier.

> Some useful ways to get logs would be
> 
> 1. dash -x
> 

tuotila@vicente:~ $ dash -x 2> dash.err

root@vicente:~# killall -9 dash
(No root needed, but that's what I had open in another terminal.)

137|tuotila@vicente:~ $ head dash.err 
dash: Syntax error: "(" unexpected (expecting ")") 
dash: Syntax error: "(" unexpected (expecting ")") 
dash: Syntax error: "(" unexpected (expecting ")")
dash: Syntax error: "(" unexpected (expecting ")")
dash: Syntax error: "(" unexpected (expecting ")")
dash: Syntax error: "(" unexpected (expecting ")")
dash: Syntax error: "(" unexpected (expecting ")")
dash: Syntax error: "(" unexpected (expecting ")")
dash: Syntax error: "(" unexpected (expecting ")")
dash: Syntax error: "(" unexpected (expecting ")")


> 2. after
> 
This is my first try at this so let me know if this can be improved,
though this is low end vps so space and memory are somewhat limited.

>    2a.
>       src/dash -o debug

(Gives familiar loop, too)

>       cat ./trace

 $ head -160 ./trace  (head only since this is _long_, over million
 lines, and at a glance just seems to repeat after start.)
                                                                              
Tracing started.
cmdloop(1) called
showjobs(8) called
dowait(0) called
wait returns pid -1, status=0
token word precmd
pipeline: entered
reread token word precmd
reread token word precmd
reread token word precmd
token ")" 
reread token ")" 
reread token ")" 
reread token ")" 
reread token ")" 
token word ulimit
pipeline: entered
reread token word ulimit
reread token word ulimit
reread token word ulimit
token word -c
token word 0
token ";" 
reread token ";" 
reread token ";" 
reread token ";" 
token word id
reread token word id
pipeline: entered
reread token word id
reread token word id
reread token word id
token word -un
token redirection 
token word -
Fix redir - 0
token "||" 
reread token "||" 
reread token "||" 
pipeline: entered
token word print
reread token word print
reread token word print
token word �?
token ")" 
reread token ")" 
reread token ")" 
reread token ")" 
reread token ")" 
token word typeset
pipeline: entered
reread token word typeset
reread token word typeset
reread token word typeset
token word d=�PWD=?�
token word n
token word p=~
token ";" 
reread token ";" 
reread token ";" 
reread token ";" 
token word [[
reread token word [[
pipeline: entered
reread token word [[
reread token word [[
reread token word [[
token word �p=
token word =
token word ?
token "(" 
reread token "(" 
reread token "(" 
reread token "(" 
reread token "(" 
exverror(1, "Syntax error: "(" unexpected (expecting ")")") pid=24231
cmdloop(1) called
showjobs(8) called
dowait(0) called
wait returns pid -1, status=0
token word precmd
pipeline: entered
reread token word precmd
reread token word precmd
reread token word precmd
token ")" 
reread token ")" 
reread token ")" 
reread token ")" 
reread token ")" 
token word ulimit
pipeline: entered
reread token word ulimit
reread token word ulimit
reread token word ulimit
token word -c
token word 0
token ";" 
reread token ";" 
reread token ";" 
reread token ";" 
token word id
reread token word id
pipeline: entered
reread token word id
reread token word id
reread token word id
token word -un
token redirection 
token word -
Fix redir - 0
token "||" 
reread token "||" 
reread token "||" 
pipeline: entered
token word print
reread token word print
reread token word print
token word �?
token ")" 
reread token ")" 
reread token ")" 
reread token ")" 
reread token ")" 
token word typeset
pipeline: entered
reread token word typeset
reread token word typeset
reread token word typeset
token word d=�PWD=?�
token word n
token word p=~
token ";" 
reread token ";" 
reread token ";" 
reread token ";" 
token word [[
reread token word [[
pipeline: entered
reread token word [[
reread token word [[
reread token word [[
token word �p=
token word =
token word ?
token "(" 
reread token "(" 
reread token "(" 
reread token "(" 
reread token "(" 
exverror(1, "Syntax error: "(" unexpected (expecting ")")") pid=24231
cmdloop(1) called
showjobs(8) called
dowait(0) called
wait returns pid -1, status=0
token word precmd
pipeline: entered
reread token word precmd
reread token word precmd



>     2b.
>       src/dash
>       (in another terminal)
>               ps ax | grep dash
>               gdb -p <pid of dash>
>               bt

tuotila@vicente:~ $ gdb -p 24240 
GNU gdb (GDB) 7.0.1-debian
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html> This is free software: you are free
to change and redistribute it. There is NO WARRANTY, to the extent
permitted by law.  Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Attaching to process 24240
Reading symbols from /home/tuotila/dashtmp/dash/src/dash...done.
Reading symbols from /lib/libc.so.6...Reading symbols from 
/usr/lib/debug/lib/libc-2.11.3.so...done. 
(no debugging symbols found)...done. 
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from 
/usr/lib/debug/lib/ld-2.11.3.so...done. 
(no debugging symbols found)...done. 
Loaded symbols for /lib64/ld-linux-x86-64.so.2
0x00007fc0b13706aa in wait4 () at ../sysdeps/unix/syscall-template.S:82
82      ../sysdeps/unix/syscall-template.S: No such file or directory.
        in ../sysdeps/unix/syscall-template.S
(gdb) bt
#0  0x00007fc0b13706aa in wait4 () at ../sysdeps/unix/syscall-template.S:82 
#1  0x0000000000409447 in waitproc (block=0, job=<value optimized out>) at 
jobs.c:1139 
#2  dowait (block=0, job=<value optimized out>) at jobs.c:1016 
#3 0x000000000040a924 in showjobs (out=0x61aca0, mode=8) at jobs.c:558 
#4 0x000000000040b209 in cmdloop (top=1) at main.c:218 
#5 0x000000000040b45c in main (argc=<value optimized out>, argv=<value 
optimized out>) at main.c:178 
Current language:  auto 
The current source language is "auto; currently asm". 
(gdb)



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to