vino-server won't start (SIGSEGV) when UPnP is enabled (SRU)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
vino (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Maverick |
Fix Released
|
Medium
|
Unassigned |
Bug Description
Binary package hint: vino
This is the SRU fix for the natty bug #663270.
vino won't start if you have UPnP enabled on at least some routers. This causes many users default remote desktop service to never start.
Test Case:
1) enable UPnP on your router
2)
$ /usr/lib/
14/10/2010 07:47:39 PM Autoprobing TCP port in (all) network interface
14/10/2010 07:47:39 PM Listening IPv6://[::]:5900
14/10/2010 07:47:39 PM Listening IPv4://0.0.0.0:5900
14/10/2010 07:47:39 PM Autoprobing selected port 5900
14/10/2010 07:47:39 PM Advertising security type: 'TLS' (18)
14/10/2010 07:47:39 PM Advertising authentication type: 'VNC Authentication' (2)
14/10/2010 07:47:39 PM Advertising security type: 'VNC Authentication' (2)
** Message: Received signal 11, exiting...
Backtrace:
Thread 1 (Thread 0xb7fdba70 (LWP 5169)):
#0 0x00c34370 in __nss_hostname_
#1 0x00c38cca in gethostbyname () from /lib/libc.so.6
#2 0x0807a5c2 in miniwget2 (url=<value optimized out>, host=0x0, port=2555, path=0x811f18b "/upnp/
#3 0x0807a9b1 in miniwget_getaddr (url=0x811f174 "http://
#4 0x08079c53 in UPNP_GetValidIGD (devlist=0x811f168, urls=0x81104a8, data=0x811f1f8, lanaddr=0x80c0c58 "", lanaddrlen=16) at miniupnpc.c:676
#5 0x0805ce1d in update_upnp_status (upnp=0x80c0c40) at vino-upnp.c:96
#6 0x0805d0b7 in vino_upnp_add_port (upnp=0x80c0c40, port=5900) at vino-upnp.c:229
#7 0x08056d63 in vino_server_
#8 0x08058208 in vino_server_
#9 0x00a1d995 in ?? () from /usr/lib/
#10 0x00a1b86a in g_object_newv () from /usr/lib/
#11 0x00a1c3cc in g_object_new_valist () from /usr/lib/
#12 0x00a1c4e7 in g_object_new () from /usr/lib/
#13 0x08055dbf in vino_prefs_
#14 0x08054557 in main (argc=1, argv=0xbffff4a4) at vino-main.c:117
Solution:
Debian added a patch to fix a FTBFS on hurd. The patch worked well in the 2.28 branch, but breaks the UPnP support in 2.32. The fix, for Ubuntu, is to remove the patch since ubuntu doesn't release for hurd. See patch below.
Regression potential:
Very little - the patch that I removed was not written for the 2.32 branch, and we are reverting to pristine upstream UPnP code. We are losing build support for hurd. We don't build hurd, so there shouldn't be a problem.
Changed in vino (Ubuntu): | |
status: | New → Confirmed |
summary: |
- vino-server SIGSEGV in __nss_hostname_digits_dots + vino-server won't start (SIGSEGV) when UPnP is enabled |
Changed in vino (Ubuntu Maverick): | |
status: | New → In Progress |
importance: | Undecided → Medium |
milestone: | none → maverick-updates |
tags: |
added: verification-done removed: verification-needed |
More information after updating vino to 2.32, installing debug symbols and actually doing the Backtrace procedure as documented in the Wiki:
mike@rounder:~$ gdb /usr/lib/ vino/vino- server gnu.org/ licenses/ gpl.html> www.gnu. org/software/ gdb/bugs/>... vino/vino- server. ..Reading symbols from /usr/lib/ debug/usr/ lib/vino/ vino-server. ..done. vino/vino- server
GNU gdb (GDB) 7.2-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://
Reading symbols from /usr/lib/
done.
(gdb) handle SIG33 pass nostop noprint
Signal Stop Print Pass to program Description
SIG33 No No Yes Real-time event 33
(gdb) set pagination 0
(gdb) run
Starting program: /usr/lib/
[Thread debugging using libthread_db enabled]
[New Thread 0xb7ddab70 (LWP 5172)]
03/10/2010 10:42:06 PM Autoprobing TCP port in (all) network interface
03/10/2010 10:42:06 PM Listening IPv6://[::]:5900
03/10/2010 10:42:06 PM Listening IPv4://0.0.0.0:5900
03/10/2010 10:42:06 PM Autoprobing selected port 5900
03/10/2010 10:42:06 PM Advertising security type: 'TLS' (18)
03/10/2010 10:42:06 PM Advertising authentication type: 'VNC Authentication' (2)
03/10/2010 10:42:06 PM Advertising security type: 'VNC Authentication' (2)
Program received signal SIGSEGV, Segmentation fault. digits_ dots () from /lib/libc.so.6 digits_ dots () from /lib/libc.so.6 6c352473- 8521-319e- 8757-639e9dca99 79/desc. xml", size=0xbfffefac, addr_str=0x80c0c58 "", addr_str_len=16) at miniwget.c:45 225\000\ 250\347\ 377\277\ 000\000\ 000\000( \347\377\ 277\364\ 177\225\ 000h\347\ 377\277g\ 000\000\ 000(\347\ 377\277\ 364\177\ 225\000\ 066\223\ 021\000\ 272ƕ\000\ 251\322\ 004\bۅ\ 224\000\ 370\356\ 021\b`\ 342\375\ 267\002\ 000\000\ 000\340\ 360\021\ 000\\\312\ 004\b \205\376\ 267\364\ 317\022\ 000\330\ 235\225\ 000\025\ 000\000\ 000\264\ 347\377\ 277\004\ 231\021\ 000\220\ 206\224\ 000\066\ 223\021\ 000\222\ 070\266\ 000\251\ 322\004\ b\000\000\ 000\000\ 025\000\ 000\000\ 200\342\ 375\267\ 002\000\ 377\000\ 340\360\ 021\000i\ 315\004\ b\270w\ 376\267\ 364\317\ 022\000\ 320;\265\ 000\033\ 000\000\ 000\364\ 347\377\ 277\004\ 231\021\ 000l\341\ 375\267\ 225M\235| O\000\000\ 000E\000\ 000\000\ 030\331\ 022\000\ 033\000\ 000\000\ 000\000\ 000\000\ 005\000\ 000\000\ 031\001\ 000\000` \342\375\ 267\320M\ 265\000p\ 250\022\ 000\274\ 347\377\ 277\b\237\ 004\b\020\ 000\000\ 000P\227\ 265\000\ 204\341\ 375\267\ 220u\202\ rt\350\ 377\277E\ 000\000\ 000\030\ 331\022\ 000\000\ 000\000\ 000\000\ 000\000\ 000\005\ 000\000\ 000\230\ 004\000\ 000\200\ 342\375\ 267\350w\ 376\267\ 324\316\ 004\bPߵ\ 000\250\ 212\004\ b\001\000\ 000\000\ 364\317\ 022\000\ 340\350\ 377\277\ 320\332\ 022\000\ 264\350\ 377\277\ 302\233\ 021\000\ 244\350\ 377\277\ 250...
0x00c34370 in __nss_hostname_
(gdb) backtrace full
#0 0x00c34370 in __nss_hostname_
No symbol table info available.
#1 0x00c38cca in gethostbyname () from /lib/libc.so.6
No symbol table info available.
#2 0x0807a5c2 in miniwget2 (url=<value optimized out>, host=0x0, port=2555, path=0x811f18b "/upnp/
buf = "\364\177\