SIP2 Patron Information times out on too many checkouts/holds

Bug #1296937 reported by Thomas Berezansky
20
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Evergreen
Fix Released
Medium
Unassigned
2.5
Fix Released
Medium
Unassigned
SIPServer
Fix Released
Undecided
Unassigned

Bug Description

When a patron has too many items checked out, on hold, or both patron information responses can time out counting them.

I believe this is due to the fact that the backend retrieves full information for each circulation and hold, specifically Titles loaded from parsing MARC, when only the counts are actually being used.

The two branches below provide support to Evergreen and SIPServer for only fetching IDs of the circs/holds, which are then counted instead of the titles. By not loading the titles the patron information response is sped up considerably.

Evergreen Side, to add the ability to fetch just IDs:
http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/tsbere/sip2_ids_only

SIPServer Side, to have it ask for just IDs:
http://git.evergreen-ils.org/?p=working/SIPServer.git;a=shortlog;h=refs/heads/user/tsbere/ids_only

Revision history for this message
Ben Shum (bshum) wrote :

Adding initial target, but this may be good to backport as it could be bad for older systems too?

tags: added: pullrequest
Changed in evergreen:
status: New → Confirmed
Changed in sipserver:
status: New → Confirmed
Changed in evergreen:
importance: Undecided → Medium
assignee: nobody → Ben Shum (bshum)
milestone: none → 2.next
Galen Charlton (gmc)
Changed in evergreen:
assignee: Ben Shum (bshum) → Galen Charlton (gmc)
milestone: 2.next → 2.6.1
Revision history for this message
Galen Charlton (gmc) wrote :

I've committed this to SIPServer master and Evergreen master, rel_2_6, and rel_2_5. I've also added a follow-up to ensure that the renew-all message doesn't break if the user neglects to upgrade SIPServer at the same time they upgrade Evergreen.

Thanks, Thomas!

Changed in evergreen:
status: Confirmed → Fix Committed
Changed in sipserver:
status: Confirmed → Fix Committed
Revision history for this message
Galen Charlton (gmc) wrote :

Following up discussion today in IRC regarding the non-typical addition of the $ids_only parameter to ->charged_items() to the middle rather than the end of the parameter list, the patch at the tip of the user/gmcharlt/lp1296937_split_public_and_private_interfaces branch in the working/Evergreen repository splits the public and implementation interfaces for the charged items lookup. As the commit message indicates, this is meant to be tested with a reversion of SIPServer commit c97d64412.

http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/gmcharlt/lp1296937_split_public_and_private_interfaces

Consider this a pullrequest for this follow-up.

Changed in evergreen:
status: Fix Committed → Confirmed
Changed in sipserver:
status: Fix Committed → Confirmed
Galen Charlton (gmc)
Changed in evergreen:
assignee: Galen Charlton (gmc) → nobody
Changed in evergreen:
assignee: nobody → Mike Rylander (mrylander)
Changed in evergreen:
assignee: Mike Rylander (mrylander) → nobody
Revision history for this message
Mike Rylander (mrylander) wrote :

This looks like the best way forward. All the benefits of the speedups without depending on a quirk of implementation or reordering of positional params. Thanks for working this out, Galen, and thanks for pushing for a fix, Thomas.

Here's a signed-off branch:

http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/miker/lp1296937_split_public_and_private_interfaces

tags: added: signedoff
Jeff Godin (jgodin)
Changed in sipserver:
assignee: nobody → Jeff Godin (jgodin)
Changed in evergreen:
assignee: nobody → Jeff Godin (jgodin)
Revision history for this message
Jeff Godin (jgodin) wrote :

I like this approach, and think it deals with all of the issues raised and any that I could think of.

I've cherry picked Evergreen commit 80ee141 to master, rel_2_5, and rel_2_6.

My intent was to push a revert of SIPServer commit c97d64412 to master, but I appear to lack the access to push to SIPServer. I'll work with someone to resolve that, then I think we're done with this bug.

Thanks Thomas, Ben, Galen, and Mike!

Revision history for this message
Jeff Godin (jgodin) wrote :

Fixed local issue on my end, pushed revert of SIPServer commit c97d64412 to master.

Thanks again, all!

Changed in evergreen:
status: Confirmed → Fix Committed
Changed in sipserver:
status: Confirmed → Fix Committed
Changed in evergreen:
assignee: Jeff Godin (jgodin) → nobody
Changed in sipserver:
assignee: Jeff Godin (jgodin) → nobody
Changed in evergreen:
status: Fix Committed → Fix Released
Galen Charlton (gmc)
Changed in sipserver:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.