Displaying a list of pending offline circulation actions can now fail if the cardnumber is null (as can be the case with a return). The associated crash is: DBD::mysql::st execute failed: called with 1 bind variables when 0 are needed [for Statement "SELECT borrowers.*, categories.category_type, categories.description FROM borrowers LEFT JOIN categories on borrowers.categorycode=categories.categorycode WHERE cardnumber IS NULL"] at /usr/share/koha/lib/C4/Members.pm line 451. This appears to be a consequence of bug 15344; it turns out that GetMemberDetails handled cardnumber => NULL better than GetMember does at present. This looks like it affects master, 3.20.8+, and 3.22.2+
Created attachment 48832 [details] [review] Bug 16009: fix GetMember() search on NULL/undef values This patch fixes a bug whereby GetMember(searchfield => undef) (i.e., searching for patron records where 'searchfield' is NULL) would crash. This fixes a regression introduced by bug 15344 that in turn exposed a long-standing bug in GetMember(). To test: [1] Import some offline circulation transactions that include at least one return. [2] Attempt to view the list of pending transactions; a crash will occur. [3] Apply the patch and view the list of pending transactions again; this time, it should work. Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
Bumping severity up as this is a regression.
Created attachment 48986 [details] [review] Bug 16009: fix GetMember() search on NULL/undef values This patch fixes a bug whereby GetMember(searchfield => undef) (i.e., searching for patron records where 'searchfield' is NULL) would crash. This fixes a regression introduced by bug 15344 that in turn exposed a long-standing bug in GetMember(). To test: [1] Import some offline circulation transactions that include at least one return. [2] Attempt to view the list of pending transactions; a crash will occur. [3] Apply the patch and view the list of pending transactions again; this time, it should work. Signed-off-by: Galen Charlton <gmcharlt@gmail.com> Signed-off-by: Srdjan <srdjan@catalyst.net.nz>
Just an idea, in such situations, maybe have 2 patches: * Tests that fail * Fix (that makes tests pass)
Created attachment 49000 [details] [review] Bug 16009: fix GetMember() search on NULL/undef values This patch fixes a bug whereby GetMember(searchfield => undef) (i.e., searching for patron records where 'searchfield' is NULL) would crash. This fixes a regression introduced by bug 15344 that in turn exposed a long-standing bug in GetMember(). To test: [1] Import some offline circulation transactions that include at least one return. [2] Attempt to view the list of pending transactions; a crash will occur. [3] Apply the patch and view the list of pending transactions again; this time, it should work. Signed-off-by: Galen Charlton <gmcharlt@gmail.com> Signed-off-by: Srdjan <srdjan@catalyst.net.nz> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Pushed to Master - Should be in the May 2016 release. Thanks
Patch pushed to 3.22.x, will be in 3.22.5