# HG changeset patch # User cmlenz # Date 1127152589 0 # Node ID e1a53e70b43fa0615420b74570aca602bdc8567e # Parent e6ddca1e5712da59f9b4e53c76f9f70774bb760f * Make deletion of build steps compatible with PySQLite2: records cannot be deleted inside a `select()` loop. * Better logging in build master. diff --git a/bitten/master.py b/bitten/master.py --- a/bitten/master.py +++ b/bitten/master.py @@ -132,7 +132,7 @@ build.slave = None build.slave_info = {} build.started = 0 - for step in BuildStep.select(self.env, build=build.id, db=db): + for step in list(BuildStep.select(self.env, build=build.id, db=db)): step.delete(db=db) build.update(db=db) db.commit() @@ -203,7 +203,7 @@ status=Build.IN_PROGRESS, db=db): log.info('Build %d ("%s" as of [%s]) cancelled by %s', build.id, build.rev, build.config, handler.name) - for step in BuildStep.select(self.env, build=build.id): + for step in list(BuildStep.select(self.env, build=build.id)): step.delete(db=db) build.slave = None @@ -357,8 +357,8 @@ build.update() def _build_step_completed(self, build, elem, timestamp_delta=None): - log.debug('Slave completed step "%s" with status %s', elem.attr['id'], - elem.attr['result']) + log.debug('Slave %s completed step "%s" with status %s', self.name, + elem.attr['id'], elem.attr['result']) db = self.env.get_db_cnx() @@ -417,12 +417,12 @@ build.update() def _build_aborted(self, build): - log.info('Slave "%s" aborted build %d ("%s" as of [%s])', + log.info('Slave %s aborted build %d ("%s" as of [%s])', self.name, build.id, build.config, build.rev) db = self.env.get_db_cnx() - for step in BuildStep.select(self.env, build=build.id, db=db): + for step in list(BuildStep.select(self.env, build=build.id, db=db)): step.delete(db=db) build.slave = None