2020-04-16 10:53:30 |
Roger |
description |
Dear Maintainers,
We have developed a program that it launches a new gnome-terminal with a ssh tunnel connection. Basically, the program forwards a local port to the destination address and opens a new terminal with a ssh connection to the local port:
gnome-terminal -e "/usr/bin/ssh -o XXX -p XXX ubuntu@127.0.0.2"
The problem comes when we need to know when this gnome-terminal session has finished, in order to end the tunnel process. As you might know, the gnome-terminal command fires up gnome-terminal-server which it might be already running. Who handles the "ssh" connection is the gnome-terminal-server and not the gnome-terminal command, thus our program receives and exit code just after executing the previous command.
In previous version there was the --disable-factory option, but unfortunately now is deprecated. Because of this type of problem it was added the --wait flag which was introduced in 3.27.1:
gnome-terminal --wait -e "/usr/bin/ssh -o XXX -p XXX ubuntu@127.0.0.2"
Nevertheless, there's a bug in this version. More information: https://gitlab.gnome.org/GNOME/gnome-terminal/issues/16
You can reproduced by launching a new gnome-terminal with the --wait flag from a gnome-terminal session and try to close it via a window operation. In that version --wait only works if with the exit command in the opened session.
As mentioned in the linked URL this is solved in version >= 3.36 which also uses a new vte version (libvte-2.91-dev_0.60.1). I have seen that there are multiple issues referring the --disable-factory deprecated option, those could be closed as the new --wait option has the same behavior.
Could we update the bionic gnom-terminal 3.28 to >= 3.36 version?
ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: gnome-terminal 3.28.1-1ubuntu1
Architecture: amd64 |
Dear Maintainers,
We have developed a program that it launches a new gnome-terminal with a ssh tunnel connection. Basically, the program forwards a local port to the destination address and opens a new terminal with a ssh connection to the local port:
gnome-terminal -e "/usr/bin/ssh -o XXX -p XXX ubuntu@127.0.0.2"
The problem comes when we need to know when this gnome-terminal session has finished, in order to end the tunnel process. As you might know, the gnome-terminal command fires up gnome-terminal-server which it might be already running. Who handles the "ssh" connection is the gnome-terminal-server and not the gnome-terminal command, thus our program receives and exit code just after executing the previous command.
In previous version there was the --disable-factory option, but unfortunately now is deprecated. Because of this type of problem it was added the --wait flag which was introduced in 3.27.1:
gnome-terminal --wait -e "/usr/bin/ssh -o XXX -p XXX ubuntu@127.0.0.2"
Nevertheless, there's a bug in this version. More information: https://gitlab.gnome.org/GNOME/gnome-terminal/issues/16
You can reproduced by launching a new gnome-terminal with the --wait flag from a gnome-terminal session and try to close it via a window operation. In that version --wait only works if with the exit command in the opened session.
As mentioned in the linked URL this is solved in version >= 3.36 which also uses a new vte version (libvte-2.91-dev_0.60.1). I have seen that there are multiple issues referring the --disable-factory deprecated option, those could be closed as the new --wait option has the same behavior.
Shall we update the libvte version used by gnome? The last libvte version has the proper child exit SIGNAL handler which solves the described issue.
ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: gnome-terminal 3.28.1-1ubuntu1
Architecture: amd64 |
|
2020-05-04 10:28:26 |
Roger |
description |
Dear Maintainers,
We have developed a program that it launches a new gnome-terminal with a ssh tunnel connection. Basically, the program forwards a local port to the destination address and opens a new terminal with a ssh connection to the local port:
gnome-terminal -e "/usr/bin/ssh -o XXX -p XXX ubuntu@127.0.0.2"
The problem comes when we need to know when this gnome-terminal session has finished, in order to end the tunnel process. As you might know, the gnome-terminal command fires up gnome-terminal-server which it might be already running. Who handles the "ssh" connection is the gnome-terminal-server and not the gnome-terminal command, thus our program receives and exit code just after executing the previous command.
In previous version there was the --disable-factory option, but unfortunately now is deprecated. Because of this type of problem it was added the --wait flag which was introduced in 3.27.1:
gnome-terminal --wait -e "/usr/bin/ssh -o XXX -p XXX ubuntu@127.0.0.2"
Nevertheless, there's a bug in this version. More information: https://gitlab.gnome.org/GNOME/gnome-terminal/issues/16
You can reproduced by launching a new gnome-terminal with the --wait flag from a gnome-terminal session and try to close it via a window operation. In that version --wait only works if with the exit command in the opened session.
As mentioned in the linked URL this is solved in version >= 3.36 which also uses a new vte version (libvte-2.91-dev_0.60.1). I have seen that there are multiple issues referring the --disable-factory deprecated option, those could be closed as the new --wait option has the same behavior.
Shall we update the libvte version used by gnome? The last libvte version has the proper child exit SIGNAL handler which solves the described issue.
ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: gnome-terminal 3.28.1-1ubuntu1
Architecture: amd64 |
[Impact]
Users are unable to launch an asynchronous gnome-terminal. In some cases, a user/program/script might want to run a gnome-terminal with a provided command and wait till the launched gnome-terminal exits.
By default, gnome-terminal runs synchronously as it uses the gnome-server to handle the requests. To solve that, gnome-terminal 3.27.1 introduced the --wait option which solves this issue. The problem, is that --wait flag does not work properly till version >= 3.36 which also uses a new vte version (libvte-2.91-dev_0.60.1). Thus users cannot wait for a gnome-terminal session process to finish.
More information: https://gitlab.gnome.org/GNOME/gnome-terminal/issues/16
[Test Case]
To reproduce the bug let's assume that we want to open a gnome-terminal with a provided command, for example a simple bash:
1- Open a terminal:
gnome-terminal -- /bin/sh -c "/bin/bash"
This will launch gnome-terminal with a bash but the parent process in the first terminal finishes just after executing the command, even if the gnome-terminal is opened.
2- Include the --wait option to make the command call asynchronous:
gnome-terminal --wait -- /bin/sh -c "/bin/bash"
- Now you can see int the first terminal that the processes didn't finish, instead it is waiting for the launched gnome-terminal.
To see the explained bug try to close the opened gnome-terminal using the X icon windows or File-> Close Tab. => The parent process in terminal 1 does not receive the child-exited signal, thus it keeps waiting forever.
However if we try to exit from the launched gnome-terminal by typing "exit" on it, the parent process does receive the corresponding signal.
[Regression Potential]
As mentioned before, this bug was solved in gnome-terminal >= 3.36
Many users use the GUI options in order to finish a process, so this bug prevents developers to take advantage of the --wait option in its programs.
The version 3.36 is included in new Ubuntu versions but not in the bionic one(Ubuntu 18.04). Many users and enterprises are still using Ubuntu 18.04 as the new LTS has just been released a few days ago.
[Other Info]
Initial bug report:
Dear Maintainers,
We have developed a program that it launches a new gnome-terminal with a ssh tunnel connection. Basically, the program forwards a local port to the destination address and opens a new terminal with a ssh connection to the local port:
gnome-terminal -e "/usr/bin/ssh -o XXX -p XXX ubuntu@127.0.0.2"
The problem comes when we need to know when this gnome-terminal session has finished, in order to end the tunnel process. As you might know, the gnome-terminal command fires up gnome-terminal-server which it might be already running. Who handles the "ssh" connection is the gnome-terminal-server and not the gnome-terminal command, thus our program receives and exit code just after executing the previous command.
In previous version there was the --disable-factory option, but unfortunately now is deprecated. Because of this type of problem it was added the --wait flag which was introduced in 3.27.1:
gnome-terminal --wait -e "/usr/bin/ssh -o XXX -p XXX ubuntu@127.0.0.2"
Nevertheless, there's a bug in this version.
You can reproduced by launching a new gnome-terminal with the --wait flag from a gnome-terminal session and try to close it via a window operation. In that version --wait only works if with the exit command in the opened session.
As mentioned in the linked URL this is solved in version >= 3.36 which also uses a new vte version (libvte-2.91-dev_0.60.1). I have seen that there are multiple issues referring the --disable-factory deprecated option, those could be closed as the new --wait option has the same behavior.
Shall we update the libvte version used by gnome? The last libvte version has the proper child exit SIGNAL handler which solves the described issue.
ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: gnome-terminal 3.28.1-1ubuntu1
Architecture: amd64 |
|