https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=18855

--- Comment #18 from Michael Hafen <[email protected]> ---
Here's the test plan from the patch file:

Test plan:
1. find an overdue fine near the end of the list of overdue fines that
   cronjobs/fines.pl will be considering.
2. start cronjobs/fines.pl.
3. immediately check in the overdue book.
4. once fines.pl is finished observe that a duplicate overdue fine has been
   created on the patrons account.

5. apply patch.
6. repeat 1 - 4 and observe that the duplicate fine was not created.

Re: your comment (I replied to the email, but don't see it here):

Yes, that would be normal operation. The fine for the issue is identified by
being unreturned. If a book is renewed it's fine is returned, and if it becomes
overdue again the UpdateFine call will create the new one.
The bug is if an overdue book is returned or renewed while the script is
running, but before the script has processed that issue, then it's fine will be
returned, but the script still called UpdateFine, so another fine is created
since it couldn't find the one that was just changed to returned.
I've changed the script to check the issue before calling UpdateFine, and skip
the call this time if the issue (due date) changed to avoid the duplicate fine.
There is still a very narrow window where UpdateFine gets called and at the
same time the fine is changed to returned, but I think that chance is small
enough to overlook. The alternate would be to lock the tables before calling
UpdateFine, but that would slow down the circulation desk while the fines
script runs, which would probably bring complaints.

-- 
You are receiving this mail because:
You are watching all bug changes.
_______________________________________________
Koha-bugs mailing list
[email protected]
https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/

Reply via email to