unitofwork heisenbug

Issue #1044 resolved
jek created an issue

need to investigate this heisenbug:

$ python test/orm/query.py TestOverlyEagerEquivalentCols --db=postgres
test_equivs (__main__.TestOverlyEagerEquivalentCols) ... ERROR

======================================================================
ERROR: test_equivs (__main__.TestOverlyEagerEquivalentCols)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test/orm/query.py", line 2088, in test_equivs
    sess.flush()
  File "/home/jek/projects/oss/src/sa-trunk/lib/sqlalchemy/orm/session.py", line 1297, in flush
    flush_context.execute()
  File "/home/jek/projects/oss/src/sa-trunk/lib/sqlalchemy/orm/unitofwork.py", line 268, in execute
    UOWExecutor().execute(self, tasks)
  File "/home/jek/projects/oss/src/sa-trunk/lib/sqlalchemy/orm/unitofwork.py", line 754, in execute
    self.execute_save_steps(trans, task)
  File "/home/jek/projects/oss/src/sa-trunk/lib/sqlalchemy/orm/unitofwork.py", line 769, in execute_save_steps
    self.save_objects(trans, task)
  File "/home/jek/projects/oss/src/sa-trunk/lib/sqlalchemy/orm/unitofwork.py", line 760, in save_objects
    task.mapper._save_obj(task.polymorphic_tosave_objects, trans)
  File "/home/jek/projects/oss/src/sa-trunk/lib/sqlalchemy/orm/mapper.py", line 1151, in _save_obj
    c = connection.execute(statement.values(value_params), params)
  File "/home/jek/projects/oss/src/sa-trunk/lib/sqlalchemy/engine/base.py", line 844, in execute
    return Connection.executors[c](c)(self, object, multiparams, params)
  File "/home/jek/projects/oss/src/sa-trunk/lib/sqlalchemy/engine/base.py", line 895, in execute_clauseelement
    return self._execute_compiled(elem.compile(dialect=self.dialect, column_keys=keys, inline=len(params) > 1), distilled_params=params)
  File "/home/jek/projects/oss/src/sa-trunk/lib/sqlalchemy/engine/base.py", line 907, in _execute_compiled
    self.__execute_raw(context)
  File "/home/jek/projects/oss/src/sa-trunk/lib/sqlalchemy/engine/base.py", line 916, in __execute_raw
    self._cursor_execute(context.cursor, context.statement, context.parameters[0](0), context=context)
  File "/home/jek/projects/oss/src/sa-trunk/lib/sqlalchemy/engine/base.py", line 960, in _cursor_execute
    self._handle_dbapi_exception(e, statement, parameters, cursor)
  File "/home/jek/projects/oss/src/sa-trunk/lib/sqlalchemy/engine/base.py", line 942, in _handle_dbapi_exception
    raise exc.DBAPIError.instance(statement, parameters, e, connection_invalidated=is_disconnect)
IntegrityError: (IntegrityError) insert or update on table "sub2" violates foreign key constraint "sub2_id_fkey1"
DETAIL:  Key (id)=(2) is not present in table "sub1".
 'INSERT INTO sub2 (id, data) VALUES (%(id)s, %(data)s)' {'data': 's2', 'id': 2L}

$ python test/orm/query.py TestOverlyEagerEquivalentCols --db=postgres --log-debug=sqlalchemy.engine
OK

Comments (2)

  1. Log in to comment