[Bugs] #203 MINO: traceback on accepting invitation
SugarLabs Bugs
bugtracker-noreply at sugarlabs.org
Thu Jan 15 09:51:42 EST 2009
#203: traceback on accepting invitation
--------------------------+-------------------------------------------------
Reporter: sascha_silbe | Owner: marcopg
Type: defect | Status: new
Priority: minor | Milestone:
Component: sugar | Version: 0.82.x
Keywords: |
--------------------------+-------------------------------------------------
Priority set to minor because there's no apparent effect except for the
traceback itself.
Also filed as Debian bug #511894 [1].
[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=511894
Upon accepting an invitation, the following traceback will occur (on the
machine accepting the invitation):
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/sugar/graphics/animator.py", line
66, in _next_frame_cb
animation.do_frame(current_time, self._duration, self._easing)
File "/usr/lib/python2.5/site-packages/sugar/graphics/animator.py", line
92, in do_frame
self.next_frame(frame)
File "/usr/lib/python2.5/site-packages/sugar/graphics/palette.py", line
728, in next_frame
self._palette._hide()
File "/usr/lib/python2.5/site-packages/sugar/graphics/palette.py", line
564, in _hide
self.menu.set_active(False)
AttributeError: 'NoneType' object has no attribute 'set_active'
This seems to be due to calling _hide again after __destroy_cb. Custom
debugging output, filtered on the instance the traceback occured on:
__init__: self = <ActivityInvitePalette object at 0x9c296e4 (SugarPalette
at 0xa01c2e0)>, self.menu = <_Menu object at 0x9c29acc (SugarPaletteMenu
at 0xa027210)>
_hide: self = <ActivityInvitePalette object at 0x9c296e4 (SugarPalette at
0xa01c2e0)>, self.menu = <_Menu object at 0x9c29acc (SugarPaletteMenu at
0xa027210)>
__destroy_cb: self = <ActivityInvitePalette object at 0x9c296e4
(SugarPalette at 0xa01c2e0)>, self.menu = None
_hide: self = <ActivityInvitePalette object at 0x9c296e4 (SugarPalette at
0xa01c2e0)>, self.menu = None
Stack trace from the __destroy_cb call:
File "/usr/bin/sugar-shell", line 32, in <module>
main()
File "/usr/share/sugar/shell/main.py", line 151, in main
gtk.main()
File "/usr/share/sugar/shell/view/frame/activitiestray.py", line 364, in
__invite_clicked_cb
self._invites.remove_invite(invite)
File "/usr/share/sugar/shell/model/Invites.py", line 103, in
remove_invite
self.emit('invite-removed', invite)
File "/usr/share/sugar/shell/view/frame/activitiestray.py", line 372, in
__invite_removed_cb
self._remove_invite(invite)
File "/usr/share/sugar/shell/view/frame/activitiestray.py", line 392, in
_remove_invite
self._invite_to_item[invite].destroy()
File "/usr/lib/python2.5/site-packages/sugar/graphics/toolbutton.py",
line 75, in __destroy_cb
self._palette_invoker.detach()
File "/usr/lib/python2.5/site-packages/sugar/graphics/palette.py", line
975, in detach
Invoker.detach(self)
File "/usr/lib/python2.5/site-packages/sugar/graphics/palette.py", line
772, in detach
self._palette.destroy()
File "/usr/lib/python2.5/site-packages/sugar/graphics/palette.py", line
284, in __destroy_cb
traceback.print_stack()
The self._palette._hide() call belongs to _PopdownAnimation:
class _PopdownAnimation(animator.Animation):
def __init__(self, palette):
animator.Animation.__init__(self, 0.0, 1.0)
self._palette = palette
def next_frame(self, current):
if current == 1.0:
self._palette._hide()
Looks like this animation object should be destroyed as well when removing
the invitation.
--
Ticket URL: <http://dev.sugarlabs.org/ticket/203>
Sugar Labs <http://sugarlabs.org/>
Sugar Labs bug tracking system
More information about the Bugs
mailing list