[Buildbot-commits] [SPAM] Re: [Buildbot] #692: exceptions.AssertionError: assert s.number == self.nextBuildNumber - 1
Buildbot
buildbot-devel at lists.sourceforge.net
Mon Jan 25 22:20:45 UTC 2010
#692: exceptions.AssertionError: assert s.number == self.nextBuildNumber - 1
--------------------+-------------------------------------------------------
Reporter: rackamx | Owner:
Type: defect | Status: new
Priority: major | Milestone: 0.8.0
Version: 0.7.11 | Resolution:
Keywords: |
--------------------+-------------------------------------------------------
Comment(by rackamx):
I haven't tried 0.7.12 yet, but I will next time this problem happened. It
happened once only so far, after more than 100days of uptime. There isn't
anything really special about this config, the only thing might be how the
locks are dealt with, to get per build locks. Example below. Thanks for
your help, and thanks for the awesome work on this program !
{{{
c['slaves'] = [BuildSlave('fooslave', 'foopwd', max_builds = 5)]
################################################################################
# Schedulers
#
################################################################################
c['schedulers'] = [
Scheduler('footest2', svn_mod_foo, 4 * 3600, ['footest2']),
Nightly('foobuild', ['foobuild'], 0, 12),
Nightly('foobuild_reg', ['foobuild_reg'], 0, 13),
Nightly('foobuild_reg_unit', ['foobuild_reg_unit'], 0, 3),
Nightly('footest1', ['footest1'], 0, 2),
]
footest2 = BuildFactory()
footest1 = BuildFactory()
foobuild = BuildFactory()
foobuild = BuildFactory()
foobuild_reg = BuildFactory()
foobuild_reg_unit = BuildFactory()
################################################################################
# Locks
#
################################################################################
locks = {}
rlocks = {}
wlocks = {}
def getRWLock(name, ldict, mode) :
if not ldict.has_key(name) :
if not locks.has_key(name) :
locks[name] = SlaveLock(name, maxCount = 10)
ldict[name] = LockAccess(locks[name], mode)
ldict[name].name = name
return ldict[name]
def getRLock(name) :
''' Get a R lock, means the builder is using this guy '''
return getRWLock(name, rlocks, 'counting')
def getWLock(name) :
''' Get a W lock, means the builder is generating this guy '''
return getRWLock(name, wlocks, 'exclusive')
################################################################################
# Builders
#
################################################################################
c['builders'] = [
{
'name': 'foobuild',
'slavename': 'fooslave',
'builddir': 'foobuild',
'factory': foobuild,
'locks': [getWLock('foobuild')],
},
{
'name': 'foobuild_reg',
'slavename': 'fooslave',
'builddir': 'foobuild_reg',
'factory': foobuild_reg,
'locks': [getRLock('foobuild'), getWLock('foobuild_reg')],
},
{
'name': 'foobuild_reg_unit',
'slavename': 'fooslave',
'builddir': 'foobuild_reg_unit',
'factory': foobuild_reg_unit,
'locks': [getRLock('foobuild'), getWLock('foobuild_reg')],
},
{
'name': 'footest1',
'slavename': 'fooslave',
'builddir': 'footest1',
'factory': footest1,
'locks': [getRLock('foobuild')],
},
{
'name': 'footest2',
'slavename': 'fooslave',
'builddir': 'footest2',
'factory': footest2,
'locks': [getRLock('foobuild')],
},
]
}}}
--
Ticket URL: <http://buildbot.net/trac/ticket/692#comment:2>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation
More information about the Commits
mailing list