#84 Push to pagure fails
Opened 7 years ago by cverna. Modified 7 years ago

While importing rel-eng issue to pagure the following stack was thrown

remote: To load: 11483f88b72c4063aa4e06ced54d7292
remote: Traceback (most recent call last):
remote: File "./hooks/post-receive.pagure-ticket", line 105, in <module>
remote: main(sys.argv[1:])
remote: File "./hooks/post-receive.pagure-ticket", line 101, in main
remote: run_as_post_receive_hook()
remote: File "./hooks/post-receive.pagure-ticket", line 97, in run_as_post_receive_hook
remote: json_data=json_data)
remote: File "/usr/lib/python2.7/site-packages/pagure/lib/git.py", line 436, in update_ticket_from_git
remote: user = get_user_from_json(session, json_data)
remote: File "/usr/lib/python2.7/site-packages/pagure/lib/git.py", line 348, in get_user_from_json
remote: keydir=pagure.APP.config.get('GITOLITE_KEYDIR', None),
remote: File "/usr/lib/python2.7/site-packages/pagure/lib/init.py", line 2267, in set_up_user
remote: session.flush()
remote: File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/scoping.py", line 150, in do
remote: return getattr(self.registry(), name)(args, *kwargs)
remote: File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 1919, in flush
remote: self._flush(objects)
remote: File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 2037, in _flush
remote: transaction.rollback(_capture_exception=True)
remote: File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 60, in exit
remote: compat.reraise(exc_type, exc_value, exc_tb)
remote: File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 2001, in _flush
remote: flush_context.execute()
remote: File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 372, in execute
remote: rec.execute(self)
remote: File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 526, in execute
remote: uow
remote: File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 65, in save_obj
remote: mapper, table, insert)
remote: File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 602, in _emit_insert_statements
remote: execute(statement, params)
remote: File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 729, in execute
remote: return meth(self, multiparams, params)
remote: File "/usr/lib64/python2.7/site-packages/sqlalchemy/sql/elements.py", line 322, in _execute_on_connection
remote: return connection._execute_clauseelement(self, multiparams, params)
remote: File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 826, in _execute_clauseelement
remote: compiled_sql, distilled_params
remote: File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 958, in _execute_context
remote: context)
remote: File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1159, in _handle_dbapi_exception
remote: exc_info
remote: File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause
remote: reraise(type(exception), exception, tb=exc_tb)
remote: File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 951, in _execute_context
remote: context)
remote: File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 436, in do_execute
remote: cursor.execute(statement, parameters)
remote: sqlalchemy.exc.DataError: (DataError) value too long for type character varying(32)
remote: 'INSERT INTO users ("user", fullname, public_ssh_key, default_email, _settings, password, token, created, updated_on) VALUES (%(user)s, %(fullname)s, %(public_ssh_key)s, %(default_email)s, %(_settings)s, %(password)s, %(token)s, now(), now()) RETURNING users.id' {'public_ssh_key': None, 'password': None, '_settings': None, 'token': None, 'user': u'Andreas Bierfert andreas.bierfert@lowlatency.de', 'fullname': u'Andreas Bierfert andreas.bierfert@lowlatency.de', 'default_email': u'Andreas Bierfert andreas.bierfert@lowlatency.de@fedoraproject.org'}
remote: Hook ./hooks/post-receive.pagure-ticket failed with error code 1


This is likely the user field (note that the default_email seems to be wrong as well, or rather, unexpected)

So, this looks like several tickets... which where filed long ago by email2trac. Yes, we used to allow email to open trac tickets. ;(

https://fedorahosted.org/rel-eng/ticket/151
https://fedorahosted.org/rel-eng/ticket/152
https://fedorahosted.org/rel-eng/ticket/163
https://fedorahosted.org/rel-eng/ticket/165
https://fedorahosted.org/rel-eng/ticket/242

There may be others. Likely so.

So, instead of reporter being an account name, it's a full email address. ;(

I am really not sure what we can do here. We could look for @ in the reporter name and just change it to 'nobody' ? Or we could try and parse it out and look up that user? Nothing good leaps to mind.

Login to comment on this ticket.

Metadata