LP1999823: Bump libtool library version Increasing Current, resetting Revision, and increasing Age, which should mean that binaries built against the previous version can still use this version. Signed-off-by: Jason Boyer <jboyer@equinoxOLI.org> Signed-off-by: Jeff Davis <jeff.davis@bc.libraries.coop> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
LP1999823: Additional growing_buffer function names If mod_shib is installed on Ubuntu our apache modules will crash because of a function name collision with libssh. This patch adds additional names for our growing_buffer manipulation functions so the modules can use them but the old names are still available for other users. Signed-off-by: Jason Boyer <jboyer@equinoxOLI.org> Signed-off-by: Jeff Davis <jeff.davis@bc.libraries.coop> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
LP2023560: Debian Bookworm support Note that the libssl-dev package can be removed once it's installed as a libmemcached-dev dependency. Amended commit: Fixed "debain" typo in src/extras/Makefile.install. Signed-off-by: Jason Boyer <boyer.jason@gmail.com> Signed-off-by: Jason Stephenson <jason@sigio.com>
Fix error in README The suggestion to copy the websocketd-osrf.service.example file was missing the 'd' in the source file. Someone copying and pasting from the README would encounter an error when copying the file. This commit adds the missing 'd' so a copy and paste will work. Signed-off-by: Jason Stephenson <jason@sigio.com>
LP1990969: Remove Ubuntu Bionic Beaver Installation Prerequisites Since Ubuntu Bionic Beaver (18.04) is soon EOL, remove it as a viable installation target. Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Jane Sandberg <js7389@princeton.edu>
LP1973060: Modernize XMPP Legacy Error Code Handling Processone removed the setting of the legacy XMPP error code from the Erlang XMPP package with release 1.5.6 in November 2021. Using OpenSRF with any version of Ejabberd released since the 1.5.6 XMPP package will cause OpenSRF processes to segfault when a XMPP error message is processed. This was specifically noticed with Ejabberd 21.12 on Ubuntu 22.04. To verify the bug, you may install OpenSRF on any system running Ejabberd 21.12 (or any later version) and make a request to a non-existent service. The following srfsh request should suffice to cause a segfault: request math add 2,2 NOTE: The request is to the non-existent "math" service. After applying this patch, instead of a segfault in srfsh, you should see an error message. OpenSRF should continue to function normally with earlier releases of the Erlang XMPP library and Ejabberd. Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jane Sandberg <sandbergja@gmail.com>
LP1970667: Add Installation Support for Ubuntu 22.04 (Jammy Jellyfish) Update the prerequisite installation, C unit tests, and README for Ubuntu 22.04 LTS (Jammy Jellyfish). Update configure.ac for recent autoconf/libtool changes Suggest disabling apparmor for ejabberd in README Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jane Sandberg <sandbergja@gmail.com>
LP#1912796: include systemd installation instructions in OpenSRF installation docs. Create an example systemd unit file that can be copied into place and update the README with those instructions. Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Josh Stompro <stompro@stompro.org> Signed-off-by: Jane Sandberg <js7389@princeton.edu>
LP#1974193: fix memory leak in C apps This patch fixes a memory leak that can occur when a C app does the following: - send a non-chunked response - add a response to a bundle to send later - send a request complete status message The leak could add up for long-lived C apps. To test ------- [1] Set a up C app such as Evergreen's open-ils.pcrud and send a lot of requests to it whose responses would not be large enough to be chunked, but not so many as to go over max_requests. It may be helpful to limit the service to just a single child. [2] Check memory usage of the child after the requests are processed. [3] Apply the patch and repeat step 1. This time, memory usage should be less. Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Jason Stephenson <jason@sigio.com>
LP#1970469: fix responses streamed out of order due to chunking If a streaming method starts off sending a couple small responses followed by a large one, the responses can end up received out of order under this scenario: - The initial small responses get stashed to be sent out as a bundle - The large response, if big enough to require chunking, gets sent out as a set of partial responses. However, any messages queued up to go out as a bundle remain in the queue. - When the method completes, or if further responses result in exceeding the maximum bundle size, the queued messages get sent _after_ the chunked response. This affects services written in C and Perl. To test ------- C service ========= [1] Add the following stored procedure to an Evergreen database: CREATE OR REPLACE FUNCTION public.lp1970469_sample() RETURNS SETOF TEXT AS $$ BEGIN RETURN NEXT 'abc'; RETURN NEXT 'def'; RETURN NEXT rpad('long', 65000, 'x'); RETURN NEXT 'xyz'; RETURN; END; $$ LANGUAGE PLPGSQL IMMUTABLE; [2] Run the following srfsh command: srfsh# open-ils.cstore open-ils.cstore.json_query.atomic {"from":["public.lp1970469_sample"]} [3] Note that longxxxxx* response is returned first, followed by abc, def, and xyz. [4] Apply the patch and repeat step 2. This time, the responses should be returned in the expected order. Perl service ============ [1] In an Evergreen database, attach a couple hundred items to a record. [2] Run the following srfsh command: srfsh# request open-ils.supercat open-ils.supercat.record.holdings_xml.retrieve BIBID, "-", null, 1 [3] If enough items were attached, the first response streamed will start with a <volume> element rather than the <holdings> element and the overall response will not be well-formed XML. [4] Apply the patch and repeat step 2. This time, the parts of the response should be in the expected order. Note that this test scenario models an Evergreen glitch seen in the wild that causes requests for https://EGSERVER//opac/extras/supercat/retrieve/marcxml-full/record/BIBID to fall if there are a lot of items attached to the bib. Signed-off-by: Galen Charlton <gmc@equinoxOLI.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
LP#1919502 C listener backlog loop speedbump When the request backlog contains items in the C forking code, attempts to process the request run in a tight loop without stopping until the backlog is once again empty. This can lead to spewing "Could not launch a new child" warning messages at a high rate, saturating log files. This commit adds a 1 second speed bump between backlog processing loops to allow time for drones to complete their task and start processing the remaining queued requests. The delay has a secondary affect of limited the speed of the warning log spewing. This 1-second speedbump logic matches that of the Perl code. Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Jeff Davis <jeff.davis@bc.libraries.coop> Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Remove XUL opensrf.math Client Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
LP1940146: Debian Bullseye Installation Support This commit also addresses LP 1940145: Remove Installation Support for Debian Jessie. The individual distribution-specific targets (stretch, buster, etc.) have also been removed since they are now all the same, much like both Ubuntu targets just call ubuntu_generic. The two generic targets have been left in case they're necessary again in future. Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>