Summary: | krfb crashes on connect | ||
---|---|---|---|
Product: | [Applications] krfb | Reporter: | rainer <kdebugs> |
Component: | general | Assignee: | George Goldberg <grundleborg> |
Status: | RESOLVED UPSTREAM | ||
Severity: | crash | CC: | aacid, cfanmaoli, cfeck, doylejl, hrm-temp, hrvoje.senjan, kdebugs, kdelyria, lohlive, mail, mr.1488666, rodrigoesborges, vlad.shkapsky |
Priority: | NOR | Keywords: | drkonqi |
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
New crash information added by DrKonqi
valgrind log as requested New crash information added by DrKonqi valgrind log with debug symbols for glibc as well New crash information added by DrKonqi |
Description
rainer
2015-02-25 21:43:36 UTC
*** Bug 344084 has been marked as a duplicate of this bug. *** Today I cross-checked again with krfb 4.14.3 (previously also checked 4.14.2) installed from the openSuse updates Repo. Both work in the same environment without apparent issues. I am developer myself, albeit without almost any experience in native Linux development in general or KDE development in particular, but willing to assist with anything that can help clarifying this issue. Created attachment 91325 [details]
New crash information added by DrKonqi
krfb (4.14.4) on KDE Platform 4.14.4 using Qt 4.8.6
- What I was doing when the application crashed:
You are connecting from a remote machine, after entering the password got connection error.
- Unusual behavior I noticed:
The bug had appeared after the update 2 weeks ago.
-- Backtrace (Reduced):
#11 0x00007f4add106208 in rfbProcessNewConnection () from /usr/lib64/libvncserver.so.0
[...]
#13 0x00007f4ada20710e in QSocketNotifier::activated(int) () from /usr/lib64/libQtCore.so.4
#14 0x00007f4ada1c4fab in QSocketNotifier::event(QEvent*) () from /usr/lib64/libQtCore.so.4
#15 0x00007f4adae3376c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#16 0x00007f4adae39cad in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
*** Bug 344668 has been marked as a duplicate of this bug. *** This seems to be a problem in "libvncserver.so". I am not sure if there was a recent update for this library in openSUSE. there haven't been any updates for the LibVNCServer source package within 13.2, i'll check Tumbleweed (but looks like the problem is on 13.2?) As stated above I checked installing the openSUSE 13.2 package 4.14.3-4.2-x86_64. This version works on the same system where the current package (14.12.1-8.1-x86_64) crashes. libvncserver is the same in both contexts. Ah I see. With the updated krfb application, the bundled libvncserver is no longer used, but the system's libvncserver. It looks like this change has not been well tested with different libvncserver versions. With bundled do you mean 'statically linked'? Because the shared library (libvncserver.so) is not part of the rpm in both versions, as far as I can see. Which libvncserver version are you running? The libvncserver package carries the version number 0.9.9-10.2.1-x86_64 krfb works just fine here with a similar-ish version number in ubuntu. No idea if debug packages for opensuse exist, can you install them for both krfb and libvncserver and then run in a terminal killall krfb valgrind krfb --nofork try to connect, and attach the log of running krfb under valgrind? Created attachment 91365 [details]
valgrind log as requested
I created the log by running valgrind krfb --nofork 2> valgrind.log
If something different is required, please just tell.
Created attachment 91517 [details]
New crash information added by DrKonqi
krfb (4.14.5) on KDE Platform 4.14.5 using Qt 4.8.6
- What I was doing when the application crashed:
Trying to connect to the computer running krfb with a mobile vnc client as before. In the meantime there was an update of the openSUSE krfb package, but the behaviour didn't change.
-- Backtrace (Reduced):
#7 0x00007fb9eec86844 in () at /lib64/libc.so.6
#8 0x00007fb9eed094d7 in __fortify_fail () at /lib64/libc.so.6
#9 0x00007fb9eed076f0 in __readonly_area () at /lib64/libc.so.6
#10 0x00007fb9eed09447 in () at /lib64/libc.so.6
#11 0x00007fb9f25c1208 in rfbProcessNewConnection (rfbScreen=0x2942ff0) at sockets.c:407
Rainer, could you additionally install debug symbols for glibc? Created attachment 91586 [details]
valgrind log with debug symbols for glibc as well
Created a new valgrind log, additionally with debug symbols for glibc as requested.
Okey, that confirms my suspicion. The assert is caused by __fdelt_chk, which means that either an invalid file descriptor is passed to/ or from rfbProcessNewConnection in libvncserver, or the system ran out of file descriptors. I would be surprised if my system ran out of filedescriptors - all other activities went on unhindered. Is there something more I can try or do to reveal the reason for this invalid filedescriptor? *** Bug 345243 has been marked as a duplicate of this bug. *** *** Bug 345432 has been marked as a duplicate of this bug. *** *** Bug 345442 has been marked as a duplicate of this bug. *** *** Bug 345778 has been marked as a duplicate of this bug. *** libvncserver in opensuse needs to be updated, ubuntu is using this patchset that works Description: Do not segfault on listenSock/listen6Sock Author: mackyle Index: libvncserver/libvncserver/sockets.c =================================================================== --- libvncserver.orig/libvncserver/sockets.c 2014-05-01 10:11:04.295952467 +0200 +++ libvncserver/libvncserver/sockets.c 2014-05-01 10:16:22.953295982 +0200 @@ -402,9 +402,9 @@ rfbLogPerror("rfbProcessNewConnection: error in select"); return FALSE; } - if (FD_ISSET(rfbScreen->listenSock, &listen_fds)) + if (rfbScreen->listenSock >= 0 && FD_ISSET(rfbScreen->listenSock, &listen_fds)) chosen_listen_sock = rfbScreen->listenSock; - if (FD_ISSET(rfbScreen->listen6Sock, &listen_fds)) + if (rfbScreen->listen6Sock >= 0 && FD_ISSET(rfbScreen->listen6Sock, &listen_fds)) chosen_listen_sock = rfbScreen->listen6Sock; if ((sock = accept(chosen_listen_sock, Or they can get an updated upstream version from libvncserver that also has this fixed in a similar way, see https://github.com/LibVNC/libvncserver/blob/master/libvncserver/sockets.c Created attachment 92469 [details]
New crash information added by DrKonqi
krfb (4.14.6) on KDE Platform 4.14.6 using Qt 4.8.6
Hi
Upgraded system, the problem persists.
-- Backtrace (Reduced):
#11 0x00007ff7355d4208 in rfbProcessNewConnection () from /usr/lib64/libvncserver.so.0
[...]
#13 0x00007ff7326d510e in QSocketNotifier::activated(int) () from /usr/lib64/libQtCore.so.4
#14 0x00007ff732692fab in QSocketNotifier::event(QEvent*) () from /usr/lib64/libQtCore.so.4
#15 0x00007ff73330176c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#16 0x00007ff733307cad in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
> Upgraded system
There was no update to the libvncserver package yet.
Or are you saying that you compiled source code from upstream and still get the crash?
Today I received a new version of libvncserver.so through a security update package from openSUSE for my version 13.2. The libvncserver package version is now 0.9.10-10.4.1-x86_64 and the crash is gone. Should I close this issue? Today's installation of libvncserver 0.9.10-10.4.1-i586 fixed the crash on my 32-bit system, after a reboot. Thanks, Howard |