Ticket #202 (new defect)

Opened 8 months ago

changes.pck always get trucated when Buildbot running

Reported by: wangvisual Assigned to:
Priority: major Milestone: undecided
Component: changesources Version: 0.7.6
Keywords: Cc:

Description

The suspect culprit is in master.py:

# this ChangeMaster is a dummy, only used by tests. In the real
# buildmaster, where the BuildMaster instance is activated
# (startService is called) by twistd, this attribute is overwritten.
self.useChanges(ChangeMaster())

When Buildbot start, self.useChanges() will be called again within loadChanges(), and as self.change_svc is not null, so self.change_svc.disownServiceParent() will be called. This will trigger ChangeMaster?.saveYourSelf() and override 'changes.pck' with empty values.

Normally, this won't be a problem, but if buildbot was killed with -9 or machine hang then 'changes.pck' will be useless and waterfull will show empty changes collumn.

Here is the stack trace log when Buildbot start:

2008/03/17 00:31 -0700 [-] twistd 2.5.0 (/depot/Python-2.5/bin/python 2.5.0) starting up
2008/03/17 00:31 -0700 [-] reactor class: <class 'twisted.internet.selectreactor.SelectReactor'>
2008/03/17 00:31 -0700 [-] Loading buildbot.tac...
2008/03/17 00:32 -0700 [-] Loaded.
2008/03/17 00:32 -0700 [-]   File "/u/ncxmgr/Apps/buildbot/bin/twistd", line 21, in <module>
2008/03/17 00:32 -0700 [-]     run()
2008/03/17 00:32 -0700 [-]   File "/u/ncxmgr/Apps/buildbot/lib/twisted/scripts/twistd.py", line 27, in run
2008/03/17 00:32 -0700 [-]     app.run(runApp, ServerOptions)
2008/03/17 00:32 -0700 [-]   File "/u/ncxmgr/Apps/buildbot/lib/twisted/application/app.py", line 379, in run
2008/03/17 00:32 -0700 [-]     runApp(config)
2008/03/17 00:32 -0700 [-]   File "/u/ncxmgr/Apps/buildbot/lib/twisted/scripts/twistd.py", line 23, in runApp
2008/03/17 00:32 -0700 [-]     _SomeApplicationRunner(config).run()
2008/03/17 00:32 -0700 [-]   File "/u/ncxmgr/Apps/buildbot/lib/twisted/application/app.py", line 158, in run
2008/03/17 00:32 -0700 [-]     self.postApplication()
2008/03/17 00:32 -0700 [-]   File "/u/ncxmgr/Apps/buildbot/lib/twisted/scripts/_twistd_unix.py", line 213, in postApplication
2008/03/17 00:32 -0700 [-]     startApplication(self.config, self.application)
2008/03/17 00:32 -0700 [-]   File "/u/ncxmgr/Apps/buildbot/lib/twisted/scripts/_twistd_unix.py", line 183, in startApplication
2008/03/17 00:32 -0700 [-]     app.startApplication(application, not config['no_save'])
2008/03/17 00:32 -0700 [-]   File "/u/ncxmgr/Apps/buildbot/lib/twisted/application/app.py", line 400, in startApplication
2008/03/17 00:32 -0700 [-]     service.IService(application).startService()
2008/03/17 00:32 -0700 [-]   File "/u/ncxmgr/Apps/buildbot/lib/twisted/application/service.py", line 233, in startService
2008/03/17 00:32 -0700 [-]     service.startService()
2008/03/17 00:32 -0700 [-]   File "/u/ncxmgr/Apps/buildbot/lib/buildbot/master.py", line 400, in startService
2008/03/17 00:32 -0700 [-]     self.loadChanges() # must be done before loading the config file
2008/03/17 00:32 -0700 [-]   File "/u/ncxmgr/Apps/buildbot/lib/buildbot/master.py", line 435, in loadChanges
2008/03/17 00:32 -0700 [-]     self.useChanges(changes)
2008/03/17 00:32 -0700 [-]   File "/u/ncxmgr/Apps/buildbot/lib/buildbot/master.py", line 417, in useChanges
2008/03/17 00:32 -0700 [-]     self.change_svc.disownServiceParent()
2008/03/17 00:32 -0700 [-]   File "/u/ncxmgr/Apps/buildbot/lib/twisted/application/service.py", line 151, in disownServiceParent
2008/03/17 00:32 -0700 [-]     d = self.parent.removeService(self)
2008/03/17 00:32 -0700 [-]   File "/u/ncxmgr/Apps/buildbot/lib/twisted/application/service.py", line 269, in removeService
2008/03/17 00:32 -0700 [-]     return service.stopService()
2008/03/17 00:32 -0700 [-]   File "/u/ncxmgr/Apps/buildbot/lib/buildbot/changes/changes.py", line 279, in stopService
2008/03/17 00:32 -0700 [-]     self.saveYourself()
2008/03/17 00:32 -0700 [-]   File "/u/ncxmgr/Apps/buildbot/lib/buildbot/changes/changes.py", line 264, in saveYourself
2008/03/17 00:32 -0700 [-]     print_stack()
2008/03/17 00:32 -0700 [-] loading configuration from /remote/dept5532a/ncxmgr/Apps/buildbot/master/master.cfg