set -evx crashes terminator

Bug #1092109 reported by azet
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Terminator
New
Undecided
Unassigned

Bug Description

running `set -evx` for shell script debugging crashes terminator when e.g. executing a shell script or hitting tab-completion.

Revision history for this message
Chris Jones (cmsj) wrote :

Running set -evx doesn't crash for me. Could you provide a little more detail?
Also please run Terminator from another terminal, and paste in whatever crash output you get.

Changed in terminator:
status: New → Incomplete
Revision history for this message
azet (azet) wrote :
Download full text (21.1 KiB)

I do not get any error output on the first terminal (i.e. the one i opened `terminator` in).

This doesn't happen every time, but 50% of the time i hit tab completion (e.g. `less tess<TAB>`) or execute a shell script.

However, executing terminator with the debug option reports the following (tested with the above command and tab-completion after executing `set -evx` in terminator):

--snip--
aaron.zauner@gmi-lws01:~$ terminator -d
ConfigBase::load: Unable to open /home/GMI/aaron.zauner/.config/terminator/config ([Errno 2] No such file or directory: '/home/GMI/aaron.zauner/.config/terminator/config')
noclass::parse_options: OptionParse::parse_options: command line options: {'profile': None, 'nodbus': None, 'execute': None, 'layout': 'default', 'dummy': None, 'geometry': None, 'fullscreen': None, 'debug_methods': None, 'maximise': None, 'debug': 1, 'debug_classes': None, 'version': None, 'working_directory': None, 'borderless': None, 'forcedtitle': None, 'command': None, 'hidden': None, 'role': None}
noclass::get_config_dir: Found config dir: /home/GMI/aaron.zauner/.config
ConfigBase::load: looking for config file: /home/GMI/aaron.zauner/.config/terminator/config
Config::set_profile: Config::set_profile: Changing profile to default
ConfigBase::get_item: ConfigBase::get_item: dbus found in globals: False
noclass::<module>: dbus disabled
noclass::<module>: dbus not imported
Factory::__init__: Borg::__init__: Preparing borg state for Factory
Terminator::__init__: Borg::__init__: Preparing borg state for Terminator
noclass::get_config_dir: Found config dir: /home/GMI/aaron.zauner/.config
ConfigBase::load: looking for config file: /home/GMI/aaron.zauner/.config/terminator/config
Config::set_profile: Config::set_profile: Changing profile to default
noclass::get_pid_cwd: Using Linux get_pid_cwd
Terminator::attempt_gnome_client: GNOME session support enabled and registered
ConfigBase::get_item: ConfigBase::get_item: handle_size found in globals: -1
noclass::<module>: Creating a terminal with layout: default
Terminator::create_layout: Creating a window
Factory::make: Factory::make: created a Window
Terminator::register_window: Terminator::register_window: registering 36055872:<class 'terminatorlib.window.Window'>
noclass::get_config_dir: Found config dir: /home/GMI/aaron.zauner/.config
ConfigBase::load: looking for config file: /home/GMI/aaron.zauner/.config/terminator/config
Config::set_profile: Config::set_profile: Changing profile to default
ConfigBase::get_item: ConfigBase::get_item: window_state found in globals: normal
ConfigBase::get_item: ConfigBase::get_item: window_state found in globals: normal
ConfigBase::get_item: ConfigBase::get_item: window_state found in globals: normal
ConfigBase::get_item: ConfigBase::get_item: borderless found in globals: False
ConfigBase::get_item: ConfigBase::get_item: hide_from_taskbar found in globals: False
ConfigBase::get_item: ConfigBase::get_item: always_on_top found in globals: False
ConfigBase::get_item: ConfigBase::get_item: sticky found in globals: False
Window::set_real_transparency: setting rgba colormap
Factory::make: Factory::make: created a Terminal
Terminator::register_terminal: Terminator::register...

Revision history for this message
Egmont Koblinger (egmont-gmail) wrote :

I can reproduce something similar in gnome-terminal; it's bash that exits on tab completion. Question to the original reporter: Does your Terminator really crash (closes all the tabs), or is it just the current tab disappearing?

Revision history for this message
Stephen Boddy (stephen-j-boddy) wrote :

Hi Bug subscribers, this is the maintainer (Steve Boddy) of Terminator, who took over from Chris.

In case you were not aware there has been a new release 0.98 of Terminator in the last few days which has many changes, fixes and updates. We also have an ongoing GTK3 port which uses a much more up-to-date libvte.

Even with the ~50 issues closed by that release, and discounting the ~90 outstanding wishlist items, we still have an unwieldy 95 bugs. With the oldest approaching it's 6th birthday and some that haven't seen any updates in nearly 5, it is time for a purge.

My intention is to try and get this list down to a minimum, and for that I need your help.

First I'm going to work through, oldest to newest, setting bugs to Incomplete, pending confirmation that they are still an issue. If after a month there is no feedback, the issue will get closed as Invalid. Here's where you come in. I can't always reproduce, or setting up (i.e. other distros) to even test takes a long time, so I'm going to try crowdsourcing this.

1. Get the latest release. Is it still an issue? If yes, set the confirmed-0.98 tag. For bonus points follow the guide http://gnometerminator.blogspot.com/2015/09/so-you-want-to-try-terminator-gtk3.html and see if the GTK3 branch has same issue, and set the confirmed-gtk3 or notaffected-gtk3 tag.

2. Can you reproduce with an empty/default config file? You can pass "-g temp_config" to do this without affecting your existing config. If you already have Terminator running, you'll need to pass -u as well to disable the DBus.

3. If able to, can you reproduce with another user/guest account?

4. If the issue does not already have clear, precise instructions to reproduce with minimal setup/steps, add them.

5. Put as much info about what you are running.
   * Software/library versions (libvte, gtk, pango, cairo, distro, desktop environment, language)
   * Screens (single or multi)
   * Any unusual / custom packages or configs that might be interacting.

6. If possible attach the config file, unless the issue also happens with an empty one, but mention that.

7. Attach the "-d" debug output from 0.98.

Some common things that cause incidents.

* Strange sizing issues or rapidly shrinking windows - Try turning off Window geometry hints.
* Input (esp. broadcasting duplicate chars etc) problems - Try killing IBus.
* Hand editing of the config file can cause various issues - Due to misunderstanding, incorrect structure or typos.
* Some issues are actually in libvte - This is why testing GTK3 is so important.
* segfaults - Unfortunately these are dying inside the C libraries, and it is usually beyond me to fix those.

Many thanks for your assistance, and hopefully this will get us closer to a bug-free Terminator.

Revision history for this message
Stephen Boddy (stephen-j-boddy) wrote :

Hi, maintainer here. Terminator has moved on from gtk2 and we now have a brand-spanking new gtk3 version. Sadly we also have many ancient bugs, and it's not really practical to struggle to replicate them considering how widely the code bases have diverged.

I'm setting these older bugs to Invalid. If you wish to reactivate the bug please reproduce with at least gtk3 and release 1.90 (even better if you use head of the gtk3 branch), then set the status to New. This way we only have to focus on things that still impact users.

Changed in terminator:
status: Incomplete → Invalid
Revision history for this message
Rylie Pavlik (abiryan) wrote :

I'm not sure if it's a GTK3 build, but I can reproduce this reliably using the version in Debian Testing (Squeeze) - 1.90+bzr-1705-1- see https://tracker.debian.org/pkg/terminator . I ran across it when I converted a shell script for one-time use into a script I wanted to source to get the environment variables. After sourcing it, the first attempt at tab completion in the tab I sourced it in would cause that tab/subwindow to crash.

The script contained `set -e` at the top - removing that line resulted in Terminator no longer crashing. Not sure if this is helpful, or if I'm just necromancing bugs here, but this is a version that's in the semi-rolling debian testing distro right now.

Revision history for this message
Rylie Pavlik (abiryan) wrote :

Setting to new because reproduced in Debian Testing with package version 1.90+bzr-1705-1

Changed in terminator:
status: Invalid → New
Revision history for this message
Rylie Pavlik (abiryan) wrote :

(Sorry, I meant stretch, not squeeze, naturally. Wrong deformation :-P)

Revision history for this message
Rylie Pavlik (abiryan) wrote :

Here's the log (running terminator -d from gnome terminal) from the point of typing `cd sr` and hitting <TAB> expecting bash to complete `src/`. All I had done previously in this terminal was hit enter a bunch of times (to distinguish the startup logging from the crash logging) then run `set -e`, in a fairly clean Debian Testing virtual machine. This crash is 100% repeatable/reliable for me. Sorry there doesn't appear to be anything particularly interesting in this log - it might be a dep as had been suggested.

ConfigBase::get_item: ConfigBase::get_item: cursor_color_fg found in profile default: True
Signalman::remove_signal: removing <class 'terminatorlib.terminal.Terminal'>::group-all
Signalman::remove_signal: removing <class 'terminatorlib.terminal.Terminal'>::ungroup-all
Signalman::remove_signal: removing <class 'terminatorlib.terminal.Terminal'>::navigate
Signalman::remove_signal: removing <class 'terminatorlib.terminal.Terminal'>::close-term
Signalman::remove_signal: removing <class 'terminatorlib.terminal.Terminal'>::tab-change
Signalman::remove_signal: removing <class 'terminatorlib.terminal.Terminal'>::group-all-toggle
Signalman::remove_signal: removing <class 'terminatorlib.terminal.Terminal'>::tab-new
Signalman::remove_signal: removing <class 'terminatorlib.terminal.Terminal'>::unzoom
Signalman::remove_signal: removing <class 'terminatorlib.terminal.Terminal'>::split-vert
Signalman::remove_signal: removing <class 'terminatorlib.terminal.Terminal'>::title-change
Signalman::remove_signal: removing <class 'terminatorlib.terminal.Terminal'>::group-tab-toggle
Signalman::remove_signal: removing <class 'terminatorlib.terminal.Terminal'>::group-tab
Signalman::remove_signal: removing <class 'terminatorlib.terminal.Terminal'>::move-tab
Signalman::remove_signal: removing <class 'terminatorlib.terminal.Terminal'>::split-horiz
Signalman::remove_signal: removing <class 'terminatorlib.terminal.Terminal'>::ungroup-tab
Signalman::remove_signal: no more signals for widget
Terminator::deregister_terminal: Terminator::deregister_terminal: de-registering 140380013767008:<class 'terminatorlib.terminal.Terminal'>
Terminator::deregister_terminal: no terminals remain, destroying all windows
Window::on_destroy_event: destroying self
Terminator::deregister_window: Terminator::deregister_window: de-registering 140380016288384:<class 'terminatorlib.window.Window'>
Terminator::deregister_window: no windows remain, quitting
ConfigBase::get_item: ConfigBase::get_item: autoclean_groups found in profile default: True
Terminator::group_hoover: Terminator::group_hoover: 0 groups, hoovering 0

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.