Booking: attempting to create a reservation for a single item freezes the browser

Bug #2032717 reported by Jane Sandberg
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Evergreen
Fix Released
High
Unassigned
3.11
Fix Released
High
Unassigned

Bug Description

Steps to recreate (I've done this in Edge and Firefox):

* Go to Booking > Create Reservation
* Choose the "Choose resource by barcode" tab
* Type in ROOM1231 (the barcode of a non-cataloged resource in the concerto data set)
* Note that the schedule for this resource never appears, and the browser is frozen :-(

Revision history for this message
Susan Morrison (smorrison425) wrote :

I tested on 3.10 in Chrome, and there were no issues with creating a reservation for a single item, so this bug may have been introduced in 3.11. I tested on two of the bug squashing community servers in Chrome, and the browser froze each time.

Galen Charlton (gmc)
Changed in evergreen:
status: New → Confirmed
importance: Undecided → High
Revision history for this message
Galen Charlton (gmc) wrote :

Confirmed in Chrome and Firefox. Some initial debugging reveals that the tap() in CreateReservationComponent's fetchData() is getting invoked repeatedly in a tight, infinite loop.

I'm not seeing any changes to create-reservation.component.ts in rel_3_11 that directly point at the problem; maybe it's an unexpected side effect of the upgrade to Angular 15.

tags: added: regression
Changed in evergreen:
assignee: nobody → Jane Sandberg (sandbergja)
Revision history for this message
Jane Sandberg (sandbergja) wrote :

I used git bisect to see where this broke. Indeed, it stopped working on commit c76e4ad6c2aba1a918992659686bb6b50bfea79c (the angular/bootstrap/ng-bootstrap upgrade).

Revision history for this message
Jane Sandberg (sandbergja) wrote :

No clue how this is related to the angular upgrade (perhaps a change in RxJS behavior?). Anyway, patch is available: user/sandbergja/lp2032717-booking-browser-freeze

Here is a link: https://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/sandbergja/lp2032717-booking-browser-freeze

To run the nightwatch test: `cd Open-ILS/src/eg2 && npm i && npx nightwatch nightwatch/src/staff/booking/create-reservation.spec.ts`

Manual testing notes from the commit message:
* Go to Booking > Create Reservation
* Choose the "Choose resource by barcode" tab
* Type in ROOM1231 (the barcode of a non-cataloged resource in the concerto data set)
* Confirm that you can place the reservation

tags: added: pullrequest
Changed in evergreen:
assignee: Jane Sandberg (sandbergja) → nobody
Changed in evergreen:
assignee: nobody → Jeff Davis (jdavis-sitka)
Revision history for this message
Christine Burns (christine-burns) wrote :

Tested this fix on our custom Sitka's Evergreen upgrade server and it works perfectly.

The fix works well and I can now create a reservation by barcode.
The browser doesn't freeze and the reservation is successfully created.

I have tested this code and consent to signing off on it with my name, Christine Burns and my email address, <email address hidden>

tags: added: signedoff
Changed in evergreen:
milestone: none → 3.12-beta
Revision history for this message
Terran McCanna (tmccanna) wrote :

Jeff, this is still assigned to you but it looks like it's ready to be committed. I don't mind doing that unless you are planning to.

Changed in evergreen:
assignee: Jeff Davis (jdavis-sitka) → Terran McCanna (tmccanna)
Revision history for this message
Terran McCanna (tmccanna) wrote :

Works for me, too! Fix to main and back to 3.11.

Changed in evergreen:
status: Confirmed → Fix Committed
assignee: Terran McCanna (tmccanna) → nobody
Changed in evergreen:
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.