[Koha-bugs] [Bug 23624] Count rows in report without (potentially) consuming all memory

bugzilla-daemon at bugs.koha-community.org bugzilla-daemon at bugs.koha-community.org
Thu Sep 19 20:45:59 CEST 2019


https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=23624

Liz Rea <wizzyrea at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #92968|0                           |1
        is obsolete|                            |

--- Comment #9 from Liz Rea <wizzyrea at gmail.com> ---
Created attachment 92974
  -->
https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=92974&action=edit
Bug 23624: Count rows in report without (potentially) consuming all memory

C4::Reports::Guided::nb_rows (called by get_prepped_report in
reports/guided_reports.pl) uses DBI::fetchall_arrayref to retrieve all rows at
once; counts them; and then discards the rows and returns the count.  This has
the potential, if the number of rows is very large, to exhaust all available
memory.

(Other code in guided_reports.pl has the same potential effect, but because the
solution to that is much less straightforward it will be addressed in a
separate bug report.)

This patch uses the second ($max_rows) parameter to DBI::fetchall_arrayref to
retrieve a smaller number (1,000) of rows at a time, looping until all results
have been retrieved.  This will only use as much memory as the maximum amount
used by a single call to DBI::fetchall_arrayref.

Test Plan:
1) Create a report the will generate a huge number of results
2) Run the report, watch your memory usage spike
3) Apply this patch
4) Restart all the things!
5) Run the report again, note your memory usage is much lower

Signed-off-by: Kyle M Hall <kyle at bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen at theke.io>

Signed-off-by: Liz Rea <wizzyrea at gmail.com>

-- 
You are receiving this mail because:
You are watching all bug changes.


More information about the Koha-bugs mailing list