[Buildbot] #3504: PosgreSQL foreign key error upon reconfigure
Buildbot trac
trac at buildbot.net
Fri Mar 25 15:48:51 UTC 2016
#3504: PosgreSQL foreign key error upon reconfigure
----------------------+-----------------------
Reporter: gracinet | Owner:
Type: undecided | Status: new
Priority: major | Milestone: undecided
Version: 0.9.0b7 | Keywords:
----------------------+-----------------------
Got this in a reconfigure (buildmaster DB is on PostgresSQL):
```
File "/srv/buildbot9/buildbot-
git/master/buildbot/data/builders.py", line 110, in updateBuilderList
masterid=masterid, builderid=builderid)
File "/srv/buildbot9/local/lib/python2.7/site-
packages/twisted/python/threadpool.py", line 246, in inContext
result = inContext.theWork()
File "/srv/buildbot9/local/lib/python2.7/site-
packages/twisted/python/threadpool.py", line 262, in <lambda>
inContext.theWork = lambda: context.call(ctx, func, *args,
**kw)
File "/srv/buildbot9/local/lib/python2.7/site-
packages/twisted/python/context.py", line 118, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args,
**kw)
File "/srv/buildbot9/local/lib/python2.7/site-
packages/twisted/python/context.py", line 81, in callWithContext
return func(*args,**kw)
File "/srv/buildbot9/buildbot-git/master/buildbot/db/pool.py",
line 174, in __thd
rv = callable(arg, *args, **kwargs)
File "/srv/buildbot9/buildbot-
git/master/buildbot/db/builders.py", line 96, in thd
& (tbl.c.masterid == masterid))))
File "/srv/buildbot9/local/lib/python2.7/site-
packages/sqlalchemy/engine/base.py", line 914, in execute
return meth(self, multiparams, params)
File "/srv/buildbot9/local/lib/python2.7/site-
packages/sqlalchemy/sql/elements.py", line 323, in _execute_on_connection
return connection._execute_clauseelement(self, multiparams,
params)
File "/srv/buildbot9/local/lib/python2.7/site-
packages/sqlalchemy/engine/base.py", line 1010, in _execute_clauseelement
compiled_sql, distilled_params
File "/srv/buildbot9/local/lib/python2.7/site-
packages/sqlalchemy/engine/base.py", line 1146, in _execute_context
context)
File "/srv/buildbot9/local/lib/python2.7/site-
packages/sqlalchemy/engine/base.py", line 1341, in _handle_dbapi_exception
exc_info
File "/srv/buildbot9/local/lib/python2.7/site-
packages/sqlalchemy/util/compat.py", line 200, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/srv/buildbot9/local/lib/python2.7/site-
packages/sqlalchemy/engine/base.py", line 1139, in _execute_context
context)
File "/srv/buildbot9/local/lib/python2.7/site-
packages/sqlalchemy/engine/default.py", line 450, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.IntegrityError: (psycopg2.IntegrityError) update or
delete on table "builder_masters" violates foreign key constraint
"configured_workers_buildermasterid_fkey" on table "configured_workers"
DETAIL: Key (id)=(157) is still referenced from table
"configured_workers".
[SQL: 'DELETE FROM builder_masters WHERE
builder_masters.builderid = %(builderid_1)s AND builder_masters.masterid =
%(masterid_1)s'] [parameters: {'builderid_1': 4, 'masterid_1': 1}]
2016-03-25 13:31:56+0100 [-] WARNING: reconfig partially applied; master
may malfunction
```
The strange part is I don't believe this reconfig removed any builder, but
it added some.
On top of that, it seems that builder removal either needs to
* use cascading deletes (but that would be apply in all cases)
* better be scheduled in that case
--
Ticket URL: <http://trac.buildbot.net/ticket/3504>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation
More information about the bugs
mailing list