report templates can cause unconstrained fetches of large tables when creating a new report
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Evergreen |
New
|
High
|
Unassigned |
Bug Description
Report templates can be constructed such that the act of opening the interface to create a report from such a template can trigger fetching all of the rows from a large table.
For example, consider a template that has a filter on the asset.copy ID. Because acp.id has a reporter:selector defined in the IDL (the barcode), the interface for creating a report will attempt to build a selection widget that lists all of the copy barcodes for OUs that the staff user has access to. It does this by calling open-ils.
The bad effects can include:
- since the cstore backend will attempt to fetch and store many rows, it may cause an out-of-memory situation
- if the fetch actually succeeds, the process of constructing a widget with thousands or hundreds of thousands of rows may choke the user's browser
Possible solutions and workarounds include:
- have open-ils.
- in oils_rpt_
- depending on how bug 1830804 is addressed, have the reports interface refuse to build oilsRptRemoteWi
Evergreen 3.2+
Example of a report template that exercises the bug