|
Bugzilla – Full Text Bug Listing |
| Summary: | Terminating last Xclient crashes Xvnc | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE 11.0 | Reporter: | Patrick Kirsch <pkirsch> |
| Component: | YaST2 | Assignee: | Lukas Ocilka <locilka> |
| Status: | RESOLVED FIXED | QA Contact: | Jiri Srain <jsrain> |
| Severity: | Normal | ||
| Priority: | P5 - None | CC: | locilka, rw, sndirsch |
| Version: | Alpha 2 | ||
| Target Milestone: | --- | ||
| Hardware: | x86-64 | ||
| OS: | Other | ||
| Whiteboard: | |||
| Found By: | --- | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: |
Yast2 logfiles from installation system
vncserver.xvnc_refresh_crash.patch display.c |
||
Created attachment 189137 [details]
Yast2 logfiles from installation system
I cannot reproduce the Xvnc crash on x86. Is this a x86 or x86_64 machine or some different platform? I can't reproduce this on x86_64 either. Closing as WORKSFORME. Please reopen if it happens on ppc64 or s390x. But then I need your help to setup the install on such a machine. Sorry for reopening, but I can reproduce this issue on two further different hosts (quake133, quake16). Here is my setup: * System under test (openSUSE 11.0 Build 11) is installed with commandline "vnc=1 vncpassword=foobar vga=791 install=ftp://10.10.0.100/install/SLP/openSUSE-11.0-Build0011-DVD/i386/DVD1 console=ttyS0,115200" Tried x86_64(quake107,quake133) and i386 (quake16). * Tester is openSUSE 10.3 i386 GA with vnc version tightvnc-1.3.9-15 Problem on all the System under tests is, if the tester connects the vncserver crashes with such a dump. No installation is possible. E.g.: starting VNC server... A log file will be written to: /var/log/YaST2/vncserver.log ... *** *** You can connect to 10.10.27.16, display :1 now with vncviewer *** Or use a Java capable browser on http://10.10.27.16:5801/ *** (When YaST2 is finished, close your VNC viewer and return to this window.) *** Starting YaST2 *** *** glibc detected *** /usr/bin/Xvnc: double free or corruption (!prev): 0x0981ad70 *** ======= Backtrace: ========= /lib/libc.so.6[0xb7bd0765] /lib/libc.so.6(cfree+0x9c)[0xb7bd26ac] /usr/bin/Xvnc[0x809aed5] /usr/bin/Xvnc[0x809cb71] /usr/bin/Xvnc(rfbSendRectEncodingTight+0x2f4)[0x809cea4] /usr/bin/Xvnc(rfbSendRectEncodingTight+0x626)[0x809d1d6] /usr/bin/Xvnc(rfbSendRectEncodingTight+0x626)[0x809d1d6] /usr/bin/Xvnc(rfbSendRectEncodingTight+0x626)[0x809d1d6] /usr/bin/Xvnc(rfbSendFramebufferUpdate+0x726)[0x808fbd6] /usr/bin/Xvnc(rfbProcessClientMessage+0x58a)[0x809176a] /usr/bin/Xvnc(rfbCheckFds+0x150)[0x8098950] .... This is kind of weird. I also tested with the same installation repo with x86_64 and i386 and could not reproduce. The client on which I started vncviewer was already running STABLE. Can you setup a machine for installation for me? Thanks. Looks like the order in /root/.vnc/xstartup matters. Original order -------------- xrdb $HOME/.Xresources xsetroot -solid grey xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & twm & When I change this to twm & test -r $HOME/.Xresources && xrdb $HOME/.Xresources xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & twm & the crash no longer happens, because there's always at least one Xclient active. Looks like a broken (re)initialization during Xserver refresh. This issue won't be easy to fix at all since we don't have any knowledge in this area at all inhouse at the moment. I suggest to use a workaround for now, i.e. always start a Xclient in the background (offscreen), so this issue no longer occurs. For tightvnc this means patching the vncserver script. I'll attach a patch. For YaST2 I'm not sure what needs to be done, since I don't know how and where Xvnc is used by the YaST installation. Created attachment 190718 [details]
vncserver.xvnc_refresh_crash.patch
* workaround Xvnc refresh Segfault for now
Just submitted a tightvnc package for STABLE, which applies the above patch. In /usr/lib/YaST2/startup/common/vnc.sh after starting Xvnc a fake Xclient needs to be started in the background to avoid any Xserver refresh. I'll attach sources for this fake Xclient, which actually does nothing than opening the XDisplay. Created attachment 190723 [details]
display.c
Fake xclient.
Lukas, please reassign back once the requested change in yast2-installation has been done, so I won't forget about it. Sooner or later the issue needs to be fixed the correct way in Xvnc. Argh. I was stupid. The Xserver has already a "-noreset" option. So things will become much more easier. So, what should be done then ;)? Anyway, correct assignee for installation startup scripts is jdsn. JDSN: it seems you have to use "-noreset" option for the Xserver... (?) tightvnc resubmitted for STABLE now. ------------------------------------------------------------------- Wed Jan 16 17:18:56 CET 2008 - sndirsch@suse.de - start Xvnc with "-noreset" to avoid crashes during Xserver reset (Bug #351338) Yes, "-noreset" needs to be added as option to Xvnc startup.
--- /usr/lib/YaST2/startup/common/vnc.sh.orig
+++ /usr/lib/YaST2/startup/common/vnc.sh
@@ -80,6 +80,7 @@
# Start Xvnc...
#------------------------------------------
$Xbindir/Xvnc $Xvncparam :0 \
+ -noreset \
-rfbauth /root/.vnc/passwd.yast \
-desktop "Installation at: $VNC_HOSTNAME" \
-geometry 800x600 \
Sorry for the confusion.
Please add this option to YaST for next Alpha release. 1.) Hmm, it should have been assigned to Arvin instead of Daniel. 2.) Daniel doesn't respond. 3.) I'll add it :) Fixed in yast2-installation-2.16.12 |
host: quake107 Build: 0011 Steps to reproduce: do vnc based remote installation, try to connect with vncviewer, this ends in following error: [ 898.432099] bootsplash: status on console 0 changed to off starting hald... ok starting syslogd (logging to /dev/tty4)... ok starting klogd... ok starting slpd to announce VNC... starting yast... Probing connected terminal... Initializing virtual console... Found an xterm terminal on /dev/console (119 columns x 30 lines). starting VNC server... A log file will be written to: /var/log/YaST2/vncserver.log ... *** *** You can connect to 10.10.27.107, display :1 now with vncviewer *** Or use a Java capable browser on http://10.10.27.107:5801/ *** (When YaST2 is finished, close your VNC viewer and return to this window.) *** Starting YaST2 *** *** glibc detected *** /usr/bin/Xvnc: double free or corruption (!prev): 0x00000000027a8bd0 *** ======= Backtrace: ========= /lib64/libc.so.6[0x7f03aeed38a8] /lib64/libc.so.6(cfree+0x76)[0x7f03aeed5956] /usr/bin/Xvnc[0x462232] /usr/bin/Xvnc[0x463dfe] /usr/bin/Xvnc(rfbSendRectEncodingTight+0x370)[0x4641b0] /usr/bin/Xvnc(rfbSendRectEncodingTight+0x67b)[0x4644bb] /usr/bin/Xvnc(rfbSendRectEncodingTight+0x67b)[0x4644bb] /usr/bin/Xvnc(rfbSendRectEncodingTight+0x67b)[0x4644bb] /usr/bin/Xvnc(rfbSendFramebufferUpdate+0x6a3)[0x456283] /usr/bin/Xvnc(rfbProcessClientMessage+0x571)[0x457d51] /usr/bin/Xvnc(rfbCheckFds+0x1f7)[0x45fcb7] /usr/bin/Xvnc[0x453658] /usr/bin/Xvnc(WakeupHandler+0x92)[0x47c5e2] /usr/bin/Xvnc(WaitForSomething+0x1ec)[0x7229dc] /usr/bin/Xvnc(Dispatch+0x9f)[0x47855f] /usr/bin/Xvnc(main+0x4b5)[0x48bab5] /lib64/libc.so.6(__libc_start_main+0xfa)[0x7f03aee7fb2a] /usr/bin/Xvnc[0x445d79] ======= Memory map: ======== 00400000-007e9000 r-xp 00000000 07:00 1164 /mounts/instsys/usr/bin/Xvnc 009e9000-009f1000 r--p 003e9000 07:00 1164 /mounts/instsys/usr/bin/Xvnc 009f1000-00a0a000 rw-p 003f1000 07:00 1164 /mounts/instsys/usr/bin/Xvnc 00a0a000-00a51000 rw-p 00a0a000 00:00 0 02698000-027c9000 rw-p 02698000 00:00 0 [heap] 7f03a8000000-7f03a8021000 rw-p 7f03a8000000 00:00 0 7f03a8021000-7f03ac000000 ---p 7f03a8021000 00:00 0 7f03add34000-7f03add4a000 r-xp 00000000 07:00 7964 /mounts/instsys/lib64/libgcc_s.so.1 7f03add4a000-7f03adf49000 ---p 00016000 07:00 7964 /mounts/instsys/lib64/libgcc_s.so.1 7f03adf49000-7f03adf4a000 r--p 00015000 07:00 7964 /mounts/instsys/lib64/libgcc_s.so.1 7f03adf4a000-7f03adf4b000 rw-p 00016000 07:00 7964 /mounts/instsys/lib64/libgcc_s.so.1 7f03adf4b000-7f03adf55000 r-xp 00000000 00:0f 996 /lib64/libnss_files-2.6.1.so 7f03adf55000-7f03ae154000 ---p 0000a000 00:0f 996 /lib64/libnss_files-2.6.1.so 7f03ae154000-7f03ae155000 r--p 00009000 00:0f 996 /lib64/libnss_files-2.6.1.so 7f03ae155000-7f03ae156000 rw-p 0000a000 00:0f 996 /lib64/libnss_files-2.6.1.so 7f03ae156000-7f03ae160000 r-xp 00000000 07:00 7947 /mounts/instsys/lib64/libnss_nis-2.6.1.so 7f03ae160000-7f03ae35f000 ---p 0000a000 07:00 7947 /mounts/instsys/lib64/libnss_nis-2.6.1.so 7f03ae35f000-7f03ae360000 r--p 00009000 07:00 7947 /mounts/instsys/lib64/libnss_nis-2.6.1.so 7f03ae360000-7f03ae361000 rw-p 0000a000 07:00 7947 /mounts/instsys/lib64/libnss_nis-2.6.1.so 7f03ae361000-7f03ae376000 r-xp 00000000 00:0f 944 /lib64/libnsl-2.6.1.so 7f03ae376000-7f03ae575000 ---p 00015000 00:0f 944 /lib64/libnsl-2.6.1.so 7f03ae575000-7f03ae576000 r--p 00014000 00:0f 944 /lib64/libnsl-2.6.1.so 7f03ae576000-7f03ae577000 rw-p 00015000 00:0f 944 /lib64/libnsl-2.6.1.so 7f03ae577000-7f03ae579000 rw-p 7f03ae577000 00:00 0 7f03ae579000-7f03ae580000 r-xp 00000000 00:0f 952 /lib64/libnss_compat-2.6.1.so 7f03ae580000-7f03ae77f000 ---p 00007000 00:0f 952 /lib64/libnss_compat-2.6.1.so 7f03ae77f000-7f03ae780000 r--p 00006000 00:0f 952 /lib64/libnss_compat-2.6.1.so 7f03ae780000-7f03ae781000 rw-p 00007000 00:0f 952 /lib64/libnss_compat-2.6.1.so 7f03ae781000-7f03aec47000 rw-p 7f03ae781000 00:00 0 7f03aec47000-7f03aec5d000 r-xp 00000000 00:0f 995 /lib64/libpthread-2.6.1.so 7f03aec5d000-7f03aee5c000 ---p 00016000 00:0f 995 /lib64/libpthread-2.6.1.so 7f03aee5c000-7f03aee5d000 r--p 00015000 00:0f 995 /lib64/libpthread-2.6.1.so 7f03aee5d000-7f03aee5e000 rw-p 00016000 00:0f 995 /lib64/libpthread-2.6.1.so 7f03YaST got signal 11 at YCP file Wizard.ycp:478 /usr/lib/YaST2/startup/YaST2.call: line 464: 10021 Aborted (core dumped) $Xbindir/Xvnc $Xvncparam :0 -rfbauth /root/.vnc/passwd.yast -desktop "Installation at: $VNC_HOSTNAME" -geometry 800x600 -depth 16 -rfbwait 120000 -httpd /usr/share/vnc/classes -rfbport 5901 -httpport 5801 -fp $Xfontdir/misc/,$Xfontdir/uni/,$Xfontdir/truetype/ >&/var/log/YaST2/vncserver.log /usr/lib/YaST2/startup/YaST2.call: line 464: 10109 Segmentation fault (core dumped) $OPT_FBITERM y2base "$Y2_MODULE_NAME" $Y2_MODE_FLAGS $Y2_MODULE_ARGS $Y2_MODE $Y2_UI_ARGS /usr/lib/YaST2/startup/YaST2.call: line 854: kill: (10021) - No such process