[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