[Chandler-dev] Help needed to fix triage perf test failure

Grant Baillie grant at osafoundation.org
Wed Apr 25 12:29:17 PDT 2007


On 25 Apr, 2007, at 10:54, Heikki Toivonen wrote:

> The performance Tinderboxes are experiencing failure fairly regularly
> with the triage test. Grant and I have been unable to reproduce the
> error. If anyone is able to reproduce this, please let me know.

After discussion with stearns (and RobinD) on IRC today, it  
transpires that wx is eating the exception. With that knowledge, it  
was easy to get the additional frames in the trace (below) ...

A question for Reid: Near the bottom, why is the MultiStateButton  
calling Update()? Shouldn't it be doing Refresh(), instead of causing  
the whole UI to redraw at an inopportune moment?

--Grant

   /Users/grant/src/chandler/Chandler.py(159)<module>()
-> sys.exit(main())
   /Users/grant/src/chandler/Chandler.py(76)main()
-> return realMain()
   /Users/grant/src/chandler/Chandler.py(70)realMain()
-> app.MainLoop()
   /Users/grant/src/chandler/release/Library/Frameworks/ 
Python.framework/Versions/2.5/lib/python2.5/site-packages/wx/_core.py 
(7822)MainLoop()
-> wx.PyApp.MainLoop(self)
   /Users/grant/src/chandler/release/Library/Frameworks/ 
Python.framework/Versions/2.5/lib/python2.5/site-packages/wx/_core.py 
(7157)MainLoop()
-> return _core_.PyApp_MainLoop(*args, **kwargs)
   /Users/grant/src/chandler/release/Library/Frameworks/ 
Python.framework/Versions/2.5/lib/python2.5/site-packages/wx/_core.py 
(14128)<lambda>()
-> lambda event: event.callable(*event.args, **event.kw) )
   /Users/grant/src/chandler/parcels/osaf/framework/scripting/ 
__init__.py(84)run_startup_script()
-> run_startup_script_with_symbols(builtIns=builtIns, *args, **kwds)
   /Users/grant/src/chandler/parcels/osaf/framework/scripting/ 
script.py(277)run_startup_script_with_symbols()
-> builtIns=builtIns)
   /Users/grant/src/chandler/parcels/osaf/framework/scripting/ 
script.py(184)run_script_with_symbols()
-> exec scriptCode in builtIns
   /Users/grant/src/chandler/tools/QATestScripts/Performance/ 
PerfLargeDataTriage.py(66)<module>()
-> User.emulate_click(dashboardWidget, triageColMiddle,  
(row*rowHeight) + rowMiddle)
   /Users/grant/src/chandler/parcels/osaf/framework/scripting/User.py 
(216)emulate_click()
-> widget.ProcessEvent(mouseUp)
   /Users/grant/src/chandler/release/Library/Frameworks/ 
Python.framework/Versions/2.5/lib/python2.5/site-packages/wx/_core.py 
(3761)ProcessEvent()
-> return _core_.EvtHandler_ProcessEvent(*args, **kwargs)
   /Users/grant/src/chandler/parcels/osaf/framework/blocks/Table.py 
(438)OnMouseEvents()
-> wantsCapture = callHandler(oldCell, oldCell == cell, "old")
   /Users/grant/src/chandler/parcels/osaf/framework/blocks/Table.py 
(420)callHandler()
-> wantsCapture = handler(event)
   /Users/grant/src/chandler/parcels/osaf/framework/attributeEditors/ 
AttributeEditors.py(1340)OnMouseChange()
-> advanceStateMethod(item, attributeName)
   /Users/grant/src/chandler/parcels/osaf/views/main/summaryblocks.py 
(213)advanceState()
-> item.setTriageStatus(newValue, pin=True)
   /Users/grant/src/chandler/parcels/osaf/pim/triage.py(184) 
setTriageStatus()
-> self.__setTriageAttributes(newStatus, when, False, True)
   /Users/grant/src/chandler/parcels/osaf/pim/triage.py(218) 
__setTriageAttributes()
-> setattr(self, tsAttr, newStatus)
   /Users/grant/src/chandler/repository/item/Item.py(314) 
setAttributeValue()
-> self.setDirty(dirty, name, _attrDict, _noFireChanges)
   /Users/grant/src/chandler/repository/persistence/RepositoryView.py 
(1675)__call__()
-> getattr(self.view[self.watchingItem], self.methodName)(op, uItem,  
names)
   /Users/grant/src/chandler/parcels/osaf/framework/blocks/Block.py 
(575)onWatchNotification()
-> block.onItemNotification('itemChange', (op, uuid, attrs))
   /Users/grant/src/chandler/parcels/osaf/views/detail/detail.py(348) 
onItemNotification()
-> self.synchronizeWidget()
   /Users/grant/src/chandler/parcels/osaf/views/detail/detail.py(474) 
synchronizeWidget()
-> self.setState()
   /Users/grant/src/chandler/parcels/osaf/views/detail/detail.py(480) 
setState()
-> self.widget.SetState("%s.%s" % (self.icon, item.triageStatus))
   /Users/grant/src/chandler/util/MultiStateButton.py(272)SetState()
-> self.Update()
   /Users/grant/src/chandler/release/Library/Frameworks/ 
Python.framework/Versions/2.5/lib/python2.5/site-packages/wx/_core.py 
(9536)Update()
-> return _core_.Window_Update(*args, **kwargs)
 > /Users/grant/src/chandler/parcels/osaf/framework/blocks/Table.py 
(107)GetValue()->None
-> import pdb; pdb.set_trace()




More information about the chandler-dev mailing list