After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 629456 - Screen switch to a window locks it up
Screen switch to a window locks it up
Status: RESOLVED NOTABUG
Product: vte
Classification: Core
Component: general
0.25.x
Other Linux
: Normal major
: ---
Assigned To: VTE Maintainers
VTE Maintainers
Depends on:
Blocks: 629457
 
 
Reported: 2010-09-12 21:35 UTC by Jan Kratochvil
Modified: 2014-01-22 19:35 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Fix. (451 bytes, patch)
2010-09-12 21:35 UTC, Jan Kratochvil
none Details | Review

Description Jan Kratochvil 2010-09-12 21:35:27 UTC
Created attachment 170097 [details] [review]
Fix.

Using many virtual screens and switching between them to vte windows.
In many cases the output is still, despite the application would write more text.
One has to do some kick of it - using unmaximize+maximize to always fix it up.

Sometimes I stare at the screen until the application writes something.  But the application already wrote it that time, it is just not displayed.

Reproducer:
gnome-terminal --disable-factory -e /tmp/termlock &>/tmp/out

/tmp/termlock is:
#! /bin/sh
i=0;while :;do echo \
---------------------------------------------$i;i=$[$i+1];done

And now switch several times to a different screen and back to this one.
Occasionally the window stops scrolling.

Debug (/tmp/out) tail in this hanging case (using VTE_DEBUG=all):
[...]
-].read 8176/4096 bytes, again? no, active? yes
removed poll of vte_terminal_io_read
Visibility (unobscured -> fully-obscured).
change visibility: unobscured -> fully-obscured.
Removing terminal from active list
Removing update timeout
Visibility (fully-obscured -> unobscured).
change visibility: fully-obscured -> unobscured.
*Invalidating all.
+Expose (0,0)x(722,434)
vte_terminal_paint()
=draw_start
draw_set_scroll (0, 0)
vte_terminal_paint      (0,0)x(722,434) pixels
draw_clip
draw_clear (0, 0, 722, 434)
vte_terminal_paint_area (0,0)x(722,434) pixels, (0,0)x(80,24) cells [(1,1)x(720,432) pixels]
draw_cells('---------------------------------------------5623---------------------------------------------5624---------------------------------------------5625---------------------------------------------5626---------------------------------------------5627---------------------------------------------5628---------------------------------------------5629---------------------------------------------5630---------------------------------------------5631---------------------------------------------5632---------------------------------------------5633---------------------------------------------5634---------------------------------------------5635---------------------------------------------5636---------------------------------------------5637---------------------------------------------5638---------------------------------------------5639---------------------------------------------5640---------------------------------------------5641---------------------------------------------5642---------------------------------------------5643---------------------------------------------5644---------------------------------------------5645----------------', fore=256, back=257, bold=0, ul=0, strike=0, hilite=0, boxed=0)
draw_text ("---------------------------------------------5623---------------------------------------------5624---------------------------------------------5625---------------------------------------------5626---------------------------------------------5627---------------------------------------------5628---------------------------------------------5629---------------------------------------------5630---------------------------------------------5631---------------------------------------------5632---------------------------------------------5633---------------------------------------------5634---------------------------------------------5635---------------------------------------------5636---------------------------------------------5637---------------------------------------------5638---------------------------------------------5639---------------------------------------------5640---------------------------------------------5641---------------------------------------------5642---------------------------------------------5643---------------------------------------------5644---------------------------------------------5645----------------", len=1143, color=(0,0,0,255), normal)
draw_start
draw_rectangle (144, 414, 11, 20, color=(0,0,0,255))
draw_end
draw_end


The fix has been tested and makes sense only together with the other fix, going to link the two Bugs together.
Comment 1 Jan Kratochvil 2010-09-12 21:40:51 UTC
Verified on VTE GIT f1676fbe3e91a6e887abf254723b57e841fad0bb: Tue Sep 7
Comment 2 Egmont Koblinger 2014-01-13 13:03:02 UTC
Could this be caused by a division giving 0, as described in bug 721944 comment 7 ?
Comment 3 Jan Kratochvil 2014-01-13 13:12:12 UTC
Maybe, not sure, it seems to me the problem of this Bug still happens but I have not explicitly verified it now.

See also very similar Bug 629457.

I may check it again later.  It is all very dependent on hardware speeds and on my new machine it no longer happens so often as on the old box.
Comment 4 Egmont Koblinger 2014-01-22 01:09:40 UTC
I think I was on a false track in comment 2.

I tried to reproduce the bug but couldn't. Interestingly, vte_terminal_set_visibility() is only entered twice on startup, and never later. I tried with many old-fashioned (not compositing) window managers, still I don't get any visibility changes. What am I doing wrong?

(I'm using standalone vteapp, but I don't think it should make a difference.)

Jan, I would be grateful if you could help me reproduce the bug, and also if you shared your findings (not just the patch, but the rationale behind it - it's a part of the code I'm totally unfamiliar with, and I'd like to understand how these changes fix the problem). Thanks!
Comment 5 Jan Kratochvil 2014-01-22 19:35:56 UTC
I can no longer reproduce it.  It has been probably fixed in the meantime.