← Back to team overview

registry team mailing list archive

[Bug 593290] Re: Terminator crashes, when trying to split in too many windows

 

Can I ask those of you experiencing this to be a little more descriptive
of what you mean by "crash".

Do you mean it exits with segfault? Exits with stack trace? Or locks up,
and soaks up lots of CPU, i.e 100% of a core?

I'm seeing the 100% core lockup. I've so far got it down to something where two vte's seem to get into a "fight" trying to get space. It's like:
1) A says "I need P",
2) the splitter tells B "you now have Q",
3) B says "no way! I need at least R",
4) splitter tells A "Sorry, can you cope with S",
5) A says "Nope, I need P",
6) Goto 2

The key thing that seems to kick it off is dividing a space where the
two vte's get <1 line of height. The strange thing is that it's not 100%
reproducible in trunk. I have been working on some optimisations, and
one of them makes this happen very easily. It seems like a way to set
minimum height/widths, and either deny a split, or to force splitters
higher up the hierarchy to give us more space. (Yes, I have also seen
this trigger on vertical splitters too, but we don't typically split as
small horizontally as we do vertically.)

You can add "print self, repr(allocation)" to the top of the on_vte_size_allocate method in terminatorlib/terminal.py and then try to trigger the issue. What you should see on the stdout is lots of cycling. i.e.
<Terminal object at 0x2716d70 (terminatorlib+terminal+Terminal at 0x2413700)> gtk.gdk.Rectangle(0, 27, 642, 23)
<Terminal object at 0x2716d70 (terminatorlib+terminal+Terminal at 0x2413700)> gtk.gdk.Rectangle(0, 63, 642, 1)
<Terminal object at 0x2702be0 (terminatorlib+terminal+Terminal at 0x2413160)> gtk.gdk.Rectangle(0, 17, 642, 23)
<Terminal object at 0x2702be0 (terminatorlib+terminal+Terminal at 0x2413160)> gtk.gdk.Rectangle(0, 17, 642, 1)
<Terminal object at 0x2716d70 (terminatorlib+terminal+Terminal at 0x2413700)> gtk.gdk.Rectangle(0, 27, 642, 23)
<Terminal object at 0x2716d70 (terminatorlib+terminal+Terminal at 0x2413700)> gtk.gdk.Rectangle(0, 63, 642, 1)
<Terminal object at 0x2702be0 (terminatorlib+terminal+Terminal at 0x2413160)> gtk.gdk.Rectangle(0, 17, 642, 23)
<Terminal object at 0x2702be0 (terminatorlib+terminal+Terminal at 0x2413160)> gtk.gdk.Rectangle(0, 17, 642, 1)

-- 
Terminator crashes, when trying to split in too many windows
https://bugs.launchpad.net/bugs/593290
You received this bug notification because you are a member of Registry
Administrators, which is the registrant for Fedora.



Follow ups

References