Bug 26457: [20.05.x] Throw exception if update of issues table fails
authorNick Clemens <nick@bywatersolutions.com>
Fri, 4 Dec 2020 12:03:52 +0000 (12:03 +0000)
committerAndrew Fuerste-Henry <andrew@bywatersolutions.com>
Fri, 5 Mar 2021 20:41:32 +0000 (20:41 +0000)
commit87a4a0816242727cddddc0e171511db1edabeca2
treeafacb9b7beecd244b2e7bda0be89e66b3c17a0d5
parent244d8924d17897293df0ca652cb1361f946bb431
Bug 26457: [20.05.x] Throw exception if update of issues table fails

While this won't prevent the deadlock, it should catch the case where
a deadlock causes the DB update to fail and provide feedback to the user
and rollback the transaction

I don't know how to trigger the deadlock, I can only confirm that we see it, and
that this should catch it.

To test:
1 - Apply patches
2 - Checkout several items to a patron
3 - Confirm that 'Renew all' feature continues to work as expected and all items are renewed

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Bug 26457: Unit test

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Bug 26457: (QA follow-up) Switch to PK index in UPDATE on issues

The deadlock reports tell us that multiple transactions are
waiting for a X lock on a record but using a secondary index
on borrowernumber and itemnumber. Since we have the issue_id
at hand already, we should use that and benefit from the clustered
index (on PK) instead of using a secondary index.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
C4/Circulation.pm
Koha/Exceptions/Checkout.pm [new file with mode: 0644]
svc/renew
t/db_dependent/Circulation.t