If a record is deleted from Koha, but is for some reason not deleted from the search indexes, OpacBrowseResults can cause an ISE if the deleted record is in the search results for any given item. OpacBrowseResults loops through the search results, and checks if there is a biblionumber, but does *not* check to see if a result was pulled from the database for that biblionumber. It simply assumes the result must exist. We should be checking to ensure the biblionumber was valid before operating on the biblio object.
Created attachment 123978 [details] [review] Bug 28885: Skip invalid biblios for OpacBrowseResults If a record is deleted from Koha, but is for some reason not deleted from the search indexes, OpacBrowseResults can cause an ISE if the deleted record is in the search results for any given item. OpacBrowseResults loops through the search results, and checks if there is a biblionumber, but does *not* check to see if a result was pulled from the database for that biblionumber. It simply assumes the result must exist. We should be checking to ensure the biblionumber was valid before operating on the biblio object. Test Plan: 1) Use zebra for searching 2) Disable koha-indexer 3) Enable OpacBrowseResults 4) Perform a search 5) Delete an item in the search results 6) View on of the remaining items in the search results 7) Note the error 8) Apply this patch 9) Restart plack 10) Reload the page 11) The error should be gone!
Created attachment 124009 [details] [review] Bug 28885: Skip invalid biblios for OpacBrowseResults If a record is deleted from Koha, but is for some reason not deleted from the search indexes, OpacBrowseResults can cause an ISE if the deleted record is in the search results for any given item. OpacBrowseResults loops through the search results, and checks if there is a biblionumber, but does *not* check to see if a result was pulled from the database for that biblionumber. It simply assumes the result must exist. We should be checking to ensure the biblionumber was valid before operating on the biblio object. Test Plan: 1) Use zebra for searching 2) Disable koha-indexer 3) Enable OpacBrowseResults 4) Perform a search 5) Delete an item in the search results 6) View on of the remaining items in the search results 7) Note the error 8) Apply this patch 9) Restart plack 10) Reload the page 11) The error should be gone! Signed-off-by: David Nind <david@davidnind.com>
Created attachment 124252 [details] [review] Bug 28885: Skip invalid biblios for OpacBrowseResults If a record is deleted from Koha, but is for some reason not deleted from the search indexes, OpacBrowseResults can cause an ISE if the deleted record is in the search results for any given item. OpacBrowseResults loops through the search results, and checks if there is a biblionumber, but does *not* check to see if a result was pulled from the database for that biblionumber. It simply assumes the result must exist. We should be checking to ensure the biblionumber was valid before operating on the biblio object. Test Plan: 1) Use zebra for searching 2) Disable koha-indexer 3) Enable OpacBrowseResults 4) Perform a search 5) Delete an item in the search results 6) View on of the remaining items in the search results 7) Note the error 8) Apply this patch 9) Restart plack 10) Reload the page 11) The error should be gone! Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Joonas Kylmälä <joonas.kylmala@iki.fi>
Pushed to master for 21.11, thanks to everybody involved!
Pushed to 21.05.x for 21.05.04
Pushed to 20.11.x for 20.11.10
Backported: Pushed to 20.05.x branch for 20.05.16