#640826 bad arg to "-e" kills all terminal windows

Package:
gnome-terminal
Source:
gnome-terminal
Description:
GNOME terminal emulator application
Submitter:
Eric Cooper
Date:
2011-09-07 21:03:15 UTC
Severity:
minor
#640826#5
Date:
2011-09-07 18:32:43 UTC
From:
To:
I eventually realized that I need to use "sh -c ..." as the argument
to -e, but while debugging this I found that this incorrect form:
    $ gnome-terminal -e "sleep 1; foo"
causes all my open terminal windows to exit, rather than simply
producing an error message.

#640826#12
Date:
2011-09-07 19:11:23 UTC
From:
To:
package gnome-terminal
severity 640826 minor
tag 640826 unreproducible
quit

Hi there,

I cannot reproduce the "causes all my open terminal windows to exit". As for
the rest, it is not gnome-terminal that exits with no error message. If you
don't pass a shell as an argument to -e or -x, you have no shell to parse the
semi-colon, which then gets passed to /bin/sleep, which in turn exits without
actually sleeping first, like this:

gpastore@natrium:~$ sleep 10\;
sleep: intervalo inválido de tempo "10;"
Experimente "sleep --help" para mais informações.

That is, running 'gnome-terminal -x sleep 10' should sucessfully run
/bin/sleep inside the terminal, passing it '10' as an argument, whereas
running "gnome-terminal -e 'sleep 10; blah'" should run /bin/sleep inside the
terminal, causing it to fail by passing it '10; blah' as an argument.

I'm reducing the bug severity and tagging it unreproducible for now. Any
further information you can provide is appreciated.

Best regards,

Guilherme de Siqueira Pastore
gpastore@debian.org

#640826#17
Date:
2011-09-07 20:42:50 UTC
From:
To:
If I use the "--disable-factory" option, then only the newly created
terminal exits (as you say, because the sleep builtin fails).  But
without that option, it always kills the other instances too.
Would an strace help?

#640826#22
Date:
2011-09-07 21:01:20 UTC
From:
To:
I am able to get it to occur in a Xephyr display, but only if
gnome-session is running.  If I only have a window manager like
metacity running, then it doesn't occur (i.e., one gnome-terminal
exits but not the others).

When gnome-session is running, here is the error message I get when
the terminal windows all disappear:

(gnome-terminal:6693): Gdk-WARNING **: The program 'gnome-terminal'
received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
  (Details: serial 1740 error_code 3 request_code 18 minor_code 0)
  (Note to programmers: normally, X errors are reported
  asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error()
   function.)

I hope this helps.