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

Missing error code isc_lock_timeout in WAIT LOCK TIMEOUT transaction [CORE6102] #6351

Open
firebird-automations opened this issue Jul 16, 2019 · 0 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: prenosil (prenosil)

In Firebird 2.x, when I do UPDATE in
"SET TRANSACTION READ COMMITTED RECORD_VERSION WAIT LOCK TIMEOUT 10"
transaction and the record is locked, I can get two different errors depending on situation:

1) if the time run out:

Statement failed, SQLSTATE = 40001
[335544510] lock time-out on wait transaction
[335544336] -deadlock
[335544451] -update conflicts with concurrent update
[335544878] -concurrent transaction number is 5876

2) if the concurrent transaction committed:

Statement failed, SQLSTATE = 40001
[335544336] deadlock
[335544451] -update conflicts with concurrent update
[335544878] -concurrent transaction number is 5876

which helps in deciding whether to repeat the command or not.

However in Firebird 3 (v3.0.4 or latest snapshot) I always get:

Statement failed, SQLSTATE = 40001
[335544336] deadlock
[335544451] -update conflicts with concurrent update
[335544878] -concurrent transaction number is 10338

i.e. isc_lock_timeout = "lock time-out on wait transaction" is never returned.

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

No branches or pull requests

1 participant