Bug 16009

Summary: crash displaying pending offline circulations
Product: Koha Reporter: Galen Charlton <gmcharlt>
Component: CirculationAssignee: Bugs List <koha-bugs>
Status: CLOSED FIXED QA Contact: Testopia <testopia>
Severity: major    
Priority: P5 - low CC: brendan, gmcharlt, jonathan.druart+koha, julian.maurice, kyle.m.hall, srdjan
Version: masterKeywords: regression
Hardware: All   
OS: All   
Change sponsored?: --- Patch complexity: Small patch
Documentation contact: Documentation submission:
Text to go in the release notes:
Version(s) released in:
Bug Depends on: 15344    
Bug Blocks:    
Attachments: Bug 16009: fix GetMember() search on NULL/undef values
Bug 16009: fix GetMember() search on NULL/undef values
Bug 16009: fix GetMember() search on NULL/undef values

Description Galen Charlton 2016-03-08 23:20:41 UTC
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+
Comment 1 Galen Charlton 2016-03-09 01:45:50 UTC Comment hidden (obsolete)
Comment 2 Galen Charlton 2016-03-10 13:49:56 UTC
Bumping severity up as this is a regression.
Comment 3 Srdjan Jankovic 2016-03-11 01:05:18 UTC Comment hidden (obsolete)
Comment 4 Srdjan Jankovic 2016-03-11 01:08:23 UTC
Just an idea, in such situations, maybe have 2 patches:
* Tests that fail
* Fix (that makes tests pass)
Comment 5 Jonathan Druart 2016-03-11 10:30:40 UTC
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>
Comment 6 Brendan Gallagher 2016-03-11 15:24:48 UTC
Pushed to Master - Should be in the May 2016 release.  Thanks
Comment 7 Julian Maurice 2016-03-14 09:13:01 UTC
Patch pushed to 3.22.x, will be in 3.22.5