Update ChangeLog for 3.2.3
authorJason Boyer <JBoyer@equinoxOLI.org>
Mon, 1 May 2023 15:26:37 +0000 (11:26 -0400)
committerJason Boyer <JBoyer@equinoxOLI.org>
Mon, 1 May 2023 15:26:37 +0000 (11:26 -0400)
Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
ChangeLog

index b009a0a..99ae428 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-commit ee76ac1a005350290823affc66001edffd956883
-Author: Galen Charlton <gmc@equinoxOLI.org>
-Date:   Tue Nov 9 12:08:03 2021 -0500
+commit e9bdf28cd59b14159b1b2d8c177f382d8ea67706
+Author: Jason Boyer <JBoyer@equinoxOLI.org>
+Date:   Mon May 1 11:17:14 2023 -0400
 
-    bump up version numbers for 3.2.2 release
+    Bump version number for 3.2.3
     
-    Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
+    Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
 
 5      5       README
 2      2       src/perl/lib/OpenSRF.pm
-1      1       src/python/setup.py
 1      1       version.m4
 
-commit 7d0af3f89bd57e8bccc6ce73a0dabeb5ec0f62a7
-Author: Galen Charlton <gmc@equinoxOLI.org>
-Date:   Tue Nov 9 12:06:31 2021 -0500
-
-    update release notes for 3.2.2
-    
-    Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
-
-34     2       doc/RELEASE_NOTES.txt
-
-commit 23a7aaa03ddc8704fa19c135ce5eae52ceb6e8ca
-Author: Galen Charlton <gmc@equinoxOLI.org>
-Date:   Tue Nov 9 11:55:54 2021 -0500
+commit a1eb15725e6974cea1646a0dcaa2a431130692ac
+Author: Jason Boyer <JBoyer@equinoxOLI.org>
+Date:   Mon May 1 11:13:19 2023 -0400
 
-    LP1940146: (follow-up) remove a math_xul_client file from .gitignore
+    Update release notes for 3.2.3
     
-    Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
+    Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
 
-0      1       .gitignore
+27     1       doc/RELEASE_NOTES.txt
 
-commit c39f0561a2654a33a4cac052fc3c0097f7614ee2
-Author: Jason Stephenson <jason@sigio.com>
-Date:   Thu Aug 19 14:13:10 2021 -0400
+commit 40f994df91988a9c16a41c00689abe14870f695c
+Author: Chris Sharp <csharp@georgialibraries.org>
+Date:   Fri Jan 22 10:23:51 2021 -0500
 
-    LP1940146: Clarify README
+    LP#1912796: include systemd installation instructions in OpenSRF installation docs.
     
-    Clarify Ejabberd shaper settings instructions for Debian 11, Bullseye
-    in the README.
+    Create an example systemd unit file that can be copied into place
+    and update the README with those instructions.
     
-    Signed-off-by: Jason Stephenson <jason@sigio.com>
     Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
-    Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
+    Signed-off-by: Josh Stompro <stompro@stompro.org>
+    Signed-off-by: Jane Sandberg <js7389@princeton.edu>
 
-2      2       README
+16     0       README
+17     0       examples/websocketd-osrf.service.example
+ create mode 100644 examples/websocketd-osrf.service.example
 
-commit dc748175b53a8a95a82bbc97c2ecebcd5a5bd95d
-Author: Jason Boyer <JBoyer@equinoxOLI.org>
-Date:   Tue Aug 17 14:01:55 2021 -0400
+commit 37282ddf6cada0f32988558f3763de0485649dfc
+Author: Galen Charlton <gmc@equinoxOLI.org>
+Date:   Thu May 19 09:44:05 2022 -0400
 
-    Remove XUL opensrf.math Client
+    LP#1974193: fix memory leak in C apps
     
-    Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
-    Signed-off-by: Jason Stephenson <jason@sigio.com>
-    Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
-    Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
-
-1      3       Makefile.am
-1      2       configure.ac
-0      19      examples/math_xul_client/Makefile.in
-0      98      examples/math_xul_client/install.js
-0      53      examples/math_xul_client/math/content/conf/client_config.xml
-0      17      examples/math_xul_client/math/content/contents.rdf
-0      38      examples/math_xul_client/math/content/math.xul
-0      50      examples/math_xul_client/math/content/math_app.js
-0      32      examples/math_xul_client/math/content/math_overlay.xul
-0      19      examples/math_xul_client/math/locale/en-US/contents.rdf
-0      7       examples/math_xul_client/math/locale/en-US/math.dtd
-0      23      examples/math_xul_client/math/skin/contents.rdf
-0      4       examples/math_xul_client/math/skin/math.css
- delete mode 100644 examples/math_xul_client/Makefile.in
- delete mode 100644 examples/math_xul_client/install.js
- delete mode 100644 examples/math_xul_client/math/content/conf/client_config.xml
- delete mode 100644 examples/math_xul_client/math/content/contents.rdf
- delete mode 100644 examples/math_xul_client/math/content/math.xul
- delete mode 100644 examples/math_xul_client/math/content/math_app.js
- delete mode 100644 examples/math_xul_client/math/content/math_overlay.xul
- delete mode 100644 examples/math_xul_client/math/locale/en-US/contents.rdf
- delete mode 100644 examples/math_xul_client/math/locale/en-US/math.dtd
- delete mode 100644 examples/math_xul_client/math/skin/contents.rdf
- delete mode 100644 examples/math_xul_client/math/skin/math.css
-
-commit 7edcd9fb8dabf893ebb7dfd85f3c06b9c9f9b667
-Author: Jason Boyer <JBoyer@equinoxOLI.org>
-Date:   Tue Aug 17 14:00:20 2021 -0400
-
-    LP1940146: Update documentation
+    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: Jason Boyer <JBoyer@equinoxOLI.org>
-    Signed-off-by: Jason Stephenson <jason@sigio.com>
-    Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
     Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
+    Signed-off-by: Jason Stephenson <jason@sigio.com>
 
-35     19      README
+6      2       src/libopensrf/osrf_application.c
 
-commit 12707b126fccbabcba31b004157cde1a63a27580
-Author: Jason Boyer <jboyer@bullseye.localdomain>
-Date:   Tue Aug 17 13:46:11 2021 -0400
+commit cd44561e7fe7af13a891be488a851185201f0aad
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Mon Oct 26 11:27:00 2020 -0400
 
-    LP1940146: Debian Bullseye Installation Support
+    LP1827055 Remove Python libs, install bits, and docs
     
-    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: Bill Erickson <berickxx@gmail.com>
     Signed-off-by: Jason Stephenson <jason@sigio.com>
-    Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
-    Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
 
-21     58      src/extras/Makefile.install
+1      6       Makefile.am
+1      22      README
+0      3       bin/opensrf-perl.pl.in
+0      4       bin/osrf_config.in
+1      52      configure.ac
+0      27      examples/math_client.py.in
+0      26      examples/simple_text.py.in
+0      8       src/Makefile.am
+0      14      src/extras/Makefile.install
+0      27      src/python/Makefile.am
+0      270     src/python/opensrf.py.in
+0      0       src/python/osrf/__init__.py
+0      196     src/python/osrf/app.py
+0      0       src/python/osrf/apps/__init__.py
+0      118     src/python/osrf/apps/example.py
+0      65      src/python/osrf/cache.py
+0      72      src/python/osrf/conf.py
+0      83      src/python/osrf/const.py
+0      50      src/python/osrf/ex.py
+0      227     src/python/osrf/gateway.py
+0      349     src/python/osrf/http_translator.py
+0      200     src/python/osrf/json.py
+0      199     src/python/osrf/log.py
+0      258     src/python/osrf/net.py
+0      288     src/python/osrf/net_obj.py
+0      489     src/python/osrf/server.py
+0      512     src/python/osrf/ses.py
+0      39      src/python/osrf/set.py
+0      131     src/python/osrf/stack.py
+0      124     src/python/osrf/system.py
+0      162     src/python/osrf/xml_obj.py
+0      24      src/python/setup.py
+0      538     src/python/srfsh.py
+0      89      src/python/tests/json_test.py
+0      75      src/python/tests/net_obj_test.py
+0      30      src/python/tests/test_coverage.py
+ delete mode 100644 examples/math_client.py.in
+ delete mode 100644 examples/simple_text.py.in
+ delete mode 100644 src/python/Makefile.am
+ delete mode 100755 src/python/opensrf.py.in
+ delete mode 100644 src/python/osrf/__init__.py
+ delete mode 100644 src/python/osrf/app.py
+ delete mode 100644 src/python/osrf/apps/__init__.py
+ delete mode 100644 src/python/osrf/apps/example.py
+ delete mode 100644 src/python/osrf/cache.py
+ delete mode 100644 src/python/osrf/conf.py
+ delete mode 100644 src/python/osrf/const.py
+ delete mode 100644 src/python/osrf/ex.py
+ delete mode 100644 src/python/osrf/gateway.py
+ delete mode 100644 src/python/osrf/http_translator.py
+ delete mode 100644 src/python/osrf/json.py
+ delete mode 100644 src/python/osrf/log.py
+ delete mode 100644 src/python/osrf/net.py
+ delete mode 100644 src/python/osrf/net_obj.py
+ delete mode 100644 src/python/osrf/server.py
+ delete mode 100644 src/python/osrf/ses.py
+ delete mode 100644 src/python/osrf/set.py
+ delete mode 100644 src/python/osrf/stack.py
+ delete mode 100644 src/python/osrf/system.py
+ delete mode 100644 src/python/osrf/xml_obj.py
+ delete mode 100644 src/python/setup.py
+ delete mode 100755 src/python/srfsh.py
+ delete mode 100644 src/python/tests/json_test.py
+ delete mode 100644 src/python/tests/net_obj_test.py
+ delete mode 100644 src/python/tests/test_coverage.py
 
-commit dd209cdd837350a75f13f62f4fd7bb3cdb544bcf
-Author: Jason Stephenson <jason@sigio.com>
-Date:   Wed Oct 28 11:32:45 2020 -0400
+commit 66146fbc7b330da4458da1ab3811caf8967b7b6a
+Author: Galen Charlton <gmc@equinoxOLI.org>
+Date:   Tue Apr 26 16:49:55 2022 -0400
 
-    Lp 1901899: Remove References to Ubuntu 16.04
+    LP#1970469: fix responses streamed out of order due to chunking
     
-    Remove references to Ubuntu 16.04 Xenial Xerus in the README and
-    Makefile.install.
+    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: Jason Stephenson <jason@sigio.com>
-    Signed-off-by: Ben Shum <ben@evergreener.net>
     Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
+    Signed-off-by: Mike Rylander <mrylander@gmail.com>
 
-3      4       README
-1      4       src/extras/Makefile.install
+5      0       src/libopensrf/osrf_application.c
+12     0       src/perl/lib/OpenSRF/AppSession.pm
 
-commit fb9cb5fa50968b36e928056e4b579f9035081ba4
-Author: Jason Stephenson <jason@sigio.com>
-Date:   Mon Oct 26 13:41:44 2020 -0400
+commit 0821dbdc35d1fa646d3bb30ef97bbde1bcf15b97
+Author: Bill Erickson <berickxx@gmail.com>
+Date:   Wed May 13 13:55:43 2020 -0400
 
-    Lp 1875544: Add Installation Support for Ubuntu 20.04 Focal Fossa
+    LP#1919502 C listener backlog loop speedbump
     
-    Update README and install prerequisites with ubuntu-focal target.
+    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.
     
-    Consolidate Ubuntu Makefile.install targets to remove redundant
-    "code."
+    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: Jason Stephenson <jason@sigio.com>
     Signed-off-by: Bill Erickson <berickxx@gmail.com>
-    Signed-off-by: Ben Shum <ben@evergreener.net>
+    Signed-off-by: Jeff Davis <jeff.davis@bc.libraries.coop>
     Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
 
-4      3       README
-11     17      src/extras/Makefile.install
+5      2       src/libopensrf/osrf_prefork.c
 
-commit 5a41d66a9215a7da7f0a2dd2b3dd23610ba6d01a
-Author: kenstir <kenstir@gmail.com>
-Date:   Sat Jun 13 21:43:57 2020 -0400
+commit caa10d7d3f4611e78918091dba6e40b2f37f6ba8
+Author: Jason Boyer <JBoyer@EquinoxInitiative.org>
+Date:   Wed Jun 2 09:43:12 2021 -0400
 
-    Fix LP#1883169 by using growing_buffer
+    LP1930578: Really Stop Single Services
     
-    When presented with an error message that has more than 32 characters
-    that need to be escaped, the gateway fails to reserve enough space in
-    the memory allocation it uses to build the JSON message.  Instead of
-    guessing at how much space will be needed, and failing for some
-    messages, this commit uses growing_buffer to build the JSON.
-    growing_buffer is limited to 10Mb, so while large messages could be
-    generated, they won't cause an OOM on the server side.
+    Use the same timeout / escalation method for single services as is
+    used for all services. Punted on any real refactoring for now.
     
-    Signed-off-by: Ken Cox <kenstir@gmail.com>
-    Signed-off-by: Mike Rylander <mrylander@gmail.com>
+    Signed-off-by: Jason Boyer <JBoyer@equinoxOLI.org>
+    Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
 
-8      8       src/gateway/osrf_json_gateway.c
+6      1       bin/opensrf-perl.pl.in