[Buildbot-commits] [Buildbot] #2587: Buildbot doesn't accept changes done by the same user for different repositories
Buildbot trac
trac at buildbot.net
Sat Nov 16 10:52:24 UTC 2013
#2587: Buildbot doesn't accept changes done by the same user for different
repositories
-----------------------+----------------------------
Reporter: jollyroger | Owner:
Type: defect | Status: new
Priority: major | Milestone: undecided
Version: 0.8.8 | Keywords: database users
-----------------------+----------------------------
If you try to push two similar changes (for example, with changesource
command) that differ only by VCS type (passed as --vc argument, for
example, git and svn), the second one won't be added and master will raise
the following exception:
{{{
2013-11-16 00:39:36+0200 [Broker,1,127.0.0.1] perspective_addChange called
2013-11-16 00:39:36+0200 [-] Peer will receive following PB traceback:
2013-11-16 00:39:36+0200 [-] Unhandled Error
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 781, in __bootstrap
self.__bootstrap_inner()
File "/usr/lib/python2.7/threading.py", line 808, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 761, in run
self.__target(*self.__args, **self.__kwargs)
--- <exception caught here> ---
File "/usr/lib/python2.7/dist-packages/twisted/python/threadpool.py", line
172, in _worker
result = context.call(ctx, function, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line
118, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line
81, in callWithContext
return func(*args,**kw)
File "/usr/lib/python2.7/dist-packages/buildbot/db/pool.py", line 184, in
__thd
rv = callable(arg, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/buildbot/db/users.py", line 67, in
thd
return thd(conn, no_recurse=True)
File "/usr/lib/python2.7/dist-packages/buildbot/db/users.py", line 52, in
thd
r = conn.execute(tbl.insert(), dict(identifier=identifier))
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line
662, in execute
params)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line
761, in _execute_clauseelement
compiled_sql, distilled_params
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line
874, in _execute_context
context)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line
1024, in _handle_dbapi_exception
exc_info
File "/usr/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line
196, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line
867, in _execute_context
context)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line
324, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.IntegrityError: (IntegrityError) column identifier is not
unique u'INSERT INTO users (identifier) VALUES (?)' (u'User Name
<user_name at example.com>',)
}}}
Database will not contain anything about second user as well as the change
info. Possible database contents:
{{{
#!sql
CREATE TABLE users (
uid INTEGER NOT NULL,
identifier VARCHAR(256) NOT NULL, bb_username VARCHAR(128), bb_password
VARCHAR(128),
PRIMARY KEY (uid)
);
INSERT INTO users VALUES(1,'User Name <user_name at example.com>',NULL,NULL);
CREATE TABLE users_info (
uid INTEGER NOT NULL,
attr_type VARCHAR(128) NOT NULL,
attr_data VARCHAR(128) NOT NULL,
FOREIGN KEY(uid) REFERENCES users (uid)
);
INSERT INTO users_info VALUES(1,'git','User Name
<user_name at example.com>');
}}}
Comments from djmitche:
basically, Buildbot's unable to find the git user with the svn
informatoin [[BR]]
but both have the same identifier[[BR]]
it really should invent a new and different identifier in that case
--
Ticket URL: <http://trac.buildbot.net/ticket/2587>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation
More information about the Commits
mailing list