Bug 11621 - Race condition exists for trapping holds
Summary: Race condition exists for trapping holds
Status: NEW
Alias: None
Product: Koha
Classification: Unclassified
Component: Hold requests (show other bugs)
Version: Main
Hardware: All All
: P5 - low normal (vote)
Assignee: Bugs List
QA Contact: Testopia
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-01-27 15:56 UTC by Kyle M Hall
Modified: 2018-12-20 20:05 UTC (History)
4 users (show)

See Also:
Change sponsored?: ---
Patch complexity: ---
Documentation contact:
Documentation submission:
Text to go in the release notes:
Version(s) released in:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kyle M Hall 2014-01-27 15:56:54 UTC
It is possible to trigger a race condition when it trapping items to fill holds:
1) Librarian A checks in Book 1, which displays the hold trap dialog
2) Librarian B checks in Book 2, which displays the hold trap dialog
3) Librarian A clicks the "confirm and print" button, which prints the hold slip and sends a hold waiting message to the patron
4) Library B clicks the "confirm and print" button, which causes the previous hold to be overwritten with the new hold, and thus Book 1 is no longer a waiting hold for this patron, Book 2 is.
5) Book 1 is now available, and if there are other holds that need filled, none of them will be fulfilled with Book 1 unless a librarian checks it in again.

I believe this issue is caused by ModReserveFill assuming the hold must need filled if called, and does not check for an existing waiting reserve. This issue must be addressed in C4::Reserves and not just circ/returns.pl as the issue affects SIP2 hold fulfillment as well.
Comment 1 Marc Véron 2015-12-20 17:38:46 UTC
Still valid?
Comment 2 Brian 2018-12-18 01:11:28 UTC
Has this been resolved?

Carnegie team
Comment 3 Katrin Fischer 2018-12-20 20:05:13 UTC
HiBrian, this is still in status 'NEW', so no patch has been provide. Some other bug might have fixed it, but it's hard to tell. Did you experience this issue? Next sensible step would be to retest.