-
Notifications
You must be signed in to change notification settings - Fork 18
Open
Description
Reproduction steps:
send messages between two users rapidly (e.g. 0.5s)
Expected result:
messages are sent normally
Actual result:
sometimes error would occur:
Error Domain=SKYOperationErrorDomain Code=10000 "An unexpected error has occurred." UserInfo={SKYErrorMessage=(psycopg2.extensions.TransactionRollbackError) deadlock detected
DETAIL: Process 1402 waits for ShareLock on transaction 33541; blocked by process 1543.
Process 1543 waits for ShareLock on transaction 33595; blocked by process 1402.
HINT: See server log for query details.
CONTEXT: while updating tuple (11,10) in relation "user_conversation"
[SQL: '\n UPDATE %(schema_name)s.user_conversation\n SET\n "_updated_at" = CURRENT_TIMESTAMP\n WHERE\n "conversation" = %(conversation_id)s\n AND "user" = %(user_id)s\n '] [parameters: {'schema_name': <psycopg2.extensions.AsIs object at 0x7f8ecc0a4540>, 'conversation_id': 'a1924405-71d8-4262-ae46-2baf5e175c38', 'user_id': 'c1001719-8171-44c7-9a33-d356c407b01a'}] (Background on this error at: http://sqlalche.me/e/e3q8), NSErrorFailingURLKey=http://127.0.0.1:3000/record/save, trace=Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
context)
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 509, in do_execute
cursor.execute(statement, parameters)
psycopg2.extensions.TransactionRollbackError: deadlock detected
DETAIL: Process 1402 waits for ShareLock on transaction 33541; blocked by process 1543.
Process 1543 waits for ShareLock on transaction 33595; blocked by process 1402.
HINT: See server log for query details.
CONTEXT: while updating tuple (11,10) in relation "user_conversation"
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/skygear/transmitter/common.py", line 43, in wrapper
return dict(result=f(self, *args, **kwargs))
File "/usr/local/lib/python3.6/site-packages/skygear/transmitter/common.py", line 102, in call_func
return self.hook(obj, param)
File "/usr/local/lib/python3.6/site-packages/skygear/transmitter/common.py", line 187, in hook
returned = func(record, original_record, conn)
File "/usr/local/lib/python3.6/site-packages/skygear/decorators.py", line 90, in hook_func
func(record, original_record, db)
File "chat/chat/message_handlers.py", line 336, in message_after_save_handler
return handle_message_after_save(record, original_record, conn)
File "chat/chat/message_handlers.py", line 193, in handle_message_after_save
'user_id': current_user_id()
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 942, in execute
return self._execute_text(object, multiparams, params)
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1104, in _execute_text
statement, parameters
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context
context)
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception
exc_info
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 265, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 248, in reraise
raise value.with_traceback(tb)
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
context)
File "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 509, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (psycopg2.extensions.TransactionRollbackError) deadlock detected
DETAIL: Process 1402 waits for ShareLock on transaction 33541; blocked by process 1543.
Process 1543 waits for ShareLock on transaction 33595; blocked by process 1402.
HINT: See server log for query details.
CONTEXT: while updating tuple (11,10) in relation "user_conversation"
[SQL: '\n UPDATE %(schema_name)s.user_conversation\n SET\n "_updated_at" = CURRENT_TIMESTAMP\n WHERE\n "conversation" = %(conversation_id)s\n AND "user" = %(user_id)s\n '] [parameters: {'schema_name': <psycopg2.extensions.AsIs object at 0x7f8ecc0a4540>, 'conversation_id': 'a1924405-71d8-4262-ae46-2baf5e175c38', 'user_id': 'c1001719-8171-44c7-9a33-d356c407b01a'}] (Background on this error at: http://sqlalche.me/e/e3q8)
, SKYOperationErrorHTTPStatusCodeKey=200, SKYErrorName=UnexpectedError, NSLocalizedDescription=An unexpected error has occurred.}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels