Bug 963924 - database error "SAVEPOINT sa_savepoint_2 does not exist" when updating inventory
database error "SAVEPOINT sa_savepoint_2 does not exist" when updating inventory
Status: CLOSED INSUFFICIENT_DATA
Product: Beaker
Classification: Community
Component: scheduler (Show other bugs)
0.12
Unspecified Unspecified
unspecified Severity unspecified (vote)
: ---
: ---
Assigned To: beaker-dev-list
https://beaker.engineering.redhat.com...
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2013-05-16 15:11 EDT by Jeff Burke
Modified: 2016-05-31 15:48 EDT (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2016-05-31 15:48:25 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Jeff Burke 2013-05-16 15:11:32 EDT
Inventory task failed.

 On the client we received this:

:: [   LOG    ] :: Traceback (most recent call last):
:: [   LOG    ] :: File "./pushInventory.py", line 448, in <module>
:: [   LOG    ] :: main()
:: [   LOG    ] :: File "./pushInventory.py", line 444, in main
:: [   LOG    ] :: push_inventory("push", hostname, inventory)
:: [   LOG    ] :: File "./pushInventory.py", line 44, in push_inventory
:: [   LOG    ] :: resp = getattr(session, method)(hostname, inventory)
:: [   LOG    ] :: File "/usr/lib64/python2.6/xmlrpclib.py", line 1199, in __call__
:: [   LOG    ] :: return self.__send(self.__name, args)
:: [   LOG    ] :: File "/usr/lib64/python2.6/xmlrpclib.py", line 1489, in __request
:: [   LOG    ] :: verbose=self.__verbose
:: [   LOG    ] :: File "/usr/lib64/python2.6/xmlrpclib.py", line 1253, in request
:: [   LOG    ] :: return self._parse_response(h.getfile(), sock)
:: [   LOG    ] :: File "/usr/lib64/python2.6/xmlrpclib.py", line 1392, in _parse_response
:: [   LOG    ] :: return u.close()
:: [   LOG    ] :: File "/usr/lib64/python2.6/xmlrpclib.py", line 838, in close
:: [   LOG    ] :: raise Fault(**self._stack[0])
:: [   LOG    ] :: xmlrpclib.Fault: <Fault 1: "<class 'xmlrpclib.ProtocolError'>:<ProtocolError for beaker.engineering.redhat.com/client/: 500 Internal error>">

 On the server we received this:

2013-05-16 12:02:43,285 bkr.server.xmlrpccontroller ERROR Error handling XML-RPC method
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/bkr/server/xmlrpccontroller.py", line 54, in RPC2
    response = self.process_rpc(method,params)
  File "/usr/lib/python2.6/site-packages/bkr/server/xmlrpccontroller.py", line 43, in process_rpc
    response = obj(*params)
  File "/usr/lib/python2.6/site-packages/bkr/server/controllers.py", line 1850, in push
    return system.update(inventory)
  File "/usr/lib/python2.6/site-packages/bkr/server/model.py", line 2345, in update
    method(inventory[key])
  File "/usr/lib/python2.6/site-packages/bkr/server/model.py", line 2414, in updateDevices
    description = device['description'])
  File "/usr/lib/python2.6/site-packages/bkr/server/model.py", line 1451, in lazy_create
    session.commit()
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/scoping.py", line 139, in do
    return getattr(self.registry(), name)(*args, **kwargs)
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/session.py", line 614, in commit
    self.transaction.commit()
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/session.py", line 385, in commit
    self._prepare_impl()
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/session.py", line 369, in _prepare_impl
    self.session.flush()
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/session.py", line 1400, in flush
    self._flush(objects)
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/session.py", line 1487, in _flush
    transaction.rollback(_capture_exception=True)
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/session.py", line 411, in rollback
    transaction._rollback_impl()
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/orm/session.py", line 424, in _rollback_impl
    t[1].rollback()
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 1524, in rollback
    self._do_rollback()
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 1573, in _do_rollback
    self._savepoint, self._parent)
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 1113, in _rollback_to_savepoint_impl
    self.engine.dialect.do_rollback_to_savepoint(self, name)
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/default.py", line 290, in do_rollback_to_savepoint
    connection.execute(expression.RollbackToSavepointClause(name))
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 1191, in execute
    params)
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 1271, in _execute_clauseelement
    return self.__execute_context(context)
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 1302, in __execute_context
    context.parameters[0], context=context)
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 1401, in _cursor_execute
    context)
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 1394, in _cursor_execute
    context)
  File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/default.py", line 299, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 173, in execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
OperationalError: (OperationalError) (1305, 'SAVEPOINT sa_savepoint_2 does not exist') 'ROLLBACK TO SAVEPOINT sa_savepoint_2' ()


This was seen on two different jobs. J:417883 not J:4178843
Comment 2 Roman Joost 2016-05-31 15:48:25 EDT
Dear Jeff,

I'm closing this bug since we haven't seen this happening in recent times. Our log files only date back a few weeks, but I guess if it would have happened between Beaker 0.12 this bug would have probably escalated quicker.

If it *does* happen again tho, don't hesitate to open it and we'll investigate. My apologies if looking at this problem didn't happen earlier.

Note You need to log in before you can comment on or make changes to this bug.