Reproducible bug that closes all windows
Linux 5.4.34_1 #1 SMP PREEMPT x86_64 GNU/Linux This behavior is happening in roxterm's version 3.8.4, but has happened on older versions, too.
I've got several roxterm windows open. Steps to reproduce the behavior:
- Open several roxterm windows
- In one of them,
sshto a remote host, where I issue atmux attach-session -t 0 - Suspend the OS,
zzz - Bring the OS back to life
- Go to the roxterm window of the
sshsession and open a new tab with ctrl+shift+t - All roxterm windows close
I can't reproduce this. Can you confirm that you're suspending the OS running roxterm, not the ssh host? Do you have to suspend long enough for the ssh to time out? And does it only crash if you're using tmux; does it have to be producing output?
Can you get a backtrace? You'll need to make sure roxterm's debugging symbols are available (if you need to recompile, ideally upgrade to version 3.9.3), and preferably also those for vte, gtk3 and glib. And also run it from a different terminal with this environment variable: G_MESSAGES_DEBUG=all.
One thing I can add right now is that it occurs after several hours of suspension, so ssh has timed out.
I still can't reproduce this.
I'm following the INSTALL file instructions to build roxterm.
It's said:
Building with CMake
*******************
Using a separate build directory is recommended:
mkdir build
cd build
To see available build options etc:
cmake --help ..
This doesn't seem to work. Sorry if it's ignorance about cmake but I've never used this tool.
build(master) $ cmake --help ..
Argument ".." to --help-command is not a CMake command. Use --help-command-list to see all commands.
I think the .. is a mistake. It's easier to use the AppRun script. If there's already anything in the build directory, delete it. Then run:
./AppRun --compile
to compile it, and
ulimit -c unlimited
./AppRun --verbose
to run it with extra logging output (please capture that), or
./AppRun --debug
to run it in gdb (also with extra output).
Please use a terminal other than roxterm to do this, otherwise it will forward the command to the instance already running.
If running in gdb, you can get a backtrace after it crashes by typing bt. If you don't run it in gdb it should hopefully dump core. The "old" way was to create a file called core (sometimes followed by a number) in the current directory, and you can load this into gdb, and then do a bt:
gdb ./build/src/roxterm core
(include the number if the core filename has one). But systemd manages core dumps in some distros now. In that case:
coredumpctl debug
will open the most recent core dump in gdb. Or:
coredumpctl list
coredumpctl debug nnn
where nnn is the PID (2nd column from the ouptut of coredumpctl list of the process you want to debug.
You can exit from gdb by pressing Ctrl-D.