Details
-
Bug
-
Status: Closed (View Workflow)
-
P2
-
Resolution: Cannot Reproduce
-
None
-
None
-
0
-
Vega
-
Lotus (R1 2022) Bug Fix
-
Cornell, TAMU
-
Not a bug
Description
Overview:
- The open loans page for a user with large quantities of loans put lot of CPU and memory pressure on user's computer. Refer screenshots.
- Various API relating to checkout and loan renewal process takes a lot of time to complete. (Refer HAR files attached)
- GET /automated-patron-blocks takes >12s
- GET /circulation/loans takes >8s
- POST /circulation/renew-by-barcode takes > 8s for a single loan renewal
- Multiple loans renewal process takes lot of time, > 8 * (no of loans being renewed). Multiple API calls are made to /circulation/renew-by-barcode to renew multiple loans synchronously. Also no spikes observed on CPU utilization of the EC2 and RDS. No slow queries found. Observed for cornell-test, jcnt cluster.
- High content download time observed for some APIs like /circulations/loans. Although this can be due to larger latency as observed from India. Refer screenshots and HAR files
Steps to Reproduce:
- Log into some BugFest Juniper environment.
- Click Users - FOLIO (ebsco.com)
- Open network tab and observe various API timings & Content download timings.
- Open Chrome/Edge task manager to observe CPU and memory resources being consumed by the particular tab opened.
- Select multiple loans and click renew button on top right
- Again observe the network timings for various API calls.
Expected Results:
- The loans page for user should not hamper user's computer responsiveness.
- Multiple loans renewal process should take reasonable amount of time.
Actual Results:
- The loans page for user hampers user's PC responsiveness.
- Multiple loans renewal process should takes a lot of time.
Additional Information:
- How to Use the Google Chrome Task Manager (lifewire.com)
- How to open har file (howtocreate.com)
- This ticket can be further split into multiple tickets to different projects.
- Adding few tickets here to refer.
-
- PTF - Renew loan items Workflow Test Report (Goldenrod) - Folio Development Teams - FOLIO Wiki
UIU-1299When trying to renew all on a user with a lot of loans, only 99 loans are renewed. - FOLIO Issue TrackerUICIRC-741Multiple loan renewal workflow calls multiple /renew_by_barcode API synchronously. - FOLIO Issue Tracker
Suggestions
- The open loans page for a user can show loans in a paginated way with a search bar to search for loans.
- A batch renewal API should exist and be used to renew multiple loans. The API should do all the validations including the limits setup by the tenant prior to actually renewing the loans. Parallel renewals can be done once the validation succeeds considering all loans. If the validation fails, the user can be presented with appropriate error message and can decide further actions. Example, If the user is trying to renew 4 loans at once when the tenant has a limit of two, the first attempt should fail and the user can be presented with a message and has option to choose which loans he wants to renew (2 out of 4). Override option can also be provided as present in some other workflows
URL: Users - FOLIO (ebsco.com)
Interested parties:
TestRail: Results
Attachments
Issue Links
- defines
-
UXPROD-3409 Vega - Lotus Enhancements/Bugfixes/Tech Debt
-
- Closed
-
- is defined by
-
CIRC-1434 Investigate bad performance of GET /circulation/loans and POST /circulation/renew-by-barcode on Juniper
-
- Closed
-
-
CIRC-1438 SPIKE - Improve GET /circulation/loans endpoint performance
-
- Closed
-
- is duplicated by
-
UIU-2525 Multiple loan renewal workflow calls multiple /renew_by_barcode API synchronously.
-
- Closed
-
- relates to
-
PERF-237 Investigating check-out and multiple loans renewal workflow performance improvement issues
-
- Open
-