fmoralesc / pastie

a simple *nix clipboard manager with application-indicator support
47 stars 7 forks source link

Pastie 0.6.7 Segmentation Fault #26

Closed hotice closed 14 years ago

hotice commented 14 years ago

Pastie 0.6.7 fails to start:

andrei@andrei-desktop:~/Desktop$ pastie `menu_proxy_module_load': /usr/bin/python: undefined symbol: menu_proxy_module_load /usr/lib/pymodules/python2.6/pastielib/protector.py:274: GtkWarning: Failed to load type module: (null)

menu = gtk.Menu() `menu_proxy_module_load': /usr/bin/python: undefined symbol: menu_proxy_module_load Segmentation fault (core dumped)

Tested in Ubuntu 10.10 Maverick Meerkat. I see some menu_proxy modules there so it might be an Ubuntu 10.10 specific issue.

fmoralesc commented 14 years ago

Yes, it has to do with something in 10.10. I have no machine with it installed, but I might virtualize one to test this.

Can you tell me what version of python-gtk and python-appindicator 10.10 has?

Also, have you updated those libraries recently? Which was the last pastie version that ran correctly on that machine?

hotice commented 14 years ago

python-appindicator: 0.2.6-0ubuntu1 python-gtk2: 2.21.0-0ubuntu1

Pastie was running fine until the update today.

libindicate-gtk2, libindicate4, python-indicate and gir1.0-indicate-0.2 are the only indicate/or package upgraded today.

hotice commented 14 years ago

For a 2-click Ubuntu 10.10 VM, try TestDrive: http://www.webupd8.org/2010/07/testdrive-latest-daily-ubuntu.html

fmoralesc commented 14 years ago

What's weird is I haven't touched that part of the code (the part that updates the menu) at all in any of the recent changes to pastie. The problem must lie in the libraries somewhere. It seems that the function menu_proxy_module_load belongs to appmenu-gtk (http://www.mail-archive.com/ayatana-commits@lists.launchpad.net/msg01589.html)

Anyway, did 0.6.5 work? Do you know of any way to revert a package version in a PPA to an older one?

hotice commented 14 years ago

I was able to find Pastie 0.6.5 in the cache, I've installed it and it worked. Here's the output from the terminal:

andrei@andrei-desktop:~$ pastie `menu_proxy_module_load': /usr/bin/python: undefined symbol: menu_proxy_module_load /usr/lib/pymodules/python2.6/pastielib/protector.py:227: GtkWarning: Failed to load type module: (null)

menu = gtk.Menu() menu_proxy_module_load': /usr/bin/python: undefined symbol: menu_proxy_module_load menu_proxy_module_load': /usr/bin/python: undefined symbol: menu_proxy_module_load andrei@andrei-desktop:~$

I then installed Pastie 0.6.7 again and now I got a different error:

andrei@andrei-desktop:~$ pastie `menu_proxy_module_load': /usr/bin/python: undefined symbol: menu_proxy_module_load /usr/lib/pymodules/python2.6/pastielib/protector.py:274: GtkWarning: Failed to load type module: (null)

menu = gtk.Menu() menu_proxy_module_load': /usr/bin/python: undefined symbol: menu_proxy_module_load menu_proxy_module_load': /usr/bin/python: undefined symbol: menu_proxy_module_load Traceback (most recent call last): File "/usr/bin/pastie", line 53, in clipboard_protector = protector.ClipboardProtector() File "/usr/lib/pymodules/python2.6/pastielib/protector.py", line 85, in init self.toggle_primary() File "/usr/lib/pymodules/python2.6/pastielib/protector.py", line 101, in toggle_primary if prefs.get_use_primary() == True: File "/usr/lib/pymodules/python2.6/pastielib/preferences.py", line 35, in get_use_primary return get_pref('use_primary') File "/usr/lib/pymodules/python2.6/pastielib/preferences.py", line 18, in get_pref if value.type.value_nick == 'int': AttributeError: 'NoneType' object has no attribute 'type'

fmoralesc commented 14 years ago

The second error is essentially the zombie return of the error you were having with 0.6.5, related to the gconf preferences. It seems the changes I made in 0.6.7 didn't fix it. sigh... :(

hotice commented 14 years ago

The second time I tried to run it... worked. For a few seconds - until I tried to click the Preferences menu, when it crashed just like in my initial report above.

fmoralesc commented 14 years ago

I've tried pastie 0.6.7 in a virtual machine, and can confirm the problem. I've fixed the problem "AttributeError: 'NoneType' object has no attribute 'type'", for good I think, in 0.6.7.1, which I've pushed to the PPA. The segfault seems to arise from glib.

fmoralesc commented 14 years ago

The output of my tries running pastie is

[   37.505878] pastie[1111]: segfault at aaaaaaae ip 0017b602 sp bfb32788 error 4 in libglib-2.0.so.0.2515.0[13f000+cd000]
[  306.746171] pastie[1674]: segfault at aaaaaaae ip 0070c602 sp bf9653b8 error 4 in libglib-2.0.so.0.2515.0[6d0000+cd000]
[  399.529643] pastie[1698]: segfault at aaaaaaae ip 00393602 sp bf848558 error 4 in libglib-2.0.so.0.2515.0[357000+cd000]
[ 1169.869094] pastie[2433]: segfault at aaaaaaae ip 00555602 sp bfb79a68 error 4 in libglib-2.0.so.0.2515.0[519000+cd000]

Can you send me your output of dmesg | grep pastie?

fmoralesc commented 14 years ago

I found the problem is located in the primary selection code (introduced in 0.6.5). I'll build a special maverick version to upload to the PPA without primary selection support while I try to solve this issue.

hotice commented 14 years ago

It's 100% a Maverick issue. Now I'm at work, running Lucid with about 50% of the Maverick packages backported to Lucid yet Pastie works here.

About dmesg | grep pastie ... It will have to wait until tonight when I'll get home.

hotice commented 14 years ago

I upgraded to the latest Pastie in Maverick and this issue no longer occurs. Pastie works fine now.

If it still matters:

andrei@andrei-desktop:~$ dmesg | grep pastie [ 72.541721] pastie[1915]: segfault at aaaaaaae ip 00170602 sp bff8fce8 error 4 in libglib-2.0.so.0.2515.0[134000+cd000] andrei@andrei-desktop:~$

timbo-lino commented 14 years ago

Mhh, I am on Lucid an get this Segmentation Fault with pastie 0.6.7.1

pastie `menu_proxy_module_load': /usr/bin/python: undefined symbol: menu_proxy_module_load /usr/lib/pymodules/python2.6/pastielib/protector.py:274: GtkWarning: Failed to load type module: (null)

menu = gtk.Menu() /usr/lib/pymodules/python2.6/pastielib/protector.py:274: Warning: invalid (NULL) pointer instance menu = gtk.Menu() /usr/lib/pymodules/python2.6/pastielib/protector.py:274: Warning: g_signal_connect_data: assertion G_TYPE_CHECK_INSTANCE (instance)' failed menu = gtk.Menu() /usr/lib/pymodules/python2.6/pastielib/protector.py:311: Warning: /build/buildd/glib2.0-2.25.11/gobject/gsignal.c:2275: signalchild-added' is invalid for instance 0x1806320' self.indicator.set_menu(menu) /usr/lib/pymodules/python2.6/pastielib/protector.py:311: Warning: /build/buildd/glib2.0-2.25.11/gobject/gsignal.c:2275: signalchild-removed' is invalid for instance 0x1806320' self.indicator.set_menu(menu) menu_proxy_module_load': /usr/bin/python: undefined symbol: menu_proxy_module_load /usr/lib/pymodules/python2.6/pastielib/protector.py:311: Warning: /build/buildd/glib2.0-2.25.11/gobject/gsignal.c:2275: signal child-added' is invalid for instance0x18064b0' self.indicator.set_menu(menu) /usr/lib/pymodules/python2.6/pastielib/protector.py:311: Warning: /build/buildd/glib2.0-2.25.11/gobject/gsignal.c:2275: signal child-removed' is invalid for instance0x18064b0' self.indicator.set_menu(menu) Segmentation fault

Any Ideas?

fmoralesc commented 14 years ago

That seems to be a problem in Glib. Are you still having this issue? (Sorry for the lateness. I've been busy at uni and haven't had much time to work on pastie.)

timbo-lino commented 14 years ago

Hi, I just tried it again and it works now :)

Great work!