LP#1974195: fix memory leak when performing fleshed Fieldmapper search
authorGalen Charlton <gmc@equinoxOLI.org>
Thu, 19 May 2022 14:00:48 +0000 (10:00 -0400)
committerJason Stephenson <jason@sigio.com>
Tue, 31 May 2022 14:33:31 +0000 (10:33 -0400)
This patch fixes a memory leak that occurs when performing
a fleshed search of an IDL class via open-ils.cstore, open-ils.pcrud,
or open-ils.rstore. It removes a debug-level log entry that didn't
free a temporary string.

To test
-------
[1] Perform a PCRUD search that includes fleshing and retrieves
    a large responses. One example is a search on bre that fleshes
    call numbers and copies and returns a few hundred bibs.
[2] Observe that the PCRUD drone that serviced the request has
    increased its memory usage significantly.
[3] Apply the patch and repeat step 1. This time, the drone's memory
    usage should not (persistently) increase as much.

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Signed-off-by: Jason Stephenson <jason@sigio.com>

Open-ILS/src/c-apps/oils_sql.c

index 42a846a..93f2577 100644 (file)
@@ -6388,8 +6388,6 @@ static jsonObject* doFieldmapperSearch( osrfMethodContext* ctx, osrfHash* class_
 
                                        osrfLogDebug( OSRF_LOG_MARK, "Fleshing of %s complete",
                                                osrfHashGet( kid_link, "field" ) );
-                                       osrfLogDebug( OSRF_LOG_MARK, "%s", jsonObjectToJSON( cur ));
-
                                } // end while loop traversing list of fleshable fields
                        }