#325 Update sync fails if update title is too long
Closed: Fixed None Opened 11 years ago by tflink.

= bug description =
If an update's title is too long, it won't fit into the database field (currently 2048 characters long) and the sync crashes prior to completing.

[https://admin.fedoraproject.org/updates/FEDORA-2012-20337/ A recent ocaml update caused this bug to surface]

= bug analysis =
At the moment, the tracker's sync operation fails 100% of the time since the previously mentioned ocaml update is marked as an NTH fix.

= fix recommendation =

This should be fixed properly, but at this point I'm just planning to do a dirty hack of checking the title's length against a hardcoded value and truncating it if it's too long.

This is the wrong way to fix the issue and I suspect that it'll cause problems with link formation to bodhi but it needs to be fixed well enough now so that sync doesn't crash midway through.


a dirty quick fix was pushed to master 91ffd7c1a59757baa0dbb582fd351164b5a9313d

pushed to production on 2012-12-17

This is fixed for now but it isn't a real fix. Changing priority to be appropriate

The exact TB seen in production during sync is:
{{{
Traceback (most recent call last):
File "sync_db.py", line 113, in <module>
update_sync.full_sync_updates(release)
File "/home/blockerbugs/fedora-qa/blockerbugs/blockerbugs/util/update_sync.py", line 186, in full_sync_updates
self.sync_bug_updates(release, bugs)
File "/home/blockerbugs/fedora-qa/blockerbugs/blockerbugs/util/update_sync.py", line 176, in sync_bug_updates
self.db.session.commit()
File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/orm/scoping.py", line 114, in do
return getattr(self.registry(), name)(args, *kwargs)
File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/orm/session.py", line 656, in commit
self.transaction.commit()
File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/orm/session.py", line 314, in commit
self._prepare_impl()
File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/orm/session.py", line 298, in _prepare_impl
self.session.flush()
File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/orm/session.py", line 1583, in flush
self._flush(objects)
File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/orm/session.py", line 1654, in _flush
flush_context.execute()
File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/orm/unitofwork.py", line 331, in execute
rec.execute(self)
File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/orm/unitofwork.py", line 475, in execute
uow
File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/orm/persistence.py", line 64, in save_obj
table, insert)
File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/orm/persistence.py", line 558, in _emit_insert_statements
execute(statement, params)
File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py", line 1449, in execute
params)
File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py", line 1584, in _execute_clauseelement
compiled_sql, distilled_params
File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py", line 1698, in _execute_context
context)
File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/engine/base.py", line 1691, in _execute_context
context)
File "/usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/engine/default.py", line 331, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.DataError: (DataError) value too long for type character varying(1024)
'INSERT INTO update (title, url, karma, stable_karma, status, pending, date_submitted, date_pushed_testing, date_pushed_stable, date_obsoleted, release_id) VALUES (%(title)s, %(url)s, %(karma)s, %(stable_karma)s, %(status)s, %(pending)s, %(date_submitted)s, %(date_pushed_testing)s, %(date_pushed_stable)s, %(date_obsoleted)s, %(release_id)s) RETURNING update.id' {'status': 'testing', 'stable_karma': 3, 'release_id': 1, 'title': 'plplot-5.9.9-12.svn12202.fc18,kalzium-4.9.4-2.fc18,why-2.31-4.fc18,unison213-2.13.16-20.fc18,unison227-2.27.57-19.fc18,unison240-2.40.102-2.fc18,llvm-3.1-12.fc18,cduce-0.5.5-3.fc18,why3-0.73-3.fc18,graphviz-2.28.0-24.fc18,frama-c-1.8-4.fc18,brltty-4.3-10.fc18,hivex-1.3.7-2.fc18,virt-top-1.0.8-3.fc18,virt-dmesg-0.3.0-6.fc18,whenjobs-0.7.3-4.fc18,coccinelle-1.0.0-0.rc14.6.fc18,js-of-ocaml-1.2-2.fc18,ocaml-preludeml-0.1-0.22.20100314.fc18,ocaml-gettext-0.3.4-8.fc18,ocaml-xmlrpc-light-0.6.1-11.fc18,ocaml-pxp-1.2.3-5.fc18,ocaml-json-wheel-1.0.6-10.fc18,ocaml-sexplib-7.0.5-4.fc18,ocaml-lwt-2.4.2-1.fc18,ocaml-reins-0.1a-14.fc18,ocaml-bin-prot-2.0.9-3.fc18,ocaml-ocamlnet-3.5.1-4.fc18,ocaml-fileutils-0.4.4-4.fc18,ocaml-pgocaml-1.6-2.fc18,ocaml-pa-do-0.8.15-1.fc18,ocaml-perl4caml-0.9.5-23.fc18,ocaml-ounit-1.1.2-4.fc18,ocaml-ssl-0.4.6-5.fc18,ocaml-pcre-7.0.2-2.fc18,ocaml-ulex-1.1-15.fc18,ocaml-openin-20070524-16.fc18,ocaml-sqlite-1.6.3-3.fc18,ocaml-xml-light-2.3-0.3.svn234.fc18,ocaml-zip-1.04-10.fc18,ocaml-type-conv-3.0.5-3.fc18,ocaml-p3l-2.03-12.fc18,ocaml-react-0.9.4-1.fc18,ocaml-res-3.2.0-10.fc18,ocaml-pa-monad-6.0-10.fc18,ocaml-postgresql-2.0.2-1.fc18,ocaml-SDL-0.8.0-7.fc18,ocaml-csv-1.2.3-3.fc18,ocaml-libvirt-0.6.1.2-6.fc18,ocaml-newt-0.9-14.fc18,ocaml-mysql-1.1.1-1.fc18,ocaml-gsl-0.6.0-16.fc18,ocaml-lacaml-7.0.3-1.fc18,ocaml-json-static-0.9.8-8.fc18,ocaml-curl-0.5.3-7.fc18,ocaml-cryptokit-1.6-3.fc18,ocaml-curses-1.0.3-15.fc18,ocaml-deriving-0.1.1a-17.fc18,ocaml-dbus-0.29-6.fc18,ocaml-expat-0.9.1-24.fc18,ocaml-facile-1.1-19.fc18,ocaml-cil-1.4.0-6.fc18,ocaml-camomile-0.8.3-10.fc18,ocaml-extlib-1.5.3-2.fc18,ocaml-camlimages-4.0.1-7.fc18,ocaml-calendar-2.03.2-2.fc18,ocaml-cairo-1.2.0-0.8.git08b40192975.fc18,ocaml-bitstring-2.0.3-5.fc18,ocaml-bisect-1.1-4.fc18,ocaml-augeas-0.5-3.fc18,ocaml-ancient-0.9.0-10.fc18,zenon-0.7.1-3.fc18,ocaml-zarith-1.1-3.fc18,ocaml-ocamlgraph-1.8.2-2.fc18,ocaml-mlgmpidl-1.2.1-0.2.20120830.fc18,ocaml-menhir-20120123-5.fc18,gappalib-coq-0.18.0-5.fc18,coq-8.4-3.fc18,apron-0.9.10-9.fc18,alt-ergo-0.', 'url': 'https://admin.fedoraproject.org/updates/plplot-5.9.9-12.svn12202.fc18,kalzium-4.9.4-2.fc18,why-2.31-4.fc18,unison213-2.13.16-20.fc18,unison227-2.27.57-19.fc18,unison240-2.40.102-2.fc18,llvm-3.1-12.fc18,cduce-0.5.5-3.fc18,why3-0.73-3.fc18,graphviz-2.28.0-24.fc18,frama-c-1.8-4.fc18,brltty-4.3-10.fc18,hivex-1.3.7-2.fc18,virt-top-1.0.8-3.fc18,virt-dmesg-0.3.0-6.fc18,whenjobs-0.7.3-4.fc18,coccinelle-1.0.0-0.rc14.6.fc18,js-of-ocaml-1.2-2.fc18,ocaml-preludeml-0.1-0.22.20100314.fc18,ocaml-gettext-0.3.4-8.fc18,ocaml-xmlrpc-light-0.6.1-11.fc18,ocaml-pxp-1.2.3-5.fc18,ocaml-json-wheel-1.0.6-10.fc18,ocaml-sexplib-7.0.5-4.fc18,ocaml-lwt-2.4.2-1.fc18,ocaml-reins-0.1a-14.fc18,ocaml-bin-prot-2.0.9-3.fc18,ocaml-ocamlnet-3.5.1-4.fc18,ocaml-fileutils-0.4.4-4.fc18,ocaml-pgocaml-1.6-2.fc18,ocaml-pa-do-0.8.15-1.fc18,ocaml-perl4caml-0.9.5-23.fc18,ocaml-ounit-1.1.2-4.fc18,ocaml-ssl-0.4.6-5.fc18,ocaml-pcre-7.0.2-2.fc18,ocaml-ulex-1.1-15.fc18,ocaml-openin-20070524-16.fc18,ocaml-sqlite-1.6.3-3.fc18,ocaml-xml-light-2.3-0.3.svn234.fc18,ocaml-zip-1.04-10.fc18,ocaml-type-conv-3.0.5-3.fc18,ocaml-p3l-2.03-12.fc18,ocaml-react-0.9.4-1.fc18,ocaml-res-3.2.0-10.fc18,ocaml-pa-monad-6.0-10.fc18,ocaml-postgresql-2.0.2-1.fc18,ocaml-SDL-0.8.0-7.fc18,ocaml-csv-1.2.3-3.fc18,ocaml-libvirt-0.6.1.2-6.fc18,ocaml-newt-0.9-14.fc18,ocaml-mysql-1.1.1-1.fc18,ocaml-gsl-0.6.0-16.fc18,ocaml-lacaml-7.0.3-1.fc18,ocaml-json-static-0.9.8-8.fc18,ocaml-curl-0.5.3-7.fc18,ocaml-cryptokit-1.6-3.fc18,ocaml-curses-1.0.3-15.fc18,ocaml-deriving-0.1.1a-17.fc18,ocaml-dbus-0.29-6.fc18,ocaml-expat-0.9.1-24.fc18,ocaml-facile-1.1-19.fc18,ocaml-cil-1.4.0-6.fc18,ocaml-camomile-0.8.3-10.fc18,ocaml-extlib-1.5.3-2.fc18,ocaml-camlimages-4.0.1-7.fc18,ocaml-calendar-2.03.2-2.fc18,ocaml-cairo-1.2.0-0.8.git08b40192975.fc18,ocaml-bitstring-2.0.3-5.fc18,ocaml-bisect-1.1-4.fc18,ocaml-augeas-0.5-3.fc18,ocaml-ancient-0.9.0-10.fc18,zenon-0.7.1-3.fc18,ocaml-zarith-1.1-3.fc18,ocaml-ocamlgraph-1.8.2-2.fc18,ocaml-mlgmpidl-1.2.1-0.2.20120830.fc18,ocaml-menhir-20120123-5.fc18,gappalib-coq-0.18.0-5.fc18,coq-8.4-3.fc18,apron-0.9.10-9.fc18,alt-ergo-0.', 'date_pushed_testing': datetime.datetime(2012, 12, 14, 6, 37, 20), 'date_submitted': datetime.datetime(2012, 12, 13, 17, 4, 57), 'date_obsoleted': None, 'karma': 1, 'date_pushed_stable': None, 'pending': None}
}}}

Log in to comment on this ticket.

Metadata