Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • engine engine
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 26
    • Issues 26
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • AURA
  • engineengine
  • Issues
  • #71

Closed
Open
Created Jan 18, 2021 by david@davidOwner

Error "Duplicate entry for key 'timeslot_id'" due to trying to save existing timeslot

Try to schedule an timeslot before at least one schedule cycle.

 - [control.py:387-log_commands()]
2021-01-18 17:36:32,820:AuraEngine:INFO - == start fetching new timeslots (every 30 seconds) == - [scheduler.py:105-run()]
--- Logging error ---
Traceback (most recent call last):
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1283, in _execute_context
    self.dialect.do_execute(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 590, in do_execute
    cursor.execute(statement, parameters)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 250, in execute
    self.errorhandler(self, exc, value)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
    raise errorvalue
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 247, in execute
    res = self._query(query)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 411, in _query
    rowcount = self._do_query(q)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 374, in _do_query
    db.query(q)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/connections.py", line 277, in query
    _mysql.connection.query(self, query)
_mysql_exceptions.IntegrityError: (1062, "Duplicate entry '361' for key 'timeslot_id'")

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

Traceback (most recent call last):
  File "/home/david/Code/aura/engine/src/scheduling/scheduler.py", line 108, in run
    self.programme.refresh()
  File "/home/david/Code/aura/engine/src/scheduling/programme.py", line 79, in refresh
    self.timeslots = self.programme_store.store_timeslots(response)
  File "/home/david/Code/aura/engine/src/scheduling/programme.py", line 291, in store_timeslots
    timeslot_db = self.store_timeslot(timeslot)
  File "/home/david/Code/aura/engine/src/scheduling/programme.py", line 390, in store_timeslot
    timeslot_db.store(add=havetoadd, commit=True)
  File "/home/david/Code/aura/engine/src/scheduling/models.py", line 77, in store
    DB.session.commit()
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 1042, in commit
    self.transaction.commit()
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 504, in commit
    self._prepare_impl()
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 483, in _prepare_impl
    self.session.flush()
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 2523, in flush
    self._flush(objects)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 2664, in _flush
    transaction.rollback(_capture_exception=True)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 178, in raise_
    raise exception
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 2624, in _flush
    flush_context.execute()
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 422, in execute
    rec.execute(self)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 586, in execute
    persistence.save_obj(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 239, in save_obj
    _emit_insert_statements(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 1135, in _emit_insert_statements
    result = cached_connections[connection].execute(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1020, in execute
    return meth(self, multiparams, params)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1133, in _execute_clauseelement
    ret = self._execute_context(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1323, in _execute_context
    self._handle_dbapi_exception(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1517, in _handle_dbapi_exception
    util.raise_(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 178, in raise_
    raise exception
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1283, in _execute_context
    self.dialect.do_execute(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 590, in do_execute
    cursor.execute(statement, parameters)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 250, in execute
    self.errorhandler(self, exc, value)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
    raise errorvalue
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 247, in execute
    res = self._query(query)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 411, in _query
    rowcount = self._do_query(q)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 374, in _do_query
    db.query(q)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/connections.py", line 277, in query
    _mysql.connection.query(self, query)
sqlalchemy.exc.IntegrityError: (_mysql_exceptions.IntegrityError) (1062, "Duplicate entry '361' for key 'timeslot_id'")
[SQL: INSERT INTO timeslot (playlist_id, default_schedule_playlist_id, default_show_playlist_id, schedule_fallback_id, show_fallback_id, station_fallback_id, timeslot_start, timeslot_end, timeslot_id, show_id, show_name, show_hosts, funding_category, comment, languages, type, category, topic, musicfocus, is_repetition) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (None, None, 9, None, None, None, '2021-01-18T17:38:00', '2021-01-18T17:40:00', 361, 1, 'Musikprogramm', 'Musikredaktion', 'Standard', None, 'Farsi', 'Unmoderiertes Musikprogramm', '', '', '', 0)]
(Background on this error at: http://sqlalche.me/e/gkpj)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/__init__.py", line 1081, in emit
    msg = self.format(record)
  File "/usr/lib/python3.8/logging/__init__.py", line 925, in format
    return fmt.format(record)
  File "/usr/lib/python3.8/logging/__init__.py", line 664, in format
    record.message = record.getMessage()
  File "/usr/lib/python3.8/logging/__init__.py", line 369, in getMessage
    msg = msg % self.args
TypeError: not enough arguments for format string
Call stack:
  File "/home/david/.vscode/extensions/ms-python.python-2020.12.424452561/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py", line 916, in __call__
    ret = self.original_func(*self.args, **self.kwargs)
  File "/usr/lib/python3.8/threading.py", line 890, in _bootstrap
    self._bootstrap_inner()
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/home/david/Code/aura/engine/src/scheduling/scheduler.py", line 115, in run
    self.logger.critical(SU.red(f"Unhandled error while fetching & scheduling new programme! ({str(e)})"), e)
Message: '\x1b[31mUnhandled error while fetching & scheduling new programme! ((_mysql_exceptions.IntegrityError) (1062, "Duplicate entry \'361\' for key \'timeslot_id\'")\n[SQL: INSERT INTO timeslot (playlist_id, default_schedule_playlist_id, default_show_playlist_id, schedule_fallback_id, show_fallback_id, station_fallback_id, timeslot_start, timeslot_end, timeslot_id, show_id, show_name, show_hosts, funding_category, comment, languages, type, category, topic, musicfocus, is_repetition) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]\n[parameters: (None, None, 9, None, None, None, \'2021-01-18T17:38:00\', \'2021-01-18T17:40:00\', 361, 1, \'Musikprogramm\', \'Musikredaktion\', \'Standard\', None, \'Farsi\', \'Unmoderiertes Musikprogramm\', \'\', \'\', \'\', 0)]\n(Background on this error at: http://sqlalche.me/e/gkpj))\x1b[0m'
Arguments: (IntegrityError('(_mysql_exceptions.IntegrityError) (1062, "Duplicate entry \'361\' for key \'timeslot_id\'")'),)
--- Logging error ---
Traceback (most recent call last):
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1283, in _execute_context
    self.dialect.do_execute(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 590, in do_execute
    cursor.execute(statement, parameters)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 250, in execute
    self.errorhandler(self, exc, value)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
    raise errorvalue
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 247, in execute
    res = self._query(query)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 411, in _query
    rowcount = self._do_query(q)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 374, in _do_query
    db.query(q)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/connections.py", line 277, in query
    _mysql.connection.query(self, query)
_mysql_exceptions.IntegrityError: (1062, "Duplicate entry '361' for key 'timeslot_id'")

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

Traceback (most recent call last):
  File "/home/david/Code/aura/engine/src/scheduling/scheduler.py", line 108, in run
    self.programme.refresh()
  File "/home/david/Code/aura/engine/src/scheduling/programme.py", line 79, in refresh
    self.timeslots = self.programme_store.store_timeslots(response)
  File "/home/david/Code/aura/engine/src/scheduling/programme.py", line 291, in store_timeslots
    timeslot_db = self.store_timeslot(timeslot)
  File "/home/david/Code/aura/engine/src/scheduling/programme.py", line 390, in store_timeslot
    timeslot_db.store(add=havetoadd, commit=True)
  File "/home/david/Code/aura/engine/src/scheduling/models.py", line 77, in store
    DB.session.commit()
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 1042, in commit
    self.transaction.commit()
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 504, in commit
    self._prepare_impl()
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 483, in _prepare_impl
    self.session.flush()
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 2523, in flush
    self._flush(objects)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 2664, in _flush
    transaction.rollback(_capture_exception=True)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 178, in raise_
    raise exception
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 2624, in _flush
    flush_context.execute()
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 422, in execute
    rec.execute(self)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 586, in execute
    persistence.save_obj(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 239, in save_obj
    _emit_insert_statements(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 1135, in _emit_insert_statements
    result = cached_connections[connection].execute(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1020, in execute
    return meth(self, multiparams, params)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1133, in _execute_clauseelement
    ret = self._execute_context(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1323, in _execute_context
    self._handle_dbapi_exception(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1517, in _handle_dbapi_exception
    util.raise_(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 178, in raise_
    raise exception
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1283, in _execute_context
    self.dialect.do_execute(
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 590, in do_execute
    cursor.execute(statement, parameters)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 250, in execute
    self.errorhandler(self, exc, value)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler
    raise errorvalue
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 247, in execute
    res = self._query(query)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 411, in _query
    rowcount = self._do_query(q)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/cursors.py", line 374, in _do_query
    db.query(q)
  File "/home/david/Code/aura/engine/python/lib/python3.8/site-packages/MySQLdb/connections.py", line 277, in query
    _mysql.connection.query(self, query)
sqlalchemy.exc.IntegrityError: (_mysql_exceptions.IntegrityError) (1062, "Duplicate entry '361' for key 'timeslot_id'")
[SQL: INSERT INTO timeslot (playlist_id, default_schedule_playlist_id, default_show_playlist_id, schedule_fallback_id, show_fallback_id, station_fallback_id, timeslot_start, timeslot_end, timeslot_id, show_id, show_name, show_hosts, funding_category, comment, languages, type, category, topic, musicfocus, is_repetition) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]
[parameters: (None, None, 9, None, None, None, '2021-01-18T17:38:00', '2021-01-18T17:40:00', 361, 1, 'Musikprogramm', 'Musikredaktion', 'Standard', None, 'Farsi', 'Unmoderiertes Musikprogramm', '', '', '', 0)]
(Background on this error at: http://sqlalche.me/e/gkpj)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.8/logging/__init__.py", line 1081, in emit
    msg = self.format(record)
  File "/usr/lib/python3.8/logging/__init__.py", line 925, in format
    return fmt.format(record)
  File "/usr/lib/python3.8/logging/__init__.py", line 664, in format
    record.message = record.getMessage()
  File "/usr/lib/python3.8/logging/__init__.py", line 369, in getMessage
    msg = msg % self.args
TypeError: not enough arguments for format string
Call stack:
  File "/home/david/.vscode/extensions/ms-python.python-2020.12.424452561/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydev_bundle/pydev_monkey.py", line 916, in __call__
    ret = self.original_func(*self.args, **self.kwargs)
  File "/usr/lib/python3.8/threading.py", line 890, in _bootstrap
    self._bootstrap_inner()
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/home/david/Code/aura/engine/src/scheduling/scheduler.py", line 115, in run
    self.logger.critical(SU.red(f"Unhandled error while fetching & scheduling new programme! ({str(e)})"), e)
Message: '\x1b[31mUnhandled error while fetching & scheduling new programme! ((_mysql_exceptions.IntegrityError) (1062, "Duplicate entry \'361\' for key \'timeslot_id\'")\n[SQL: INSERT INTO timeslot (playlist_id, default_schedule_playlist_id, default_show_playlist_id, schedule_fallback_id, show_fallback_id, station_fallback_id, timeslot_start, timeslot_end, timeslot_id, show_id, show_name, show_hosts, funding_category, comment, languages, type, category, topic, musicfocus, is_repetition) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)]\n[parameters: (None, None, 9, None, None, None, \'2021-01-18T17:38:00\', \'2021-01-18T17:40:00\', 361, 1, \'Musikprogramm\', \'Musikredaktion\', \'Standard\', None, \'Farsi\', \'Unmoderiertes Musikprogramm\', \'\', \'\', \'\', 0)]\n(Background on this error at: http://sqlalche.me/e/gkpj))\x1b[0m'
Arguments: (IntegrityError('(_mysql_exceptions.IntegrityError) (1062, "Duplicate entry \'361\' for key \'timeslot_id\'")'),)
Edited Jan 18, 2021 by david
Assignee
Assign to
Time tracking