louking / rrwebapp

Race Results Web Application
0 stars 1 forks source link

import results: IntegrityError: (MySQLdb._exceptions.IntegrityError) (1452, 'Cannot add or update a child row: a foreign key constraint fails (`scoretilitysandbox`.`managedresult`, CONSTRAINT `managedresult_ibfk_3` FOREIGN KEY (`runnerid`) REFERENCES `runner` (`id`))') #494

Open louking opened 3 years ago

louking commented 3 years ago

Tried to upload results for 2021 2 mile decathlon a second time and this was the result. This occurred on sandbox but not development environment.

Traceback (most recent call last):
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1707, in _execute_context
    cursor, statement, parameters, context
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/engine/default.py", line 716, in do_execute
    cursor.execute(statement, parameters)
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py", line 206, in execute
    res = self._query(query)
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py", line 319, in _query
    db.query(q)
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/MySQLdb/connections.py", line 259, in query
    _mysql.connection.query(self, query)
MySQLdb._exceptions.IntegrityError: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`scoretilitysandbox`.`managedresult`, CONSTRAINT `managedresult_ibfk_3` FOREIGN KEY (`runnerid`) REFERENCES `runner` (`id`))')

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/var/www/sandbox.scoretility.com/rrwebapp/rrwebapp/tasks.py", line 157, in importresultstask
    db.session.commit()
  File "<string>", line 2, in commit
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/orm/session.py", line 1423, in commit
    self._transaction.commit(_to_root=self.future)
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/orm/session.py", line 829, in commit
    self._prepare_impl()
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/orm/session.py", line 808, in _prepare_impl
    self.session.flush()
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/orm/session.py", line 3255, in flush
    self._flush(objects)
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/orm/session.py", line 3395, in _flush
    transaction.rollback(_capture_exception=True)
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 72, in __exit__
    with_traceback=exc_tb,
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
    raise exception
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/orm/session.py", line 3355, in _flush
    flush_context.execute()
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 453, in execute
    rec.execute(self)
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 630, in execute
    uow,
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 247, in save_obj
    insert,
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 1222, in _emit_insert_statements
    execution_options=execution_options,
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1521, in _execute_20
    return meth(self, args_10style, kwargs_10style, execution_options)
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/sql/elements.py", line 314, in _execute_on_connection
    self, multiparams, params, execution_options
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1400, in _execute_clauseelement
    cache_hit=cache_hit,
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1750, in _execute_context
    e, statement, parameters, cursor, context
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1931, in _handle_dbapi_exception
    sqlalchemy_exception, with_traceback=exc_info[2], from_=e
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
    raise exception
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/engine/base.py", line 1707, in _execute_context
    cursor, statement, parameters, context
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/sqlalchemy/engine/default.py", line 716, in do_execute
    cursor.execute(statement, parameters)
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py", line 206, in execute
    res = self._query(query)
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/MySQLdb/cursors.py", line 319, in _query
    db.query(q)
  File "/var/www/sandbox.scoretility.com/venv/lib64/python3.6/site-packages/MySQLdb/connections.py", line 259, in query
    _mysql.connection.query(self, query)
sqlalchemy.exc.IntegrityError: (MySQLdb._exceptions.IntegrityError) (1452, 'Cannot add or update a child row: a foreign key constraint fails (`scoretilitysandbox`.`managedresult`, CONSTRAINT `managedresult_ibfk_3` FOREIGN KEY (`runnerid`) REFERENCES `runner` (`id`))')
[SQL: INSERT INTO managedresult (club_id, raceid, place, name, fname, lname, gender, age, city, state, hometown, club, `time`, runnerid, initialdisposition, confirmed) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (2, 48271, 10, 'Val Powell', 'Val', 'Powell', 'F', 31, None, None, None, None, 1159.0, 4450, 'definite', 1)]
(Background on this error at: http://sqlalche.me/e/14/gkpj)
louking commented 3 years ago

This isn't reproducible consistently. In addition, sometimes in edit participants, immediately after changing a standings name pulldown, I see a similar integrity error for exclusion_ibfk_2.

Feels like the database is lagging, or that the sqlalchemy memory in the application is lagging. Not sure if that makes any sense, though