Rasa X interactive learning locked database

tobias
(Nicholas Hamilton) #1

Getting a bug when running rasa x interactive learning, it gets stuck in this loop.

[SQL: UPDATE conversation SET number_user_messages=?, latest_event_time=? WHERE conversation.sender_id = ?]
[parameters: (1, 1561765551.79437, 'e4e12fe78a364e368f807aea42bc2a55')]
(Background on this error at: http://sqlalche.me/e/e3q8)
Caught an exception while consuming events. Will retry in 5s
Traceback (most recent call last):
  File "<DIR>/lib/python3.7/site-packages/rasax/community/services/event_service.py", line 924, in continuously_consume
    logs_service=_logs_service,
  File "<DIR>/lib/python3.7/site-packages/rasax/community/services/event_service.py", line 879, in __init__
    self.event_number = self._init_event_number()
  File "<DIR>/lib/python3.7/site-packages/rasax/community/services/event_service.py", line 883, in _init_event_number
    return self.event_store.get_latest_event_timestamp_and_event_number()[
  File "<DIR>/lib/python3.7/site-packages/rasax/community/services/event_service.py", line 213, in get_latest_event_timestamp_and_event_number
    existing = self.session.query(ConversationStatistic).first()
  File "<DIR>/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3215, in first
    ret = list(self[0:1])
  File "<DIR>/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3007, in __getitem__
    return list(res)
  File "<DIR>/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3317, in __iter__
    return self._execute_and_instances(context)
  File "<DIR>/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3339, in _execute_and_instances
    querycontext, self._connection_from_session, close_with_result=True
  File "<DIR>/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3354, in _get_bind_args
    mapper=self._bind_mapper(), clause=querycontext.statement, **kw
  File "<DIR>/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3332, in _connection_from_session
    conn = self.session.connection(**kw)
  File "<DIR>/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1123, in connection
    execution_options=execution_options,
  File "<DIR>/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1129, in _connection_for_bind
    engine, execution_options
  File "<DIR>/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 407, in _connection_for_bind
    self._assert_active()
  File "<DIR>/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 294, in _assert_active
    % self._rollback_exception
sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely)
(sqlite3.OperationalError) database is locked
[SQL: UPDATE conversation SET number_user_messages=?, latest_event_time=? WHERE conversation.sender_id = ?]
[parameters: (1, 1561765551.79437, 'e4e12fe78a364e368f807aea42bc2a55')]
(Background on this error at: http://sqlalche.me/e/e3q8)
(Tobias Wochinger) #2

You are running the interactive learning with rasa interactive, is that right?

(Lena) #3

I have the same issue running interactive learning from rasa x. If I run it from command line interface with rasa interactive, everything is working fine. Any suggestions?

here is the message I get running interactive learning from rasa x:

Caught an exception while consuming events. Will retry in 5s
Traceback (most recent call last):
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
    cursor, statement, parameters, context
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 550, in do_execute
    cursor.execute(statement, parameters)
sqlite3.OperationalError: database is locked
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/rasax/community/services/event_service.py", line 924, in continuously_consume
    consumer.consume()
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/rasax/community/services/event_service.py", line 893, in consume
    run()
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/rasax/community/services/event_service.py", line 885, in run
    event, sender_id=sender_id, event_number=event_number
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/rasax/community/services/event_service.py", line 70, in save_event
    self._update_conversation_metadata(event)
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/rasax/community/services/event_service.py", line 137, in _update_conversation_metadata
    unique_intents = (i.intent for i in conversation.unique_intents)
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/orm/attributes.py", line 282, in __get__
    return self.impl.get(instance_state(instance), dict_)
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/orm/attributes.py", line 699, in get
    value = self.callable_(state, passive)
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/orm/strategies.py", line 723, in _load_for_state
    session, state, primary_key_identity, passive
  File "<string>", line 1, in <lambda>
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/orm/strategies.py", line 865, in _emit_lazyload
    .with_post_criteria(set_default_params)
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/ext/baked.py", line 531, in all
    return list(self)
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/ext/baked.py", line 429, in __iter__
    self.session._autoflush()
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1588, in _autoflush
    util.raise_from_cause(e)
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 399, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 154, in reraise
    raise value
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1577, in _autoflush
    self.flush()
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2459, in flush
    self._flush(objects)
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2597, in _flush
    transaction.rollback(_capture_exception=True)
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 154, in reraise
    raise value
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 2557, in _flush
    flush_context.execute()
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 422, in execute
    rec.execute(self)
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/orm/unitofwork.py", line 589, in execute
    uow,
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 236, in save_obj
    update,
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/orm/persistence.py", line 996, in _emit_update_statements
    statement, multiparams
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 988, in execute
    return meth(self, multiparams, params)
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/sql/elements.py", line 287, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1107, in _execute_clauseelement
    distilled_params,
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1248, in _execute_context
    e, statement, parameters, cursor, context
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1466, in _handle_dbapi_exception
    util.raise_from_cause(sqlalchemy_exception, exc_info)
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 399, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 153, in reraise
    raise value.with_traceback(tb)
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
    cursor, statement, parameters, context
  File "/home/namex/environments/rasa/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 550, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely)
(sqlite3.OperationalError) database is locked
[SQL: UPDATE conversation SET number_user_messages=?, latest_event_time=? WHERE conversation.sender_id = ?]
[parameters: (1, 1562757600.1061697, '3c0239a3c0774ccd9d16785efca01405')]
(Background on this error at: http://sqlalche.me/e/e3q8)

any help would be appreciated :slight_smile:

(Nicholas Hamilton) #4

Interactive learning through the rasa-x web interface, NOT the command line …

(Tobias Wochinger) #5

I think the sqlite database is getting to many concurrent requests. Could you try

sqlite rasa.db
# and then in sqlite
PRAGMA journal_mode=WAL;

and then re-running Rasa whether the error is gone?

(Lena) #6

Thank you for the fast reply!

I tried what you have suggested, but the error still persist.

I can use rasa x interactive learning without any problems on ubuntu 16, the described error happens in my case on ubuntu 18, maybe it can help in some way…