Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sqlite Error when trying to add task to sobject #1571

Closed
listyque opened this issue Oct 15, 2020 · 6 comments · Fixed by #1574
Closed

Sqlite Error when trying to add task to sobject #1571

listyque opened this issue Oct 15, 2020 · 6 comments · Fixed by #1574
Labels

Comments

@listyque
Copy link
Contributor

Describe the bug
When i try to add task with status to any sobject i get:

---
user:  admin
timestamp:  2020-10-15 21:39:20
method:  execute_cmd
ticket:  a46a7b94bd5f71e11ad
(   'tactic.ui.panel.EditMultipleCmd',
    {   'element_names': 'preview,name,description,keywords,task_status_edit,notes,asset_category_code,texture_in_asset',
        'extra_action': '[null]',
        'extra_data': '[null]',
        'input_prefix': '__NONE__',
        'search_keys': ['tvs/asset?project=tv_series&id=1'],
        'update_data': '[{"task_status_edit":"{\\"status|NEW|reference\\":\\"Assignment\\"}"}]',
        'view': 'edit_item'},
    {   'web_data': '[{"process_data":"{\\"processes\\": [\\"reference\\", '
                    '\\"sketch\\", \\"sculpt\\", \\"model\\", \\"rig\\", '
                    '\\"texture\\", \\"publish\\", \\"cache\\"]}"}]'},
    {})
Error with query (Error):  sthpw INSERT INTO "message" ("category", "code", "login", "message", "project_code", "status", "timestamp") VALUES ('default', 'tvs/asset?project=tv_series&code=ASSET00001|reference|status', 'admin', 'Assignment', 'tv_series', NULL, CURRENT_TIMESTAMP)
--------------------------------------------------
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 593, in new
    cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 281, in execute
    self2.results = exec_meth(self, ticket, meth, args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 315, in exec_meth
    results = meth(self, ticket, *args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 1410, in log_message
    message_obj.commit()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\search.py", line 4164, in commit
    sql.do_update(statement)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\sql.py", line 888, in do_update
    raise SqlException(e.__str__())

Error:  UNIQUE constraint failed: message.code
--------------------------------------------------
--------------------------------------------------
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\trigger.py", line 596, in _handle_trigger_sobjs
    ret_val = trigger.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\workflow.py", line 3111, in execute
    self.log_message(sobject, process, status)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\workflow.py", line 780, in log_message
    server.log_message(key, status)
  File "D:/work/tactic_team48/TACTIC-4.8/src/client\tactic_client_lib\tactic_server_stub.py", line 811, in log_message
    return self.server.log_message(self.ticket, key, message, status, category, log_history)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 593, in new
    cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 281, in execute
    self2.results = exec_meth(self, ticket, meth, args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 315, in exec_meth
    results = meth(self, ticket, *args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 1410, in log_message
    message_obj.commit()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\search.py", line 4164, in commit
    sql.do_update(statement)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\sql.py", line 888, in do_update
    raise SqlException(e.__str__())

UNIQUE constraint failed: message.code
--------------------------------------------------
WARNING: Should override 'get_title' function for <pyasm.command.workflow.ProcessCustomTrigger object at 0x000001B2DCC87DC0>
Error:  UNIQUE constraint failed: message.code
--------------------------------------------------
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\command.py", line 267, in execute_cmd
    ret_val = cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 281, in execute
    self2.results = exec_meth(self, ticket, meth, args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 311, in exec_meth
    results = meth(self, ticket, *new_args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 5829, in execute_cmd
    Command.execute_cmd(cmd)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\command.py", line 267, in execute_cmd
    ret_val = cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\tactic\ui\panel\edit_cmd.py", line 520, in execute
    cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\tactic\ui\panel\edit_cmd.py", line 150, in execute
    last_sobject = self._execute_single(code, name=name)
  File "D:/work/tactic_team48/TACTIC-4.8/src\tactic\ui\panel\edit_cmd.py", line 352, in _execute_single
    action_handler.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\tactic\ui\table\task_element_wdg.py", line 3051, in execute
    task.commit()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\search.py", line 4400, in commit
    self._call_triggers(trigger_update_data, mode, output, process, parent_type, triggers)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\search.py", line 4614, in _call_triggers
    Trigger.call_by_key(key, self, output, integral_only=integral_only, project_code=project_code)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\trigger.py", line 445, in call_by_key
    return cls._handle_trigger_sobjs(triggers_sobjs, caller, event, output, forced_mode=forced_mode, project_code=project_code)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\trigger.py", line 596, in _handle_trigger_sobjs
    ret_val = trigger.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\workflow.py", line 295, in execute
    Trigger.call(task, event, output=output)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\trigger.py", line 468, in call
    return cls._handle_trigger_sobjs(triggers_sobjs, caller, event, output, forced_mode=forced_mode, project_code=project_code)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\trigger.py", line 596, in _handle_trigger_sobjs
    ret_val = trigger.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\workflow.py", line 3111, in execute
    self.log_message(sobject, process, status)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\workflow.py", line 780, in log_message
    server.log_message(key, status)
  File "D:/work/tactic_team48/TACTIC-4.8/src/client\tactic_client_lib\tactic_server_stub.py", line 811, in log_message
    return self.server.log_message(self.ticket, key, message, status, category, log_history)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 593, in new
    cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 281, in execute
    self2.results = exec_meth(self, ticket, meth, args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 315, in exec_meth
    results = meth(self, ticket, *args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 1410, in log_message
    message_obj.commit()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\search.py", line 4164, in commit
    sql.do_update(statement)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\sql.py", line 888, in do_update
    raise SqlException(e.__str__())

Error:  UNIQUE constraint failed: message.code
--------------------------------------------------
--------------------------------------------------
From ExceptionLog.log
--------------------------------------------------
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/command/command.py", line 267, in execute_cmd
    ret_val = cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/prod/service/api_xmlrpc.py", line 281, in execute
    self2.results = exec_meth(self, ticket, meth, args)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/prod/service/api_xmlrpc.py", line 311, in exec_meth
    results = meth(self, ticket, *new_args)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/prod/service/api_xmlrpc.py", line 5829, in execute_cmd
    Command.execute_cmd(cmd)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/command/command.py", line 267, in execute_cmd
    ret_val = cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src/tactic/ui/panel/edit_cmd.py", line 520, in execute
    cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src/tactic/ui/panel/edit_cmd.py", line 150, in execute
    last_sobject = self._execute_single(code, name=name)
  File "D:/work/tactic_team48/TACTIC-4.8/src/tactic/ui/panel/edit_cmd.py", line 352, in _execute_single
    action_handler.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src/tactic/ui/table/task_element_wdg.py", line 3051, in execute
    task.commit()
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/search/search.py", line 4400, in commit
    self._call_triggers(trigger_update_data, mode, output, process, parent_type, triggers)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/search/search.py", line 4614, in _call_triggers
    Trigger.call_by_key(key, self, output, integral_only=integral_only, project_code=project_code)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/command/trigger.py", line 445, in call_by_key
    return cls._handle_trigger_sobjs(triggers_sobjs, caller, event, output, forced_mode=forced_mode, project_code=project_code)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/command/trigger.py", line 596, in _handle_trigger_sobjs
    ret_val = trigger.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/command/workflow.py", line 295, in execute
    Trigger.call(task, event, output=output)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/command/trigger.py", line 468, in call
    return cls._handle_trigger_sobjs(triggers_sobjs, caller, event, output, forced_mode=forced_mode, project_code=project_code)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/command/trigger.py", line 596, in _handle_trigger_sobjs
    ret_val = trigger.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/command/workflow.py", line 3111, in execute
    self.log_message(sobject, process, status)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/command/workflow.py", line 780, in log_message
    server.log_message(key, status)
  File "D:/work/tactic_team48/TACTIC-4.8/src/client/tactic_client_lib/tactic_server_stub.py", line 811, in log_message
    return self.server.log_message(self.ticket, key, message, status, category, log_history)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/prod/service/api_xmlrpc.py", line 593, in new
    cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/prod/service/api_xmlrpc.py", line 281, in execute
    self2.results = exec_meth(self, ticket, meth, args)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/prod/service/api_xmlrpc.py", line 315, in exec_meth
    results = meth(self, ticket, *args)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/prod/service/api_xmlrpc.py", line 1410, in log_message
    message_obj.commit()
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/search/search.py", line 4164, in commit
    sql.do_update(statement)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/search/sql.py", line 888, in do_update
    raise SqlException(e.__str__())

UNIQUE constraint failed: message.code
--------------------------------------------------
--------------------------------------------------
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 595, in new
    cmd.execute_cmd(cmd)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\command.py", line 267, in execute_cmd
    ret_val = cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 281, in execute
    self2.results = exec_meth(self, ticket, meth, args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 311, in exec_meth
    results = meth(self, ticket, *new_args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 5829, in execute_cmd
    Command.execute_cmd(cmd)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\command.py", line 267, in execute_cmd
    ret_val = cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\tactic\ui\panel\edit_cmd.py", line 520, in execute
    cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\tactic\ui\panel\edit_cmd.py", line 150, in execute
    last_sobject = self._execute_single(code, name=name)
  File "D:/work/tactic_team48/TACTIC-4.8/src\tactic\ui\panel\edit_cmd.py", line 352, in _execute_single
    action_handler.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\tactic\ui\table\task_element_wdg.py", line 3051, in execute
    task.commit()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\search.py", line 4400, in commit
    self._call_triggers(trigger_update_data, mode, output, process, parent_type, triggers)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\search.py", line 4614, in _call_triggers
    Trigger.call_by_key(key, self, output, integral_only=integral_only, project_code=project_code)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\trigger.py", line 445, in call_by_key
    return cls._handle_trigger_sobjs(triggers_sobjs, caller, event, output, forced_mode=forced_mode, project_code=project_code)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\trigger.py", line 596, in _handle_trigger_sobjs
    ret_val = trigger.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\workflow.py", line 295, in execute
    Trigger.call(task, event, output=output)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\trigger.py", line 468, in call
    return cls._handle_trigger_sobjs(triggers_sobjs, caller, event, output, forced_mode=forced_mode, project_code=project_code)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\trigger.py", line 596, in _handle_trigger_sobjs
    ret_val = trigger.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\workflow.py", line 3111, in execute
    self.log_message(sobject, process, status)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\workflow.py", line 780, in log_message
    server.log_message(key, status)
  File "D:/work/tactic_team48/TACTIC-4.8/src/client\tactic_client_lib\tactic_server_stub.py", line 811, in log_message
    return self.server.log_message(self.ticket, key, message, status, category, log_history)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 593, in new
    cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 281, in execute
    self2.results = exec_meth(self, ticket, meth, args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 315, in exec_meth
    results = meth(self, ticket, *args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 1410, in log_message
    message_obj.commit()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\search.py", line 4164, in commit
    sql.do_update(statement)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\sql.py", line 888, in do_update
    raise SqlException(e.__str__())

Error:  UNIQUE constraint failed: message.code
--------------------------------------------------

To Reproduce
Steps to reproduce the behavior:

  1. TACTIC Team with sqlite py3
  2. Create any sobject
  3. Try to add tasks with any status to this sobject, via TaskElementWdg, or tasks column with hidden row
  4. See error
@listyque
Copy link
Contributor Author

Any suggestions what's causing this?

@remkonoteboom
Copy link
Contributor

remkonoteboom commented Oct 19, 2020

In the log_message function in the API, there is the following code:

1393         if impl_type == 'Sqlite':
1394             if not last_message:
1395                 message_obj = SearchType.create("sthpw/message")
1396                 message_obj.set_value("code", key)
1397                 message_obj.set_value("project_code", project_code)
1398             else:
1399                 message_obj = Search.eval("@SOBJECT(sthpw/message['code','%s'])"%key, single=True)
... and so on

For some reason, there is specific code for Sqlite here. The normal log message uses straight low level SQL. For some reason, in your case, last_message is None and thus it is trying to create a new sobject rather than reusing the sobject in the database.

I am not really sure why it can't find "last_message", but still have trouble inserting 'message_sobj' on commit.

Also, I am not really sure why Sqlite needs separate condition that other databases ... if make it go through the regular code, does it work?

1393: if impl_type == "XSqlite": # disable

@listyque
Copy link
Contributor Author

Thanks!
I tried what You suggested, and now getting"database locked"

---
user:  admin
timestamp:  2020-10-19 17:43:08
method:  execute_cmd
ticket:  a46a7b94bd5f71e11ad
(   'tactic.ui.panel.EditMultipleCmd',
    {   'element_names': 'preview,name,description,notes,task_status_edit,shot,asset_in_episode,task_edit',
        'extra_action': '[null]',
        'extra_data': '[null]',
        'input_prefix': '__NONE__',
        'search_keys': ['tvs/episode?project=tv_series&id=1'],
        'update_data': '[{"task_status_edit":"{\\"status|NEW|script\\":\\"Assignment\\",\\"assigned|NEW|script\\":\\"animator\\"}"}]',
        'view': 'edit_item'},
    {   'web_data': '[{"process_data":"{\\"processes\\": [\\"script\\", '
                    '\\"storyboard\\", \\"assets\\", \\"voice\\", '
                    '\\"layout\\", \\"animation\\", \\"sound\\", \\"light\\", '
                    '\\"render\\", \\"compose\\", \\"publish\\"]}"}]'},
    {})
Error with query (Error):  sthpw INSERT INTO "message" ("category", "code", "login", "message", "project_code", "status", "timestamp") VALUES ('default', 'tvs/episode?project=tv_series&code=EPISODE00001|script|status', 'admin', '', 'tv_series', '', CURRENT_TIMESTAMP)
--------------------------------------------------
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 593, in new
    cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 281, in execute
    self2.results = exec_meth(self, ticket, meth, args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 315, in exec_meth
    results = meth(self, ticket, *args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 1454, in log_message
    sql.do_update(statement)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\sql.py", line 888, in do_update
    raise SqlException(e.__str__())

Error:  database is locked
--------------------------------------------------
--------------------------------------------------
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\trigger.py", line 596, in _handle_trigger_sobjs
    ret_val = trigger.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\workflow.py", line 277, in execute
    server.log_message(key, "")
  File "D:/work/tactic_team48/TACTIC-4.8/src/client\tactic_client_lib\tactic_server_stub.py", line 811, in log_message
    return self.server.log_message(self.ticket, key, message, status, category, log_history)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 593, in new
    cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 281, in execute
    self2.results = exec_meth(self, ticket, meth, args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 315, in exec_meth
    results = meth(self, ticket, *args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 1454, in log_message
    sql.do_update(statement)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\sql.py", line 888, in do_update
    raise SqlException(e.__str__())

database is locked
--------------------------------------------------
WARNING: Should override 'get_title' function for <pyasm.command.workflow.TaskStatusChangeTrigger object at 0x0000017D2A71F430>
Error:  database is locked
--------------------------------------------------
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\command.py", line 267, in execute_cmd
    ret_val = cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 281, in execute
    self2.results = exec_meth(self, ticket, meth, args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 311, in exec_meth
    results = meth(self, ticket, *new_args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 5829, in execute_cmd
    Command.execute_cmd(cmd)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\command.py", line 267, in execute_cmd
    ret_val = cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\tactic\ui\panel\edit_cmd.py", line 520, in execute
    cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\tactic\ui\panel\edit_cmd.py", line 150, in execute
    last_sobject = self._execute_single(code, name=name)
  File "D:/work/tactic_team48/TACTIC-4.8/src\tactic\ui\panel\edit_cmd.py", line 352, in _execute_single
    action_handler.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\tactic\ui\table\task_element_wdg.py", line 3051, in execute
    task.commit()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\search.py", line 4400, in commit
    self._call_triggers(trigger_update_data, mode, output, process, parent_type, triggers)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\search.py", line 4614, in _call_triggers
    Trigger.call_by_key(key, self, output, integral_only=integral_only, project_code=project_code)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\trigger.py", line 445, in call_by_key
    return cls._handle_trigger_sobjs(triggers_sobjs, caller, event, output, forced_mode=forced_mode, project_code=project_code)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\trigger.py", line 596, in _handle_trigger_sobjs
    ret_val = trigger.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\workflow.py", line 277, in execute
    server.log_message(key, "")
  File "D:/work/tactic_team48/TACTIC-4.8/src/client\tactic_client_lib\tactic_server_stub.py", line 811, in log_message
    return self.server.log_message(self.ticket, key, message, status, category, log_history)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 593, in new
    cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 281, in execute
    self2.results = exec_meth(self, ticket, meth, args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 315, in exec_meth
    results = meth(self, ticket, *args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 1454, in log_message
    sql.do_update(statement)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\sql.py", line 888, in do_update
    raise SqlException(e.__str__())

Error:  database is locked
--------------------------------------------------
--------------------------------------------------
From ExceptionLog.log
--------------------------------------------------
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/command/command.py", line 267, in execute_cmd
    ret_val = cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/prod/service/api_xmlrpc.py", line 281, in execute
    self2.results = exec_meth(self, ticket, meth, args)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/prod/service/api_xmlrpc.py", line 311, in exec_meth
    results = meth(self, ticket, *new_args)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/prod/service/api_xmlrpc.py", line 5829, in execute_cmd
    Command.execute_cmd(cmd)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/command/command.py", line 267, in execute_cmd
    ret_val = cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src/tactic/ui/panel/edit_cmd.py", line 520, in execute
    cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src/tactic/ui/panel/edit_cmd.py", line 150, in execute
    last_sobject = self._execute_single(code, name=name)
  File "D:/work/tactic_team48/TACTIC-4.8/src/tactic/ui/panel/edit_cmd.py", line 352, in _execute_single
    action_handler.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src/tactic/ui/table/task_element_wdg.py", line 3051, in execute
    task.commit()
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/search/search.py", line 4400, in commit
    self._call_triggers(trigger_update_data, mode, output, process, parent_type, triggers)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/search/search.py", line 4614, in _call_triggers
    Trigger.call_by_key(key, self, output, integral_only=integral_only, project_code=project_code)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/command/trigger.py", line 445, in call_by_key
    return cls._handle_trigger_sobjs(triggers_sobjs, caller, event, output, forced_mode=forced_mode, project_code=project_code)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/command/trigger.py", line 596, in _handle_trigger_sobjs
    ret_val = trigger.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/command/workflow.py", line 277, in execute
    server.log_message(key, "")
  File "D:/work/tactic_team48/TACTIC-4.8/src/client/tactic_client_lib/tactic_server_stub.py", line 811, in log_message
    return self.server.log_message(self.ticket, key, message, status, category, log_history)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/prod/service/api_xmlrpc.py", line 593, in new
    cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/prod/service/api_xmlrpc.py", line 281, in execute
    self2.results = exec_meth(self, ticket, meth, args)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/prod/service/api_xmlrpc.py", line 315, in exec_meth
    results = meth(self, ticket, *args)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/prod/service/api_xmlrpc.py", line 1454, in log_message
    sql.do_update(statement)
  File "D:/work/tactic_team48/TACTIC-4.8/src/pyasm/search/sql.py", line 888, in do_update
    raise SqlException(e.__str__())

database is locked
--------------------------------------------------
--------------------------------------------------
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 595, in new
    cmd.execute_cmd(cmd)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\command.py", line 267, in execute_cmd
    ret_val = cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 281, in execute
    self2.results = exec_meth(self, ticket, meth, args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 311, in exec_meth
    results = meth(self, ticket, *new_args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 5829, in execute_cmd
    Command.execute_cmd(cmd)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\command.py", line 267, in execute_cmd
    ret_val = cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\tactic\ui\panel\edit_cmd.py", line 520, in execute
    cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\tactic\ui\panel\edit_cmd.py", line 150, in execute
    last_sobject = self._execute_single(code, name=name)
  File "D:/work/tactic_team48/TACTIC-4.8/src\tactic\ui\panel\edit_cmd.py", line 352, in _execute_single
    action_handler.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\tactic\ui\table\task_element_wdg.py", line 3051, in execute
    task.commit()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\search.py", line 4400, in commit
    self._call_triggers(trigger_update_data, mode, output, process, parent_type, triggers)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\search.py", line 4614, in _call_triggers
    Trigger.call_by_key(key, self, output, integral_only=integral_only, project_code=project_code)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\trigger.py", line 445, in call_by_key
    return cls._handle_trigger_sobjs(triggers_sobjs, caller, event, output, forced_mode=forced_mode, project_code=project_code)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\trigger.py", line 596, in _handle_trigger_sobjs
    ret_val = trigger.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\command\workflow.py", line 277, in execute
    server.log_message(key, "")
  File "D:/work/tactic_team48/TACTIC-4.8/src/client\tactic_client_lib\tactic_server_stub.py", line 811, in log_message
    return self.server.log_message(self.ticket, key, message, status, category, log_history)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 593, in new
    cmd.execute()
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 281, in execute
    self2.results = exec_meth(self, ticket, meth, args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 315, in exec_meth
    results = meth(self, ticket, *args)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\prod\service\api_xmlrpc.py", line 1454, in log_message
    sql.do_update(statement)
  File "D:/work/tactic_team48/TACTIC-4.8/src\pyasm\search\sql.py", line 888, in do_update
    raise SqlException(e.__str__())

Error:  database is locked
--------------------------------------------------

@remkonoteboom
Copy link
Contributor

This is likely why there is database specific code for SQLite. The former was to avoid the locking that occurs with SQLite. The message function is supposed to exist outside of the transaction but that breaks SQLite.

@remkonoteboom
Copy link
Contributor

Ok, I have reproduced this error. I will take a look at this.

@remkonoteboom
Copy link
Contributor

This should be fixed in linked pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants