New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

templates: QT applications not updating screen (draw) reliably #1051

Closed
nrgaway opened this Issue Jul 6, 2015 · 23 comments

Comments

Projects
None yet
4 participants
@nrgaway

nrgaway commented Jul 6, 2015

I noticed in Fedora fc21 and Debian 8 that some QT applications are not updating screen reliably. For instance when selecting a menu, the menu popup region is blank. Usually you can highlight the next menu and then go back to the menu that did not draw and it will re-draw properly the second time.

This happens for popup hints in my WingIDE debugger as well and sometimes I need to move the window for it to re-draw when starting an application.

I think it may be solvable via xsettingsd configuration as I have been able to fix the issue when testing, just have not found the right combination of settings to implement.

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jul 6, 2015

Member

I guess it is some problem with GUI agent. Most like some race condition
during initial window creation. Try running a VM in debug mode - then
you'll have very detailed gui agent and daemon logs. Search for MFNDUMP
messages - it should appear for every window create - maybe for some
reason it isn't for those popups.

Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

Member

marmarek commented Jul 6, 2015

I guess it is some problem with GUI agent. Most like some race condition
during initial window creation. Try running a VM in debug mode - then
you'll have very detailed gui agent and daemon logs. Search for MFNDUMP
messages - it should appear for every window create - maybe for some
reason it isn't for those popups.

Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

@nrgaway

This comment has been minimized.

Show comment
Hide comment
@nrgaway

nrgaway Jul 6, 2015

Thank you for the debugging tips, I will try that!

nrgaway commented Jul 6, 2015

Thank you for the debugging tips, I will try that!

@nrgaway

This comment has been minimized.

Show comment
Hide comment
@nrgaway

nrgaway Jul 7, 2015

This is a partial log containing one windows, a menu window; I removed all other windows from log. When first clicked, a window does appear, but is blank. Then I click on another top menu, it also appears blank. Finally, I re-click the original menu that was blank and it now appears.

It does appear to be creating the window.

# Did not work #1; blank
Created 0x42000f1(0x100009d) parent 0x0(0x176) ovr=0 x/y 1670/214 w/h 250/424
invalid PMinSize for 0x42000f1 (0/0)
invalid PMaxSize for 0x42000f1 (0/0)
invalid PResizeInc for 0x42000f1 (0/0)
invalid PBaseSize for 0x42000f1 (0/0)
set WM_NORMAL_HINTS for window 0x42000f1 to min=0/0, max=0/0, base=0/0, inc=0/0 (flags 0x5)
MSG_MFNDUMP for 0x42000f1(0x100009d): 1920x1080, num_mfn 0x7ea off 0x10
  do_shm_update for 0x42000f1(remote 0x100009d), after border calc: x=2, y=2, w=246, h=420
shmimage for 0x4200070(remote 0x1000024), x: 504, y: 1, w: 203, h: 347
  do_shm_update for 0x4200070(remote 0x1000024), after border calc: x=504, y=1, w=203, h=347
shmimage for 0x42000f1(remote 0x100009d), x: 0, y: 0, w: 250, h: 424
  do_shm_update for 0x42000f1(remote 0x100009d), after border calc: x=2, y=2, w=246, h=420
xside: win 0x4200070(0x1000024) type=5 button=1 x=513, y=11

# ..........................................................................................

# Did not work #2; blank
invalid PMinSize for 0x42000f1 (0/0)
invalid PMaxSize for 0x42000f1 (0/0)
invalid PResizeInc for 0x42000f1 (0/0)
invalid PBaseSize for 0x42000f1 (0/0)
set WM_NORMAL_HINTS for window 0x42000f1 to min=0/0, max=0/0, base=0/0, inc=0/0 (flags 0x5)
handle_configure_from_vm, local 0x42000f1 remote 0x100009d, 250/424, was 250/424, ovr=1, xy 1670/214, was 1670/214
MSG_MFNDUMP for 0x42000f1(0x100009d): 1920x1080, num_mfn 0x7ea off 0x10

# ..........................................................................................

# Worked ?
invalid PMinSize for 0x42000f1 (0/0)
invalid PMaxSize for 0x42000f1 (0/0)
invalid PResizeInc for 0x42000f1 (0/0)
invalid PBaseSize for 0x42000f1 (0/0)
set WM_NORMAL_HINTS for window 0x42000f1 to min=0/0, max=0/0, base=0/0, inc=0/0 (flags 0x5)
MSG_MFNDUMP for 0x42000f1(0x100009d): 250x424, num_mfn 0x69 off 0xa18
shmimage for 0x42000f1(remote 0x100009d), x: 0, y: 0, w: 250, h: 424
  do_shm_update for 0x42000f1(remote 0x100009d), after border calc: x=2, y=2, w=246, h=420
  do_shm_update for 0x42000f1(remote 0x100009d), after border calc: x=2, y=2, w=246, h=420

# ..........................................................................................

invalid PMinSize for 0x42000f1 (0/0)
invalid PMaxSize for 0x42000f1 (0/0)
invalid PResizeInc for 0x42000f1 (0/0)
invalid PBaseSize for 0x42000f1 (0/0)
set WM_NORMAL_HINTS for window 0x42000f1 to min=0/0, max=0/0, base=0/0, inc=0/0 (flags 0x5)
handle_configure_from_vm, local 0x42000f1 remote 0x100009d, 250/424, was 250/424, ovr=1, xy 1670/214, was 1670/214
MSG_MFNDUMP for 0x42000f1(0x100009d): 1920x1080, num_mfn 0x7ea off 0x10
invalid PMinSize for 0x42000f1 (0/0)
invalid PMaxSize for 0x42000f1 (0/0)
invalid PResizeInc for 0x42000f1 (0/0)
invalid PBaseSize for 0x42000f1 (0/0)
set WM_NORMAL_HINTS for window 0x42000f1 to min=0/0, max=0/0, base=0/0, inc=0/0 (flags 0x5)
MSG_MFNDUMP for 0x42000f1(0x100009d): 250x424, num_mfn 0x69 off 0xa18

shmimage for 0x4200070(remote 0x1000024), x: 425, y: 1, w: 116, h: 25
  do_shm_update for 0x4200070(remote 0x1000024), after border calc: x=425, y=1, w=116, h=25

# ..........................................................................................

shmimage for 0x42000f1(remote 0x100009d), x: 0, y: 0, w: 250, h: 424
  do_shm_update for 0x42000f1(remote 0x100009d), after border calc: x=2, y=2, w=246, h=420
  do_shm_update for 0x42000f1(remote 0x100009d), after border calc: x=2, y=2, w=246, h=420

nrgaway commented Jul 7, 2015

This is a partial log containing one windows, a menu window; I removed all other windows from log. When first clicked, a window does appear, but is blank. Then I click on another top menu, it also appears blank. Finally, I re-click the original menu that was blank and it now appears.

It does appear to be creating the window.

# Did not work #1; blank
Created 0x42000f1(0x100009d) parent 0x0(0x176) ovr=0 x/y 1670/214 w/h 250/424
invalid PMinSize for 0x42000f1 (0/0)
invalid PMaxSize for 0x42000f1 (0/0)
invalid PResizeInc for 0x42000f1 (0/0)
invalid PBaseSize for 0x42000f1 (0/0)
set WM_NORMAL_HINTS for window 0x42000f1 to min=0/0, max=0/0, base=0/0, inc=0/0 (flags 0x5)
MSG_MFNDUMP for 0x42000f1(0x100009d): 1920x1080, num_mfn 0x7ea off 0x10
  do_shm_update for 0x42000f1(remote 0x100009d), after border calc: x=2, y=2, w=246, h=420
shmimage for 0x4200070(remote 0x1000024), x: 504, y: 1, w: 203, h: 347
  do_shm_update for 0x4200070(remote 0x1000024), after border calc: x=504, y=1, w=203, h=347
shmimage for 0x42000f1(remote 0x100009d), x: 0, y: 0, w: 250, h: 424
  do_shm_update for 0x42000f1(remote 0x100009d), after border calc: x=2, y=2, w=246, h=420
xside: win 0x4200070(0x1000024) type=5 button=1 x=513, y=11

# ..........................................................................................

# Did not work #2; blank
invalid PMinSize for 0x42000f1 (0/0)
invalid PMaxSize for 0x42000f1 (0/0)
invalid PResizeInc for 0x42000f1 (0/0)
invalid PBaseSize for 0x42000f1 (0/0)
set WM_NORMAL_HINTS for window 0x42000f1 to min=0/0, max=0/0, base=0/0, inc=0/0 (flags 0x5)
handle_configure_from_vm, local 0x42000f1 remote 0x100009d, 250/424, was 250/424, ovr=1, xy 1670/214, was 1670/214
MSG_MFNDUMP for 0x42000f1(0x100009d): 1920x1080, num_mfn 0x7ea off 0x10

# ..........................................................................................

# Worked ?
invalid PMinSize for 0x42000f1 (0/0)
invalid PMaxSize for 0x42000f1 (0/0)
invalid PResizeInc for 0x42000f1 (0/0)
invalid PBaseSize for 0x42000f1 (0/0)
set WM_NORMAL_HINTS for window 0x42000f1 to min=0/0, max=0/0, base=0/0, inc=0/0 (flags 0x5)
MSG_MFNDUMP for 0x42000f1(0x100009d): 250x424, num_mfn 0x69 off 0xa18
shmimage for 0x42000f1(remote 0x100009d), x: 0, y: 0, w: 250, h: 424
  do_shm_update for 0x42000f1(remote 0x100009d), after border calc: x=2, y=2, w=246, h=420
  do_shm_update for 0x42000f1(remote 0x100009d), after border calc: x=2, y=2, w=246, h=420

# ..........................................................................................

invalid PMinSize for 0x42000f1 (0/0)
invalid PMaxSize for 0x42000f1 (0/0)
invalid PResizeInc for 0x42000f1 (0/0)
invalid PBaseSize for 0x42000f1 (0/0)
set WM_NORMAL_HINTS for window 0x42000f1 to min=0/0, max=0/0, base=0/0, inc=0/0 (flags 0x5)
handle_configure_from_vm, local 0x42000f1 remote 0x100009d, 250/424, was 250/424, ovr=1, xy 1670/214, was 1670/214
MSG_MFNDUMP for 0x42000f1(0x100009d): 1920x1080, num_mfn 0x7ea off 0x10
invalid PMinSize for 0x42000f1 (0/0)
invalid PMaxSize for 0x42000f1 (0/0)
invalid PResizeInc for 0x42000f1 (0/0)
invalid PBaseSize for 0x42000f1 (0/0)
set WM_NORMAL_HINTS for window 0x42000f1 to min=0/0, max=0/0, base=0/0, inc=0/0 (flags 0x5)
MSG_MFNDUMP for 0x42000f1(0x100009d): 250x424, num_mfn 0x69 off 0xa18

shmimage for 0x4200070(remote 0x1000024), x: 425, y: 1, w: 116, h: 25
  do_shm_update for 0x4200070(remote 0x1000024), after border calc: x=425, y=1, w=116, h=25

# ..........................................................................................

shmimage for 0x42000f1(remote 0x100009d), x: 0, y: 0, w: 250, h: 424
  do_shm_update for 0x42000f1(remote 0x100009d), after border calc: x=2, y=2, w=246, h=420
  do_shm_update for 0x42000f1(remote 0x100009d), after border calc: x=2, y=2, w=246, h=420
@Jeeppler

This comment has been minimized.

Show comment
Hide comment
@Jeeppler

Jeeppler Jul 7, 2015

I created a gist: Debug Qubes 3 KDE/Qt drop-down and popup menu in fedora 21

it contains the complete log file and a step by step description of what I have done.

Jeeppler commented Jul 7, 2015

I created a gist: Debug Qubes 3 KDE/Qt drop-down and popup menu in fedora 21

it contains the complete log file and a step by step description of what I have done.

@Jeeppler

This comment has been minimized.

Show comment
Hide comment
@Jeeppler

Jeeppler Jul 7, 2015

QHexEdit a small HexEditor which uses Qt 5.4 does not have any issues with drop-down menus or popups.

Jeeppler commented Jul 7, 2015

QHexEdit a small HexEditor which uses Qt 5.4 does not have any issues with drop-down menus or popups.

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jul 7, 2015

Member

On Tue, Jul 07, 2015 at 03:24:17AM -0700, nrgaway wrote:

Did not work #1; blank

Created 0x42000f1(0x100009d) parent 0x0(0x176) ovr=0 x/y 1670/214 w/h 250/424

Window size is 250x424...

MSG_MFNDUMP for 0x42000f1(0x100009d): 1920x1080, num_mfn 0x7ea off 0x10

... but its content have size 1920x1080...

do_shm_update for 0x42000f1(remote 0x100009d), after border calc: x=2, y=2, w=246, h=420

... and then (since dom0 thinks the window is 250x424), only part of
that window is displayed. And probably that part is blank.

shmimage for 0x4200070(remote 0x1000024), x: 504, y: 1, w: 203, h: 347
do_shm_update for 0x4200070(remote 0x1000024), after border calc: x=504, y=1, w=203, h=347
shmimage for 0x42000f1(remote 0x100009d), x: 0, y: 0, w: 250, h: 424

But here, VM sends an info about window size 250x424.
So somewhere in between window image size in VM has changed. Or
application shows just part of the window (partially transparent
window?). Can you check xwininfo output in VM on that window (id pointed as
"remove" here)? Especially what is the real window size.

Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

Member

marmarek commented Jul 7, 2015

On Tue, Jul 07, 2015 at 03:24:17AM -0700, nrgaway wrote:

Did not work #1; blank

Created 0x42000f1(0x100009d) parent 0x0(0x176) ovr=0 x/y 1670/214 w/h 250/424

Window size is 250x424...

MSG_MFNDUMP for 0x42000f1(0x100009d): 1920x1080, num_mfn 0x7ea off 0x10

... but its content have size 1920x1080...

do_shm_update for 0x42000f1(remote 0x100009d), after border calc: x=2, y=2, w=246, h=420

... and then (since dom0 thinks the window is 250x424), only part of
that window is displayed. And probably that part is blank.

shmimage for 0x4200070(remote 0x1000024), x: 504, y: 1, w: 203, h: 347
do_shm_update for 0x4200070(remote 0x1000024), after border calc: x=504, y=1, w=203, h=347
shmimage for 0x42000f1(remote 0x100009d), x: 0, y: 0, w: 250, h: 424

But here, VM sends an info about window size 250x424.
So somewhere in between window image size in VM has changed. Or
application shows just part of the window (partially transparent
window?). Can you check xwininfo output in VM on that window (id pointed as
"remove" here)? Especially what is the real window size.

Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

@Jeeppler

This comment has been minimized.

Show comment
Hide comment
@Jeeppler

Jeeppler Jul 7, 2015

What do I have to do to get the xwininfo output of the VM window?

Jeeppler commented Jul 7, 2015

What do I have to do to get the xwininfo output of the VM window?

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jul 7, 2015

Member

Open terminal in a VM, then run xwininfo -id ID_OF_WINDOW (replace
ID_OF_WINDOW with the proper value).

Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

Member

marmarek commented Jul 7, 2015

Open terminal in a VM, then run xwininfo -id ID_OF_WINDOW (replace
ID_OF_WINDOW with the proper value).

Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

@Jeeppler

This comment has been minimized.

Show comment
Hide comment
@Jeeppler

Jeeppler Jul 10, 2015

Hello,
I used KDevelop to create the output, this is another session. In this case the id is different.

xwininfo -id 0x120001c

xwininfo: Window id: 0x120001c "default: KDevelop"

Absolute upper-left X: 0
Absolute upper-left Y: 21
Relative upper-left X: 0
Relative upper-left Y: 21
Width: 1920
Height: 1024
Depth: 24
Visual: 0x21
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x20 (installed)
Bit Gravity State: NorthWestGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +0+21 -0+21 -0-35 +0-35
-geometry 1920x1024+0+21

@marmarek I hope this is what you wanted, if not say something!

Hello,
I used KDevelop to create the output, this is another session. In this case the id is different.

xwininfo -id 0x120001c

xwininfo: Window id: 0x120001c "default: KDevelop"

Absolute upper-left X: 0
Absolute upper-left Y: 21
Relative upper-left X: 0
Relative upper-left Y: 21
Width: 1920
Height: 1024
Depth: 24
Visual: 0x21
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x20 (installed)
Bit Gravity State: NorthWestGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +0+21 -0+21 -0-35 +0-35
-geometry 1920x1024+0+21

@marmarek I hope this is what you wanted, if not say something!

marmarek added a commit to marmarek/old-qubes-gui-agent-linux that referenced this issue Jul 11, 2015

vmside: delay MSG_MFNDUMP until first damage notify event
When window is mapped it should be ready to be displayed (i.e. have its
content filled), so theoretically it is the right place for sending MFNs
list to dom0. But apparently some QT versions first maps the window,
then initialize its content. This cause a race with gui-agent - if
it gets MFNs list before window image is initialized, it would be
actually MFNs list of the root window image. And that wrong list would
not be updated shortly, because gui-agent sends MSG_MFNDUMP only when it
thinks that the image was changed - map event and window size/position
change.

To prevent that race, wait with MSG_MFNDUMP for the first damage
notification after map event. To implement that, add a new field to
window_data struct.
In response to window size change, MSG_MFNDUMP is send immediatelly,
same as before.

QubesOS/qubes-issues#1051
@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jul 11, 2015

Member

Ok, so the window size is not the whole screen. I think the application
can initialize window content after making the window visible, which
expose gui-agent to some race condition.

Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

Member

marmarek commented Jul 11, 2015

Ok, so the window size is not the whole screen. I think the application
can initialize window content after making the window visible, which
expose gui-agent to some race condition.

Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

@marmarek marmarek self-assigned this Jul 11, 2015

@marmarek marmarek added this to the Release 3.0 milestone Jul 11, 2015

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jul 11, 2015

Member

Try package qubes-gui-vm-3.0.7-1.1.fc21 just uploaded to
qubes-vm-r3.0-unstable repositrory. It contains patch referenced above.

Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

Member

marmarek commented Jul 11, 2015

Try package qubes-gui-vm-3.0.7-1.1.fc21 just uploaded to
qubes-vm-r3.0-unstable repositrory. It contains patch referenced above.

Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

@Jeeppler

This comment has been minimized.

Show comment
Hide comment
@Jeeppler

Jeeppler Jul 11, 2015

I tried the patched package qubes-gui-vm-3.0.7-1.1.fc21
I have not seen any visible errors after a quick test. It seems that the patch works create.

I have attached the log and description of what I have done for the testing in a gist:
https://gist.github.com/Jeeppler/b380641612aebe5f9b5d

NOTICE: Only tested under fedora 21

I tried the patched package qubes-gui-vm-3.0.7-1.1.fc21
I have not seen any visible errors after a quick test. It seems that the patch works create.

I have attached the log and description of what I have done for the testing in a gist:
https://gist.github.com/Jeeppler/b380641612aebe5f9b5d

NOTICE: Only tested under fedora 21

@nrgaway

This comment has been minimized.

Show comment
Hide comment
@nrgaway

nrgaway Jul 12, 2015

On 11 July 2015 at 00:00, Marek Marczykowski-Górecki <
notifications@github.com> wrote:

Try package qubes-gui-vm-3.0.7-1.1.fc21 just uploaded to
qubes-vm-r3.0-unstable repositrory. It contains patch referenced above.

The patch works for me too. Thank you.

I suppose I will test the patch with Debian as well if it's available from
your repo.

nrgaway commented Jul 12, 2015

On 11 July 2015 at 00:00, Marek Marczykowski-Górecki <
notifications@github.com> wrote:

Try package qubes-gui-vm-3.0.7-1.1.fc21 just uploaded to
qubes-vm-r3.0-unstable repositrory. It contains patch referenced above.

The patch works for me too. Thank you.

I suppose I will test the patch with Debian as well if it's available from
your repo.

@Jeeppler

This comment has been minimized.

Show comment
Hide comment
@Jeeppler

Jeeppler Jul 13, 2015

Where can I find the patched version for debian?

Where can I find the patched version for debian?

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jul 13, 2015

Member

Debian package uploaded to unstable repo (need to be uncommented in
repo definitions).

Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

Member

marmarek commented Jul 13, 2015

Debian package uploaded to unstable repo (need to be uncommented in
repo definitions).

Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

@nrgaway

This comment has been minimized.

Show comment
Hide comment
@nrgaway

nrgaway Jul 13, 2015

Is qubes-gui-agent_3.0.7+jessie~devel1_amd64.deb the unstable package you uploaded? If so, it will not install since there is already a version 3.07 installed qubes-gui-agent_3.0.7+jessie1_amd64.deb. The devel in the package name is seen as a lesser version than what is installed.

So, I'm thinking we would either need to bump the version to 3.0.8~devel or convert qubes-gui-agent to also use rel as in 3.0.7-2 instead of '3.0.7, but that would mean switching the versioning over for Fedora as well. If you want to go this route, I can convert the package, but I assume you will most likely choose the option of bumping the version to 3.0.8:)

qubes-gui-agent:
  Installed: 3.0.7+jessie1
  Candidate: 3.0.7+jessie1

nrgaway commented Jul 13, 2015

Is qubes-gui-agent_3.0.7+jessie~devel1_amd64.deb the unstable package you uploaded? If so, it will not install since there is already a version 3.07 installed qubes-gui-agent_3.0.7+jessie1_amd64.deb. The devel in the package name is seen as a lesser version than what is installed.

So, I'm thinking we would either need to bump the version to 3.0.8~devel or convert qubes-gui-agent to also use rel as in 3.0.7-2 instead of '3.0.7, but that would mean switching the versioning over for Fedora as well. If you want to go this route, I can convert the package, but I assume you will most likely choose the option of bumping the version to 3.0.8:)

qubes-gui-agent:
  Installed: 3.0.7+jessie1
  Candidate: 3.0.7+jessie1
@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jul 13, 2015

Member

On Mon, Jul 13, 2015 at 07:56:37AM -0700, nrgaway wrote:

Is qubes-gui-agent_3.0.7+jessie~devel1_amd64.deb the unstable package you uploaded? If so, it will not install since there is already a version 3.07 installed qubes-gui-agent_3.0.7+jessie1_amd64.deb. The devel in the package name is seen as a lesser version than what is installed.

This means that unstable repository on debian is almost useless... The
purpose of this repository is to upload package not yet decided whether
the change there will end up in mainline. This is why the base version
of package is not increased.

Can you change debian versioning scheme the way that "devel" packages
will be considered newer than "stable"? I'm not an expert on debian
versioning scheme, but maybe simply another suffix, like +devel, or so?

Anyway, for now, can you simply downgrade that that devel package for
testing? If the change works well also on Debian, I'll release it as
3.0.8.

Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

Member

marmarek commented Jul 13, 2015

On Mon, Jul 13, 2015 at 07:56:37AM -0700, nrgaway wrote:

Is qubes-gui-agent_3.0.7+jessie~devel1_amd64.deb the unstable package you uploaded? If so, it will not install since there is already a version 3.07 installed qubes-gui-agent_3.0.7+jessie1_amd64.deb. The devel in the package name is seen as a lesser version than what is installed.

This means that unstable repository on debian is almost useless... The
purpose of this repository is to upload package not yet decided whether
the change there will end up in mainline. This is why the base version
of package is not increased.

Can you change debian versioning scheme the way that "devel" packages
will be considered newer than "stable"? I'm not an expert on debian
versioning scheme, but maybe simply another suffix, like +devel, or so?

Anyway, for now, can you simply downgrade that that devel package for
testing? If the change works well also on Debian, I'll release it as
3.0.8.

Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

@Jeeppler

This comment has been minimized.

Show comment
Hide comment
@Jeeppler

Jeeppler Jul 14, 2015

the downgrade command is: apt-get install qubes-gui-agent=3.0.7+jessie~devel1

the downgrade command is: apt-get install qubes-gui-agent=3.0.7+jessie~devel1

@Jeeppler

This comment has been minimized.

Show comment
Hide comment
@Jeeppler

Jeeppler Jul 14, 2015

I tested the fixed qubes-gui-agent. There was no visible error.
For more information have a look at this gist: https://gist.github.com/Jeeppler/5353370fdeff2ffc56c3

I tested the fixed qubes-gui-agent. There was no visible error.
For more information have a look at this gist: https://gist.github.com/Jeeppler/5353370fdeff2ffc56c3

@adrelanos

This comment has been minimized.

Show comment
Hide comment
@adrelanos

adrelanos Jul 14, 2015

Member

#1061 is a duplicate of this?

This is how this bug can look like?

20150714_160203

Member

adrelanos commented Jul 14, 2015

#1061 is a duplicate of this?

This is how this bug can look like?

20150714_160203

@nrgaway

This comment has been minimized.

Show comment
Hide comment
@nrgaway

nrgaway Jul 14, 2015

On 13 July 2015 at 11:16, Marek Marczykowski-Górecki <
notifications@github.com> wrote:

On Mon, Jul 13, 2015 at 07:56:37AM -0700, nrgaway wrote:

Is qubes-gui-agent_3.0.7+jessie~devel1_amd64.deb the unstable package
you uploaded? If so, it will not install since there is already a version
3.07 installed qubes-gui-agent_3.0.7+jessie1_amd64.deb. The devel in
the package name is seen as a lesser version than what is installed.

This means that unstable repository on debian is almost useless... The
purpose of this repository is to upload package not yet decided whether
the change there will end up in mainline. This is why the base version
of package is not increased.

Can you change debian versioning scheme the way that "devel" packages
will be considered newer than "stable"? I'm not an expert on debian
versioning scheme, but maybe simply another suffix, like +devel, or so?

I will look into it. If thee is not a great solution we could modify the
build scripts to bump the minor version number or release on a devel build.

Anyway, for now, can you simply downgrade that that devel package for
testing? If the change works well also on Debian, I'll release it as
3.0.8.

Ya, I just manually installed the .deb. I have been using it for a day on
both Fedora 21 and Debian 8 without any apparent issues and it has solved
the display errors as stated in topic.

nrgaway commented Jul 14, 2015

On 13 July 2015 at 11:16, Marek Marczykowski-Górecki <
notifications@github.com> wrote:

On Mon, Jul 13, 2015 at 07:56:37AM -0700, nrgaway wrote:

Is qubes-gui-agent_3.0.7+jessie~devel1_amd64.deb the unstable package
you uploaded? If so, it will not install since there is already a version
3.07 installed qubes-gui-agent_3.0.7+jessie1_amd64.deb. The devel in
the package name is seen as a lesser version than what is installed.

This means that unstable repository on debian is almost useless... The
purpose of this repository is to upload package not yet decided whether
the change there will end up in mainline. This is why the base version
of package is not increased.

Can you change debian versioning scheme the way that "devel" packages
will be considered newer than "stable"? I'm not an expert on debian
versioning scheme, but maybe simply another suffix, like +devel, or so?

I will look into it. If thee is not a great solution we could modify the
build scripts to bump the minor version number or release on a devel build.

Anyway, for now, can you simply downgrade that that devel package for
testing? If the change works well also on Debian, I'll release it as
3.0.8.

Ya, I just manually installed the .deb. I have been using it for a day on
both Fedora 21 and Debian 8 without any apparent issues and it has solved
the display errors as stated in topic.

@Jeeppler

This comment has been minimized.

Show comment
Hide comment
@Jeeppler

Jeeppler Jul 14, 2015

@adrelanos exactly this is how the bug looks like.

@adrelanos exactly this is how the bug looks like.

marmarek added a commit to marmarek/old-qubes-gui-agent-linux that referenced this issue Jul 14, 2015

vmside: delay MSG_MFNDUMP until first damage notify event
When window is mapped it should be ready to be displayed (i.e. have its
content filled), so theoretically it is the right place for sending MFNs
list to dom0. But apparently some QT versions first maps the window,
then initialize its content. This cause a race with gui-agent - if
it gets MFNs list before window image is initialized, it would be
actually MFNs list of the root window image. And that wrong list would
not be updated shortly, because gui-agent sends MSG_MFNDUMP only when it
thinks that the image was changed - map event and window size/position
change.

To prevent that race, wait with MSG_MFNDUMP for the first damage
notification after map event. To implement that, add a new field to
window_data struct.
In response to window size change, MSG_MFNDUMP is send immediatelly,
same as before.

QubesOS/qubes-issues#1051

(cherry picked from commit 8b53d36)
@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jul 14, 2015

Member

The fixed package v3.0.8 is now uploaded to testing repository (both Fedora and Debian)

Member

marmarek commented Jul 14, 2015

The fixed package v3.0.8 is now uploaded to testing repository (both Fedora and Debian)

@marmarek marmarek closed this Jul 14, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment