Summary: | gtk-gnutella-0.96.1 crashes on startup | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Tommy McDaniel <tommstein> |
Component: | Current packages | Assignee: | Gentoo net-p2p team <net-p2p> |
Status: | RESOLVED TEST-REQUEST | ||
Severity: | critical | CC: | graaff, tommstein |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | "strace -f" output |
Description
Tommy McDaniel
2006-07-09 14:53:14 UTC
Created attachment 91318 [details]
"strace -f" output
When I compiled the program after adding "-g -nopie" to my CFLAGS and setting FEATURES="nostrip", and using a vanilla GCC since otherwise it wouldn't compile, the program runs fine. The second bug, the one that came out in strace, is addressed by the patch mentioned here in the gtk-gnutella IRC channel: CIA-11| cbiere * r11367 /trunk/gtk-gnutella/src/ui/gtk/gtk2/search.c: CIA-11| * search_gui_menu_select_helper(): Fixed bug: The column contains an integer CIA-11| casted to a pointer (G_TYPE_POINTER); not an integer (G_TYPE_INT). Thus CIA-11| this causes a crash on machines where sizeof(int) != sizeof(void *). Cyclonus| tommstein - that's the patch: svn diff -r11366:11367 src/ui/gtk/gtk2/search.c So there is a patch in Subversion that we could try to apply. Who knows what the first bug is though. Could you try again with gtk-gnutella 0.96.3? There has been additional clean-up of types, casts, and such upstream, so these problems may have gone away in the meantime. I've just added gtk-gnutella 0.96.3 to portage. Still crashes (tested on my laptop this time, since my desktop is currently dead): tommstein@SuperstarLaptop ~ $ gtk-gnutella 06-12-02 22:18:56 (MESSAGE): language code: "en" 06-12-02 22:18:56 (MESSAGE): using locale character set "ANSI_X3.4-1968" 06-12-02 22:18:56 (MESSAGE): primary filename character set "UTF-8" 06-12-02 22:18:56 (MESSAGE): additional filename character set "ANSI_X3.4-1968" 06-12-02 22:18:56 (MESSAGE): gtk-gnutella/0.96.3 (2006-11-09; r12293; GTK2; Linux x86_64) 06-12-02 22:18:56 (MESSAGE): Could not open connection to DBus bus: Unable to determine the address of the message bus (try 'man dbus-launch' and 'man dbus-daemon' for help) 06-12-02 22:18:56 (WARNING): can't read file "/home/tommstein/.gtk-gnutella/config_gnet": No such file or directory ** ERROR **: file host_addr.h: line 188 (host_addr_initialized): should not be reached aborting... Aborted tommstein@SuperstarLaptop ~ $ This error indicates that gtk-gnutella tries to open a socket to an address that is neither local, IPv4 or IPv6, which normally should not happen. One possible cause is that the files in your .gtk-gnutella directory are corrupt and gtk-gnutella encounters an address there that doesn't match expectations. I can suggest to things to try: 1. Try moving your .gtk-gnutella directory out of the way and see if this also happens on a fresh start. 2. Try to get a backtrace from gdb so that we can determine where the offending address comes from. When I removed my .gtk-gnutella directory, nothing changed. I then tried getting the backtrace. I basically did the same thing I did in comment #2: I switched away from hardened GCC, I set FEATURES="nostrip", and I added -g to CFLAGS. When I deleted .gtk-gnutella and ran it, it again ran normally, like in comment #2. This is the (seemingly useless) output from that run through GDB: tommstein@SuperstarLaptop ~ $ gdb gtk-gnutella GNU gdb 6.4 Copyright 2005 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu"...(no debugging symbols found) Using host libthread_db library "/lib/tls/libthread_db.so.1". (gdb) run Starting program: /usr/bin/gtk-gnutella (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) ---Type <return> to continue, or q <return> to quit--- (no debugging symbols found) (no debugging symbols found) 06-12-03 06:11:15 (MESSAGE): language code: "en" 06-12-03 06:11:15 (MESSAGE): using locale character set "ANSI_X3.4-1968" 06-12-03 06:11:15 (MESSAGE): primary filename character set "UTF-8" 06-12-03 06:11:15 (MESSAGE): additional filename character set "ANSI_X3.4-1968" 06-12-03 06:11:18 (MESSAGE): gtk-gnutella/0.96.3 (2006-11-09; r12293; GTK2; Linux x86_64) 06-12-03 06:11:18 (MESSAGE): Could not open connection to DBus bus: Unable to determine the address of the message bus (try 'man dbus-launch' and 'man dbus-daemon' for help) (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) 06-12-03 06:11:18 (WARNING): creating configuration directory "/home/tommstein/.gtk-gnutella" 06-12-03 06:11:18 (WARNING): can't read file "/home/tommstein/.gtk-gnutella/config_gnet": No such file or directory 06-12-03 06:11:18 (WARNING): gnutls_certificate_set_x509_key_file() failed: Error while reading file. 06-12-03 06:11:18 (WARNING): [TLS cache] unable to retrieve: no alternate locations known 06-12-03 06:11:18 (WARNING): [hosts] unable to retrieve: no alternate locations known 06-12-03 06:11:18 (WARNING): [hosts] unable to retrieve: no alternate locations known 06-12-03 06:11:18 (WARNING): [hostile IP addresses (private)] unable to retrieve: no alternate locations known 06-12-03 06:11:18 (WARNING): [Spam database] unable to retrieve: no alternate locations known 06-12-03 06:11:18 (WARNING): can't read file "/home/tommstein/.gtk-gnutella/sha1_cache": No such file or directory 06-12-03 06:11:18 (WARNING): [download mesh] unable to retrieve: no alternate locations known 06-12-03 06:11:18 (WARNING): [banned mesh] unable to retrieve: no alternate locations known 06-12-03 06:11:18 (WARNING): [Host Whitelist] unable to retrieve: no alternate locations known 06-12-03 06:11:18 (WARNING): [PARQ upload queue data] unable to retrieve: no alternate locations known 06-12-03 06:11:18 (WARNING): bitzi_init: failed to rename /home/tommstein/.gtk-gnutella/bitzi.xml to /home/tommstein/.gtk-gnutella/bitzi.xml.orig (No such file or directory) 06-12-03 06:11:18 (WARNING): can't read file "/home/tommstein/.gtk-gnutella/config_gui": No such file or directory (no debugging symbols found) 06-12-03 06:11:18 (WARNING): searches file does not exist: /home/tommstein/.gtk-gnutella/searches.xml 06-12-03 06:11:18 (WARNING): [fileinfo database] unable to retrieve: no alternate locations known 06-12-03 06:11:18 (WARNING): [downloads] unable to retrieve: no alternate locations known 06-12-03 06:11:28 (WARNING): could not stat "/home/tommstein/.gtk-gnutella/config_gnet": No such file or directory 06-12-03 06:11:28 (WARNING): could not stat "/home/tommstein/.gtk-gnutella/config_gui": No such file or directory Program exited normally. (gdb) It looks like the problem is that gtk-gnutella does not work well with hardened GCC. I don't have any experience with hardened GCC, but it looks like add -nopie to the CFLAGS may work around the problem? Could you confirm that gtk-gnutella compiles and works correctly in this way? Reopen with the needed info. |