Bug 1054472

Summary: Deleting multiSRPM build leads to Internal Server Error
Product: [Community] Copr Reporter: Miro Hrončok <mhroncok>
Component: frontendAssignee: Richard Marko <rmarko>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: jberan, rmarko
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: git Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-02-06 08:32:03 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Miro Hrončok 2014-01-16 21:55:43 UTC
Description of problem:
When I try to delete a build with multiple SRPMs where some are fialed and some are not, I'm getting Internal Server Error.

Reproduced in http://copr.fedoraproject.org/coprs/churchyard/multiple-delete/builds/

Really care about 1101 and 1098.

Comment 1 Miroslav Suchý 2014-01-17 08:28:43 UTC
This is related traceback:
Message type:       ERROR
Location:           /usr/lib/python2.7/site-packages/flask/app.py:1306
Module:             app
Function:           log_exception
Time:               2014-01-16 21:33:34,967

Message:

Exception on /coprs/churchyard/epel7-3dprint/delete_build/1098/ [POST]
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/flask/app.py", line 1687, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/lib/python2.7/site-packages/flask/app.py", line 1360, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/lib/python2.7/site-packages/flask/app.py", line 1358, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python2.7/site-packages/flask/app.py", line 1344, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/share/copr/coprs_frontend/coprs/views/misc.py", line 114, in decorated_function
    return f(*args, **kwargs)
  File "/usr/share/copr/coprs_frontend/coprs/views/coprs_ns/coprs_builds.py", line 125, in copr_delete_build
    db.session.commit()
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/scoping.py", line 149, in do
    return getattr(self.registry(), name)(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 721, in commit
    self.transaction.commit()
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 354, in commit
    self._prepare_impl()
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 334, in _prepare_impl
    self.session.flush()
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 1818, in flush
    self._flush(objects)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 1936, in _flush
    transaction.rollback(_capture_exception=True)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 58, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 1900, in _flush
    flush_context.execute()
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 372, in execute
    rec.execute(self)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 525, in execute
    uow
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 64, in save_obj
    table, insert)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 569, in _emit_insert_statements
    execute(statement, params)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 662, in execute
    params)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 761, in _execute_clauseelement
    compiled_sql, distilled_params
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 874, in _execute_context
    context)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1024, in _handle_dbapi_exception
    exc_info
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 196, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 867, in _execute_context
    context)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 324, in do_execute
    cursor.execute(statement, parameters)
DataError: (DataError) value too long for type character varying(255)
 'INSERT INTO action (action_type, object_type, object_id, old_value, new_value, result, message, created_on, ended_on) VALUES (%(action_type)s, %(object_type)s, %(object_id)s, %(old_value)s, %(new_value)s, %(result)s, %(message)s, %(created_on)s, %(ended_on)s) RETURNING action.id' {'object_type': 'build', 'old_value': 'churchyard/epel7-3dprint', 'object_id': 1098, 'created_on': 1389908014, 'ended_on': None, 'result': 0, 'action_type': 0, 'new_value': u'http://kojipkgs.fedoraproject.org/packages/argtable/2.13/5.fc21/src/argtable-2.13-5.fc21.src.rpm http://kojipkgs.fedoraproject.org/packages/uthash/1.9.8/4.fc20/src/uthash-1.9.8-4.fc20.src.rpm http://kojipkgs.fedoraproject.org/packages/opencv/2.4.7/3.fc21/src/opencv-2.4.7-3.fc21.src.rpm', 'message': None}

Comment 2 Miro Hrončok 2014-01-17 13:22:02 UTC
The packages are deleted, it only stays there in builds and monitor

Comment 3 Richard Marko 2014-01-23 15:14:58 UTC
commit f209aee7eefa33dcd8798b518962bc93bc93140f
Author: Richard Marko <rmarko>
Date:   Mon Jan 20 16:23:12 2014 +0100

    1054472 - Fix deleting multiple SRPMs
    
    Adds Action.data column and fills it with SRPM list rather than
    mis-using 255 long new_value column.
    
    Signed-off-by: Richard Marko <rmarko>