To recreate: 1 - Add holds with lowest priorty to 2 records in the catalog 2 - Add a hold on a third record 3 - Note errors in log like: [2021/07/23 17:47:17] [WARN] splice() offset past end of array at /kohadevbox/koha/C4/Reserves.pm line 1649
Created attachment 123147 [details] [review] Bug 28754: Only adjust holds on specific biblio and don't go past end of array Our query for lowest priority holds only needs to adjust holds on the biblio we are looking at so I add biblionumber Additionally we can simply find the end of the array and use that rather than 99998 so I set new_rank to scalar @priority Lastly, we don't need to fetch the lowest priority holds if we are ignoring lowest priority so I move it into the conditional To test: 1 - Add holds with lowest priorty to 2 records in the catalog 2 - Add a hold on a third record 3 - Note errors in log like: [2021/07/23 17:47:17] [WARN] splice() offset past end of array at /kohadevbox/koha/C4/Reserves.pm line 1649 4 - Apply patch and restart all the things 5 - Add a new hold on third record - no warns 6 - Make one of the holds on third record have lowestPriority (click rightmost arrow with line at bottom) 7 - Note no warns 8 - Adjust other holds on record and note no warns
Created attachment 123158 [details] [review] Bug 28754: Only adjust holds on specific biblio and don't go past end of array Our query for lowest priority holds only needs to adjust holds on the biblio we are looking at so I add biblionumber Additionally we can simply find the end of the array and use that rather than 99998 so I set new_rank to scalar @priority Lastly, we don't need to fetch the lowest priority holds if we are ignoring lowest priority so I move it into the conditional To test: 1 - Add holds with lowest priorty to 2 records in the catalog 2 - Add a hold on a third record 3 - Note errors in log like: [2021/07/23 17:47:17] [WARN] splice() offset past end of array at /kohadevbox/koha/C4/Reserves.pm line 1649 4 - Apply patch and restart all the things 5 - Add a new hold on third record - no warns 6 - Make one of the holds on third record have lowestPriority (click rightmost arrow with line at bottom) 7 - Note no warns 8 - Adjust other holds on record and note no warns Signed-off-by: David Nind <david@davidnind.com>
Created attachment 123242 [details] [review] Bug 28754: Only adjust holds on specific biblio and don't go past end of array Our query for lowest priority holds only needs to adjust holds on the biblio we are looking at so I add biblionumber Additionally we can simply find the end of the array and use that rather than 99998 so I set new_rank to scalar @priority Lastly, we don't need to fetch the lowest priority holds if we are ignoring lowest priority so I move it into the conditional To test: 1 - Add holds with lowest priorty to 2 records in the catalog 2 - Add a hold on a third record 3 - Note errors in log like: [2021/07/23 17:47:17] [WARN] splice() offset past end of array at /kohadevbox/koha/C4/Reserves.pm line 1649 4 - Apply patch and restart all the things 5 - Add a new hold on third record - no warns 6 - Make one of the holds on third record have lowestPriority (click rightmost arrow with line at bottom) 7 - Note no warns 8 - Adjust other holds on record and note no warns Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Joonas Kylmälä <joonas.kylmala@helsinki.fi>
Pushed to master for 21.11, thanks to everybody involved!
Pushed to 21.05.x for 21.05.03
Pushed to 20.11.x for 20.11.09
Not backported to oldoldstable (20.05.x). Feel free to ask if it's needed.