Terminator .96 and 1.0 (dev) segfault on Ubuntu 12.10 with Unity desktop when dragging window.

Bug #1089190 reported by Tom Dignan
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Terminator
Fix Released
Undecided
Unassigned

Bug Description

I believe the bug is in a native library, or a python binding to a native library. I dumped the core and it was fairly unhelpful (attached).

Steps to reproduce:

1. Open terminator.
2. Split windows, vertical or horizontal.
3. Click the toolbar of the top of one of the window sections. Hold.
4. Drag the window to the left or right edge of the screen (repeat until you manage to crash it,
    but you'll likely do it the first time)

Maybe the bug is in pygtk or the gtk native C lib?

tom@tralfamadore:~/terminator/terminator$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.10
DISTRIB_CODENAME=quantal
DISTRIB_DESCRIPTION="Ubuntu 12.10"

tom@tralfamadore:~/terminator/terminator$ uname -a
Linux tralfamadore 3.5.0-19-generic #30-Ubuntu SMP Tue Nov 13 17:49:53 UTC 2012 i686 i686 i686 GNU/Linux

Related branches

Revision history for this message
Tom Dignan (tom-dignan) wrote :

The core dump didn't have symbols in it. I'm trying to create a better core dump now.

Revision history for this message
Tom Dignan (tom-dignan) wrote :

Ok, so an update. The bug is reproducible outside of unity (happens in xmonad too), and, it's not related to dragging to the edge of the screen. It's just caused by dragging one pane into another. If you drag too far, it will crash (drag past the highlighted area of the target pane)

Revision history for this message
Tom Dignan (tom-dignan) wrote :

Putting a return statement on line 914 right in the beginning of the on_drag_motion() callback fixes the issue, so it has to be occuring in on_drag_motion (terminal.py) -- Although, this causes me to lose some features, like visual feedback about where the window will be dropped.

I've also realized it's not about how far you drag the pane, but the net distance. So if you drag it in circles, it will crash too. (I mean drag and drop, of course, but no drop part is required for the crash)

Revision history for this message
Tom Dignan (tom-dignan) wrote :

I isolated the problem to a few lines of code that don't cause any immediately noticeable problems when I remove them. Patch attached.

Revision history for this message
Tom Dignan (tom-dignan) wrote :

New observation: The patch above does not interfere with my ability to drag and drop text into termintator.

Revision history for this message
Tom Dignan (tom-dignan) wrote :

terminator*

Revision history for this message
Tom Dignan (tom-dignan) wrote :

First patch had some junk in it. Sorry, I got excited. Here's a patch with no extra newline surprises.

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

I've pushed a variant fix to trunk at revision 1357. We should now guard effectively against these crashes.

Changed in terminator:
status: New → Fix Committed
Revision history for this message
Tom Dignan (tom-dignan) wrote :

@Chris Rad!

Chris Jones (cmsj)
Changed in terminator:
status: Fix Committed → Fix Released
Revision history for this message
Matthew Campbell (calvinmc) wrote :

So this fixed the probem for me (Xubuntu 13.04, Terminator 0.96). I think I can shed a little light on what that code is doing (just a little though). That code appears to identifiy if the drage action contains text or is a uri (from a file browser or what not) and will break out of the fucntion at that point so that it doesn't draw the grey positioing cue boxes you want when draging a sub-terminal around.

This patch fixes the segfaults, but it regress the functinalitiy of not showing the gray position cue box when drag-and-droping files or what not into the terminal. So like I said, just a little light; I can't fix it, but theres some info.

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.