Bug 1294937

Summary: virt-viewer will core dump when close the console window by selecting View->Displays->Display 1
Product: Red Hat Enterprise Linux 6 Reporter: mxie <mxie>
Component: virt-viewerAssignee: Virt Viewer Maint <virt-viewer-maint>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: high    
Version: 6.8CC: cfergeau, dblechte, fidencio, jherrman, juzhou, mzhan, rbalakri, tzheng, xiaodwan
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: virt-viewer-2.0-10.el6 Doc Type: Bug Fix
Doc Text:
Prior to this update, closing a virt-viewer console by using the checkbox in the View -> Displays menu in some cases caused virt-viewer to terminate unexpectedly. This update fixes the underlying code, and thus prevents the described problem from occurring.
Story Points: ---
Clone Of:
: 1294938 (view as bug list) Environment:
Last Closed: 2016-05-10 21:21:29 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1294938    

Description mxie@redhat.com 2015-12-31 06:28:50 UTC
Description of problem:
virt-viewer will core dump when close the console window by selecting View->Displays->Display 1

Version-Release number of selected component (if applicable):
libvirt-0.10.2-55.el6.x86_64
virt-viewer-2.0-9.el6.x86_64
libgovirt-0.3.2-2.el6.x86_64
qemu-kvm-0.12.1.2-2.482.el6.x86_64
spice-gtk-0.26-7.el6.x86_64
usbredir-0.5.1-3.el6.x86_64
gtk-vnc-0.3.10-3.el6.x86_64

How reproducible:
100%

Steps to Reproduce:
1.Prepare a (vnc or spice)guest name "rhel6.7" and edit xml as below
 <graphics type='vnc' port='5901' autoport='no' listen='127.0.0.1'>
      <listen type='address' address='127.0.0.1'/>
 </graphics>

2.Start the vnc guest
#virsh start rhel6.7

3.Connect to a VM using remote-viewer spice://<host_ip>:<port> or virt-viewer $guest
#remote-viewer spice://127.0.0.1:5901

or 

#virt-viewer rhel6.7

4.Close the console window by selecting View->Displays->Display1, then the console will be closed and core dump and the debug info shows as below:

[root@localhost ~]# virt-viewer rhel6.7

(virt-viewer:6452): virt-viewer-CRITICAL **: virt_viewer_display_get_session: assertion `VIRT_VIEWER_IS_DISPLAY(self)' failed

(virt-viewer:6452): virt-viewer-CRITICAL **: virt_viewer_session_get_app: assertion `VIRT_VIEWER_IS_SESSION(self)' failed

(virt-viewer:6452): virt-viewer-CRITICAL **: virt_viewer_display_get_session: assertion `VIRT_VIEWER_IS_DISPLAY(self)' failed
Segmentation fault (core dumped)


Actual results:
As description

Expected results:
Close the console window by selecting View->Displays->Display 1 normally

Addtional info:
Please refer to core info :
#0  virt_viewer_session_on_monitor_geometry_changed (self=0x0, display=0x0)
    at virt-viewer-session.c:352
#1  0x0000003151c0e3de in g_closure_invoke () from /lib64/libgobject-2.0.so.0
#2  0x0000003151c248d5 in ?? () from /lib64/libgobject-2.0.so.0
#3  0x0000003151c25d76 in g_signal_emit_valist ()
   from /lib64/libgobject-2.0.so.0
#4  0x0000003151c26333 in g_signal_emit () from /lib64/libgobject-2.0.so.0
#5  0x000000315c8a8c7e in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#6  0x0000003151c0e3de in g_closure_invoke () from /lib64/libgobject-2.0.so.0
#7  0x0000003151c241a8 in ?? () from /lib64/libgobject-2.0.so.0
#8  0x0000003151c25d76 in g_signal_emit_valist ()
   from /lib64/libgobject-2.0.so.0
#9  0x0000003151c26333 in g_signal_emit () from /lib64/libgobject-2.0.so.0
#10 0x000000315ca8cb5e in gtk_widget_activate ()
   from /usr/lib64/libgtk-x11-2.0.so.0
#11 0x000000315c9665bd in gtk_menu_shell_activate_item ()
   from /usr/lib64/libgtk-x11-2.0.so.0
#12 0x000000315c9680ea in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#13 0x000000315c9559d3 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#14 0x0000003151c0e3de in g_closure_invoke () from /lib64/libgobject-2.0.so.0
#15 0x0000003151c2451f in ?? () from /lib64/libgobject-2.0.so.0
#16 0x0000003151c25bbb in g_signal_emit_valist ()
   from /lib64/libgobject-2.0.so.0

Comment 2 Fabiano FidĂȘncio 2016-01-02 14:30:48 UTC
Already fixed upstream by commit 26c2eccd96995231bbe82ee7d1164b704072b1f1

Comment 4 mxie@redhat.com 2016-01-04 03:10:04 UTC
I can reproduce the bug with build:
virt-viewer-2.0-9.el6.x86_64

Try to verify this bug with build:
virt-viewer-2.0-10.el6.x86_64


Steps to Reproduce:
1.Prepare a (vnc or spice)guest name "rhel6.7" and edit xml as below
 <graphics type='vnc' port='5901' autoport='no' listen='127.0.0.1'>
      <listen type='address' address='127.0.0.1'/>
 </graphics>

2.Start the vnc guest
#virsh start rhel6.7

3.Connect to a VM using remote-viewer spice://<host_ip>:<port> or virt-viewer $guest

#remote-viewer spice://127.0.0.1:5901

or 

#virt-viewer rhel6.7

4.Close the console window by selecting View->Displays->Display1, 


Result now:
Close the console window by selecting View->Displays->Display 1 normally and will not prompt any error


So move this bug from ON_QA to VERIFIED.

Comment 6 errata-xmlrpc 2016-05-10 21:21:29 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-0832.html