[Koha-bugs] [Bug 26457] DB DeadLock when renewing checkout items
bugzilla-daemon at bugs.koha-community.org
bugzilla-daemon at bugs.koha-community.org
Tue Sep 15 02:33:17 CEST 2020
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=26457
David Cook <dcook at prosentient.com.au> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dcook at prosentient.com.au
--- Comment #1 from David Cook <dcook at prosentient.com.au> ---
I'm more familiar with PostgreSQL deadlocks than MySQL deadlocks, but it looks
to me like 2 separate Koha processes are trying to add renewals for different
items for the same borrower, and perhaps the lock contention is over the
issuesborridx index.
Looking at Bug 20086, I see that those are unnecessarily large transactions.
It's better to keep transactions as small as possible, especially to avoid
scenarios like this.
Looking at koha-tmpl/intranet-tmpl/prog/js/checkouts.js, I see that the
renewals are POSTed to "/cgi-bin/koha/svc/renew" asynchronously, so that's how
there would be multiple AddRenewal transactions running for the same borrower
at the same time...
Looking at
https://dev.mysql.com/doc/refman/8.0/en/innodb-locking.html#innodb-record-locks,
I think my theory is correct about the issue being contention over the
issuesborridx.
Now, I haven't noticed this / haven't gotten any reports of this, but I don't
think we really use fines, so this report is interesting.
I'm guessing that your renewals must be processed *very* slowly, and that your
2nd transaction is rolled back, because your 1st transaction is taking too long
to release a lock on issuesborridx.
I'd say the solution is to redo the transaction handling for
C4::Circulation::AddRenewal.
Didier, do you been able to reproduce this issue in koha-testing-docker? That
would help in fixing the problem.
--
You are receiving this mail because:
You are watching all bug changes.
You are the assignee for the bug.
More information about the Koha-bugs
mailing list