commit b74533255c61937b96fb4326b9f94c18aaa37d4d Author: Galen Charlton Date: Wed Jan 9 17:18:48 2019 -0500 bump up version numbers for 3.1.0-beta release Signed-off-by: Galen Charlton 6 6 README 3 3 doc/RELEASE_NOTES.txt 2 2 src/perl/lib/OpenSRF.pm 1 1 src/python/setup.py 1 1 version.m4 commit 0ed43a65d9f814540a9b0ec087ca29bf8090f7b2 Author: Galen Charlton Date: Wed Jan 9 17:04:24 2019 -0500 draft 3.1.x release notes for 3.1-beta Signed-off-by: Galen Charlton 154 0 doc/RELEASE_NOTES.txt create mode 100644 doc/RELEASE_NOTES.txt commit d7e9df6838f1c9a72db3fd41556d178cfe7f6700 Author: Galen Charlton Date: Wed Dec 12 14:35:56 2018 -0500 LP#1729610: extend backlog queue to C apps This patch extends the notion of a backlog queue to C apps and offers the same functionality as the Perl side of the patch series: - max_backlog_queue configuration setting - ability to queue messages up to the configured limit - ability to drop requests that would overflow the backlog queue and send status 503 exceptions back to the client. This patch also adds a new service, opensrf.cslow, that implements a opensrf.cslow.wait method similar to the Perl opensrf.slooooooow service. To test ------- [1] Set a low max_backlog_queue for opensrf.cslow and a low max_children. [2] Arrange for srfsh to fire off a bunch of opensrf.cslow.wait requests. [3] Verify that requests that come in after the backlog queue fills up immediately get 503 exceptions. Signed-off-by: Galen Charlton Signed-off-by: Bill Erickson Signed-off-by: Mike Rylander 19 0 examples/opensrf.xml.example 5 1 src/c-apps/Makefile.am 58 0 src/c-apps/osrf_cslow.c 117 40 src/libopensrf/osrf_prefork.c create mode 100644 src/c-apps/osrf_cslow.c commit efa9b713d5341458a3afaa26d1cf9e750fa78654 Author: Galen Charlton Date: Wed Nov 7 12:03:17 2018 -0500 LP#1729610: return new OpenSRF status if backlog queue fills up This patch teaches Perl services how to return a new OpenSRF status, OSRF_STATUS_SERVICEUNAVAILABLE (code 503) if the backlog queue for a service gets full. To test ------- [1] Set a low max_backlog_queue for opensrf.sloooow and a low max_children. [2] Arrange for srfsh to fire off a bunch of opensrf.sloooow.wait requests. [3] Verify that requests that come in after the backlog queue fills up immediately get 503 exceptions. Signed-off-by: Galen Charlton Signed-off-by: Bill Erickson Signed-off-by: Mike Rylander 1 0 include/opensrf/osrf_message.h 1 0 src/javascript/opensrf.js 3 0 src/perl/lib/OpenSRF/DomainObject/oilsResponse.pm 42 2 src/perl/lib/OpenSRF/Server.pm 1 0 src/python/osrf/const.py commit 848843b1cda6d79d3aec589746abf7a8efdc313d Author: Galen Charlton Date: Tue Nov 6 15:14:55 2018 -0500 LP#1729610: make it possible to set max_backlog_queue in opensrf.xml This patch adds a new service configuration option, max_backlog_queue, to allow controlling the size of the backlog queue. If not otherwise specified in opensrf.xml, max_backlog_queue defaults to 1000. Signed-off-by: Galen Charlton Signed-off-by: Bill Erickson Signed-off-by: Mike Rylander 1 0 examples/opensrf.xml.example 1 0 src/perl/lib/OpenSRF/System.pm commit 60bcf74ecc5a5c7d0740d7054e829eef19828091 Author: Remington Steed Date: Wed Jan 31 16:05:52 2018 -0500 LP#1729610: Fix incorrect param description Mike confirmed that the code expects "pause" to be an integer. This commit changes the description to reflect that, and to mention the default value. Signed-off-by: Remington Steed Signed-off-by: Galen Charlton Signed-off-by: Bill Erickson Signed-off-by: Mike Rylander 1 1 src/perl/lib/OpenSRF/Application/Slooooooow.pm commit a9da9c7b25ef90276d41ba84ba8ccf0ea856da1b Author: Mike Rylander Date: Tue Oct 24 16:45:09 2017 -0400 LP#1729610: Add some debug/internal logging to backlog queue Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton Signed-off-by: Bill Erickson Signed-off-by: Mike Rylander 7 0 src/perl/lib/OpenSRF/Server.pm commit 1abec0da61a46fa5a4a881c29a2e95a51e9013fa Author: Mike Rylander Date: Wed Nov 1 11:11:08 2017 -0400 LP#1729610: Add a service useful for testing behavior in slow response conditions This service, opensrf.slooooooow, offers a opensrf.slooooooow.wait method that waits for the number of seconds specified in its sole parameter. Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton Signed-off-by: Bill Erickson Signed-off-by: Mike Rylander 19 0 examples/opensrf.xml.example 48 0 src/perl/lib/OpenSRF/Application/Slooooooow.pm create mode 100644 src/perl/lib/OpenSRF/Application/Slooooooow.pm commit 0201ca954002eb241d277c3068659bb1f8100bab Author: Mike Rylander Date: Tue Oct 24 13:27:37 2017 -0400 LP#1729610: Allow queuing (for a while) during child backlog This patch teaches OpenSRF listeners for Perl services how to maintain a queue of requests in case no drone process is immediately available to process a requeust. Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton Signed-off-by: Bill Erickson Signed-off-by: Mike Rylander 35 5 src/perl/lib/OpenSRF/Server.pm 2 3 src/perl/lib/OpenSRF/Transport/SlimJabber/XMPPReader.pm commit f3eab1715079243d541dc12fd90db005630ffec9 Author: Bill Erickson Date: Tue Nov 13 17:21:18 2018 -0500 LP#1803182 Websocketd graceful shutdown support Give websocketd clients a chance to complete any requests that are in-process at time of shutdown. Graceful shutdown is initiated by sending a SIGUSR1 signal to the websocket-osrf child processes or to the parent process group. This can be done directly via: $ kill -s USR1 -$websocketd_parent_pid Or via systemd for systemd users: $ sudo systemctl kill -s USR1 websocketd-osrf Note the websocketd parent process ignores SIGUSR1. Once initiated, the websocketd backend goes into shutdown mode polling for a graceful shutdown window, which occurs when all request up to now have been completed. Once that moment arrives, the client is kicked off and must connect to a new websocketd instance to issue any new requests. The polling period lasts for SHUTDOWN_MAX_GRACEFUL_SECONDS seconds (in osrf-websocket-stdio.c), which currently defaults to 2 minutes. Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 91 13 src/websocket-stdio/osrf-websocket-stdio.c commit 304365165e7ba0cc08bb6c5f0ba25f0b541fd27d Author: Bill Erickson Date: Mon Jul 24 12:08:56 2017 -0400 LP#1706147 Perl Force-Recycle drone option Creates an API-level option to inform the OpenSRF drone management code that the running drone should be recycled upon completion of the current OpenSRF session. This allows for quicker release of resources consumed by the drone. To use: sub some_api_method { my ($self, $client, ...) = @_; $self->session->force_recycle(1); ... } Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 10 0 src/perl/lib/OpenSRF/AppSession.pm 15 1 src/perl/lib/OpenSRF/Server.pm commit 51a4651186c94686051262a9255d165eadd4f049 Author: Bill Erickson Date: Mon Aug 27 10:12:57 2018 -0400 LP#1684970 Translator compatible with mod_remoteip Teach the OSRF Translator to request the IP address of the user agent (e.g. web browser) instead of the IP address of the up stream client, which may be a proxy, using the Apache 2.4 request_rec->useragent_ip value. http://httpd.apache.org/docs/2.4/developer/new_api_2_4.html This make is possible for the translator to access the client IP with Apache's mod_remoteip enabled and configured. Includes sample config and install documentation. Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 17 0 README 1 1 src/gateway/osrf_http_translator.c commit 1423787b6076daeb18176e907b1ed307255ffbcb Author: Bill Erickson Date: Thu Sep 13 13:08:37 2018 -0400 LP#1711145 NGINX sample websocketd configs Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 20 3 examples/nginx/osrf-ws-http-proxy commit 3db305ba4329b4c93d16b03800755d5807de4de0 Author: Bill Erickson Date: Wed Jul 11 12:27:05 2018 -0400 LP#1711145 NGINX sample config security improvements * Adds security recommendations from https://mozilla.github.io/server-side-tls/ssl-config-generator/ * Enables http2 * Apply a 5-minute proxy read timeout to avoid too-short timeouts on long API calls. * Adds a (commented) section on sending nginx logs to syslog Includes INSTALL notes on generating the dhparam file. Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 10 2 README 30 2 examples/nginx/osrf-ws-http-proxy commit 5c803ae4550bf0e4a992c217baeaffabee30c45a Author: Jason Stephenson Date: Mon Nov 5 10:42:32 2018 -0500 Reorder Ejabberd configuration steps for Ubuntu 18.04. Rearrange the steps for modifying /etc/ejabberd/ejabberd.yml on Ubuntu 18.04 so that they are in the same order that they appear in the file. Signed-off-by: Jason Stephenson 6 6 README commit 705599ff6aa29857e8ed1b3da11e6e8ba05e9aa9 Author: Bill Erickson Date: Tue Jun 12 12:12:45 2018 -0400 LP#1776510 JS libs handle transport errors Teach the websocket client code to look for the transport_error flag applied to the websocket wrapper message by the websocket gateway when a request for an unavilable service is made. When encountered, fire the transport or generic error handler callbacks, if available. Avoid any attempts to further process the message. Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 23 0 src/javascript/opensrf.js commit 884e00c41abd33ed8785acc1bc5958fd027a0807 Author: Ben Shum Date: Thu Sep 20 11:34:45 2018 -0400 Update README to include Bionic steps Note the use of mod_legacy_auth in ejabberd 18.x version for Ubuntu Bionic Signed-off-by: Ben Shum Signed-off-by: Jason Stephenson Signed-off-by: Galen Charlton 29 2 README commit f234372cb5f175c79ad9fe8279ae445b78fdaeb5 Author: Chris Sharp Date: Tue Aug 7 19:43:45 2018 -0400 Add support for Ubuntu 18.04 Bionic Beaver to Makefile.install Signed-off-by: Chris Sharp Signed-off-by: Ben Shum Signed-off-by: Jason Stephenson Signed-off-by: Galen Charlton 13 0 src/extras/Makefile.install commit 9682d15475485522812ac73ac10e283d11176f7e Author: Bill Erickson Date: Thu Sep 20 18:04:09 2018 -0400 LP#1703411 XMPP opensrf element make check repairs Update the transport_message unit tests to check for the new element for relaying custom commands. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson Signed-off-by: Mike Rylander 3 2 tests/check_transport_message.c commit 744f0d1f2775bd5c51bfbf47d4d89a29001aafcf Author: Bill Erickson Date: Wed Sep 19 15:34:49 2018 -0400 LP#1703411 XMPP opensrf sub-element repairs * Message template typo repair -- missing "'" * XPath repair on path to opensrf sub-element for Perl * Move 'type' attribute get/set back up to the for Perl. * Clean up code duplication in the C message building libs. * Squash a centuries-old memory leak where xmlFree(sender) was only called if a router_from was not supplied. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson Signed-off-by: Mike Rylander 17 54 src/libopensrf/transport_message.c 3 3 src/perl/lib/OpenSRF/Transport/SlimJabber/XMPPMessage.pm 2 2 src/perl/lib/OpenSRF/Transport/SlimJabber/XMPPReader.pm commit b44fb8675a3b9983d3d3c1f2586006520b6f7281 Author: Mike Rylander Date: Tue Aug 28 14:32:02 2018 -0400 LP#1703411: Move OpenSRF XMPP attrs to subelement Modern versions of Ejabberd strip custom XML attributes which appear outside of custom elements. To support OpenSRF's custom router and osrf_xid commands, move these attributes into a new custom XML element . Signed-off-by: Mike Rylander Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 8 0 src/java/org/opensrf/net/xmpp/XMPPReader.java 70 8 src/libopensrf/transport_message.c 13 8 src/libopensrf/transport_session.c 9 4 src/perl/lib/OpenSRF/Transport/SlimJabber/XMPPMessage.pm 7 2 src/perl/lib/OpenSRF/Transport/SlimJabber/XMPPReader.pm commit 265aa9f8cc12472b347e34a62a8f2655dfb1c51b Author: Jason Stephenson Date: Wed Sep 20 11:56:34 2017 -0400 Lp#1718459: Remove Debian 7 Wheezy installation support. Remove references to Debian 7 Wheezy in the README. Remove src/extras/Makefile.install targets for Wheezy. Remove the examples/apache2 directory, since none of the supported distros come with Apache 2.2 any longer. To test: Simply install on a supported distribution other than Debian 7 Wheezy and do the usual tests. Signed-off-by: Jason Stephenson Signed-off-by: Ben Shum 6 22 README 0 49 examples/apache2/opensrf.conf 0 64 examples/apache2/websockets/apache2.conf 1 13 src/extras/Makefile.install delete mode 100644 examples/apache2/opensrf.conf delete mode 100644 examples/apache2/websockets/apache2.conf commit da7e927c350c3c098b081f432b53cfb3a24ab480 Author: Ben Shum Date: Wed Sep 12 13:07:18 2018 -0400 LP#1777180: Add zip/unzip to prerequisites Need unzip for new websocketd unpackaging. Also get zip just because. Signed-off-by: Ben Shum Signed-off-by: Jason Stephenson 2 0 src/extras/Makefile.install commit d1c33b4b1e2305c4dbb9a54dec22f04f665a7a2c Author: Jason Stephenson Date: Wed Sep 12 10:58:58 2018 -0400 LP#1777180 Update README for websocketd Add optional command to run websocketd without using a proxy. Signed-off-by: Jason Stephenson Signed-off-by: Ben Shum 19 1 README commit 21c9c76332b8a4b591e443d098a0fc78b6db0e9d Author: Bill Erickson Date: Sat Jun 9 19:05:25 2018 -0400 LP#1777180 Websocketd gateway and test scripts Adds a new OpenSRF binary/program for relaying websockets messages to and from a websocketd instance. The new binary (osrf-websocket-stdio) performs the same tasks as the osrf_websocket_translator.c Apache module, minus the Apache module glue and the extra threading required to run within the Apache module. Commit includes 2 test scripts (tester.pl and test-stateful.pl) for generating large series of test messages to send to a websockets instance. tester.pl sends echo requests only, test-stateful.pl sends connect->echo-request->disconnect batches across a configurable number of forked processes. INSTALL document updated to include websocketd setup as an alternative to Apache websockets. Signed-off-by: Bill Erickson Signed-off-by: Jeff Davis Signed-off-by: Jason Stephenson Signed-off-by: Ben Shum 4 0 .gitignore 32 2 README 1 0 configure.ac 1 1 src/Makefile.am 22 0 src/websocket-stdio/Makefile.am 609 0 src/websocket-stdio/osrf-websocket-stdio.c 148 0 src/websocket-stdio/test-stateful.pl 87 0 src/websocket-stdio/tester.pl create mode 100644 src/websocket-stdio/Makefile.am create mode 100644 src/websocket-stdio/osrf-websocket-stdio.c create mode 100755 src/websocket-stdio/test-stateful.pl create mode 100755 src/websocket-stdio/tester.pl commit 6414c2527f6b6857d9f163bdba6f071b09f710a3 Author: Mike Rylander Date: Fri Jul 7 15:22:21 2017 -0400 LP#1702978: memcache Get methods use key as va_list format And, when a key (composed of, say, a username or barcode) has a % in it, bad things happen. We will stop acting as if these are variadic functions now, and also update Evergreen so that it does not do that either. TODO: Make these actually non-variadic, but that breaks ABI. Signed-off-by: Mike Rylander Signed-off-by: Cesar Velez Signed-off-by: Jason Stephenson 13 17 src/libopensrf/osrf_cache.c commit 71720f639e00d0e457bc8f967f8060b579bc2882 Author: Galen Charlton Date: Mon May 7 16:03:16 2018 -0400 LP#1243841: quiet a misleading indentation warning Adjusts a spaces-vs-tabs issue to fix the following compilation warning: osrf_prefork.c: In function ‘check_children’: osrf_prefork.c:1067:5: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation] if( select_ret <= 0 ) // we're done here ^~ osrf_prefork.c:1072:2: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’ cur_child = forker->first_child; ^~~~~~~~~ Signed-off-by: Galen Charlton 1 1 src/libopensrf/osrf_prefork.c commit 0f0a2281767a47c0ab4971d2b0dba5da10c6907b Author: Jason Stephenson Date: Tue Nov 7 16:39:39 2017 -0500 LP#1243841 - Quiet remaining Make install warnings. We silence the following warnings: apachetools.c:179:15: warning: initialization discards 'const' qualifier from pointer target type [enabled by default] apachetools.c:181:8: warning: assignment discards 'const' qualifier from pointer target type [enabled by default] apachetools.c:183:8: warning: assignment discards 'const' qualifier from pointer target type [enabled by default] ./osrf_websocket_translator.c:541:9: warning: return makes integer from pointer without a cast [enabled by default] ./osrf_http_translator.c:300:25: warning: passing argument 1 of 'free' discards 'const' qualifier from pointer target type [enabled by default] Signed-off-by: Jason Stephenson Signed-off-by: Galen Charlton 1 1 src/gateway/apachetools.c 1 1 src/gateway/osrf_http_translator.c 1 1 src/gateway/osrf_websocket_translator.c commit f47f108e7a2af04360c872313978be6ce71c5c25 Author: Jason Stephenson Date: Tue Nov 7 15:58:05 2017 -0500 LP#1243841 - Quiet additional Make warnings and some code cleanup. We make the following warnings go away: osrf_legacy_json.c:607:6: warning: variable ‘fourth_dash’ set but not used [-Wunused-but-set-variable] osrf_legacy_json.c:836:5: warning: passing argument 3 of ‘makeNode’ discards ‘const’ qualifier from pointer target type [enabled by default] utils.c:133:2: warning: format not a string literal and no format arguments [-Wformat-security] We also cleanup the while block nested in a do while block around line 63 of osrf_cache.c to be more readable by adding braces and breaking it across 3 lines. Signed-off-by: Jason Stephenson Signed-off-by: Galen Charlton 3 1 src/libopensrf/osrf_cache.c 4 6 src/libopensrf/osrf_legacy_json.c 6 3 src/libopensrf/utils.c commit 9dd65c72e5bd114eb1e1d6c2b1388e01df02bbb8 Author: Chris Sharp Date: Tue Sep 19 21:25:12 2017 -0400 LP#1243841 - Quiet wrong format warnings during make install. During make install, the compiler warns that %d expects an int when the actual value is a long int. Changing %d to %ld fixes the issue. Signed-off-by: Chris Sharp Signed-off-by: Jason Stephenson Signed-off-by: Galen Charlton 3 3 src/gateway/osrf_websocket_translator.c commit f8f1813bf17f745719c9dabbdfc5c7bed05c7138 Author: Chris Sharp Date: Tue Sep 19 20:46:28 2017 -0400 LP#1243841 - Quiet unused return value warning in srfsh.c Using the technique described here: https://stackoverflow.com/a/13999461. Signed-off-by: Chris Sharp Signed-off-by: Jason Stephenson Signed-off-by: Galen Charlton 1 1 src/srfsh/srfsh.c commit 6aedae0b42434c95f22924ed4b93ba726353f034 Author: Chris Sharp Date: Tue Sep 19 20:37:13 2017 -0400 LP#1243841 - Quiet unused return value warnings. Using advice given here: https://stackoverflow.com/a/13999461, "The only good (if ugly) way to suppress these is to convert the return value into something that the compiler agrees that you can ignore." Signed-off-by: Chris Sharp Signed-off-by: Jason Stephenson Signed-off-by: Galen Charlton 4 4 src/libopensrf/utils.c commit 2e5c11c04c4db962aebf4b8632ce35a46434cd12 Author: Chris Sharp Date: Tue Sep 19 18:10:00 2017 -0400 LP#1243841 - Wrap truth test using "=" in an extra set of parens. Referring to https://stackoverflow.com/questions/5476759/compiler-warning-suggest-parentheses-around-assignment-used-as-truth-value, it is recommended to wrap variable assignments that are used as a truth test within an extra set of parentheses. Signed-off-by: Chris Sharp Signed-off-by: Jason Stephenson Signed-off-by: Galen Charlton 1 1 src/libopensrf/osrf_cache.c commit e72473d9c43a579ea64cb79fd410d37df23c3445 Author: Jason Stephenson Date: Sun Feb 18 12:12:13 2018 -0500 LP1340982: Ignore both 'comment' and '#comment' nodes in Settings Parse. Modify the XML2perl helper function in OpenSRF::Utils::SettingsParser to ignore comment nodes that have names of comment and #comment. To reproduce the bug: 1. Stop OpenSRF services. 2. Add a XML comment, any text betwen , in the list of MARC templates in the opensrf.xml file. 3. Restart OpenSRF services. 4. In the staff client, go to Cataloging->Create New MARC Record. 5. In the list of templates, you will #comment where you added the comment. (NOTE: I only tested with 1 comment. Things may get worse with more than 1 comment.) 6. There will be an error like the following in the open-ils.cat_stderr.log if you attempt to choose the #comment entry: Caught error from 'run' method: Exception: OpenSRF::EX::ERROR 2018-02-18T11:24:30 OpenSRF::Application /usr/local/share/perl/5.22.1/OpenSRF/Application.pm:240 System ERROR: Unable to open MARC template file: HASH(0x2249928) : To test the fix: 1. Leave the comments in the opensrf.xml file from before. 2. Apply this commit, do make and make install for OpenSRF. 3. Just to make sure, do make and make install for Evergreen. 4. Repeat steps 3 and 4 from above. 5. You should NOT see any templates named #comment. Signed-off-by: Jason Stephenson Signed-off-by: Galen Charlton 1 1 src/perl/lib/OpenSRF/Utils/SettingsParser.pm commit f8dfa10b7613799190524ae1bf635d6c90a97b98 Author: Bill Erickson Date: Tue Apr 10 15:06:56 2018 -0400 LP#1762815 Empty client TZ defaults to server TZ (Perl) Fixes an issue in the Perl client time zone handling that resulted in the server defaulting to UTC time instead of the server time zone when no time zone value was received from the client. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 1 0 src/perl/lib/OpenSRF/DomainObject/oilsMessage.pm commit 4163499191dfb511ba8646ae1c4748d88996558e Author: Bill Erickson Date: Wed Jan 24 15:16:14 2018 -0500 LP#1744158 Websocket proc exits on ejabberd disconnect Any errors relaying websocket messages to OpenSRF now result in the WS client being disconnected, allowing the WS process to exit. This prevents the WS gateway from accepting requests it cannot process and allows the client to connect to a new WS process. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 17 4 src/gateway/osrf_websocket_translator.c commit 50a6bcad0b6d94e8edd15ee460b84466bc55c941 Author: Bill Erickson Date: Wed Jan 31 13:07:41 2018 -0500 LP#1746577 Websocket responder exits on jabber disconnect Regularly check for Jabber socket disconnects in the websocket gateway "responder" thread (that relays messages from opensrf to the WS client) and force a client disconnect when a broken jabber socket is detected. Signed-off-by: Bill Erickson Signed-off-by: Chris Sharp Signed-off-by: Jason Stephenson 18 2 src/gateway/osrf_websocket_translator.c commit a90a1d9a99e510423b9fdc43afcb128ace79a24a Author: Galen Charlton Date: Thu Sep 21 09:51:20 2017 -0400 and continue to bump up version numbers Signed-off-by: Galen Charlton 1 1 version.m4 commit f3775e2c750ce0119c1bb5c2bd286d356bca8467 Author: Galen Charlton Date: Wed Sep 20 10:57:09 2017 -0400 bump up version numbers in master to reflect 3.0 as next major release branch Signed-off-by: Galen Charlton 2 2 src/perl/lib/OpenSRF.pm 1 1 src/python/setup.py commit cace46d9acd653234ffc298d8ea483ce3c08c54d Author: Jason Stephenson Date: Tue Sep 12 11:29:41 2017 -0400 LP#1708048: Fix ld problems by renaming libraries. We add the lib... prefix to all C library names as expected by most linkers. This necessitates changes to the opensrf.xml configuration file. Signed-off-by: Jason Stephenson Signed-off-by: Galen Charlton 2 2 examples/opensrf.xml.example 10 10 src/c-apps/Makefile.am commit a85132ecc7760106a317fdd967236cef99835771 Author: Ben Shum Date: Tue Aug 1 16:07:16 2017 -0400 LP#1708048: Add support for Debian 9 Stretch - Add new make target "debian-stretch" - Add Stretch instructions to README Signed-off-by: Ben Shum Signed-off-by: Jason Stephenson Signed-off-by: Galen Charlton 8 7 README 12 0 src/extras/Makefile.install commit 1f38166249e9f8fbb58ad21d1a00b935200a9278 Author: Galen Charlton Date: Thu Sep 14 17:36:40 2017 -0400 LP#1717350: fix chunking messages sent from Perl services The chunk size adjustments introduced by the patches for bug 1709710 could result in calculating non-integral chunk sizes for Perl services. This in turn led to fractional offsets and lengths being passed to Perl's substr() function; rounding in turn can lead to characters in the response getting silently dropped, which in turn broke parsing the reconstituted response. To test ------- The problem can be reproduced by invoking open-ils.storage open-ils.storage.actor.org_unit.descendants.atomic 1, 0 in Evergreen databases with org unit trees large enough that the response gets chunked. Signed-off-by: Galen Charlton Signed-off-by: Jason Stephenson 2 1 src/perl/lib/OpenSRF/AppSession.pm commit be2b2645f7da0907366eb0c99b5d6c231c366b30 Author: Bill Erickson Date: Fri Sep 8 17:53:52 2017 -0400 LP#1709710 Count Perl chunk/bundle sizes in bytes For the purposes of bundling/chunking, count the number of bytes in each affected string instead of the number of characters. See also https://perldoc.perl.org/bytes.html and 'perldoc -f length' Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson Signed-off-by: Galen Charlton 6 3 src/perl/lib/OpenSRF/AppSession.pm commit 3d91aeb066c52213f2c82f04bdfc84b87ec8d1d0 Author: Galen Charlton Date: Fri Sep 8 15:34:29 2017 -0400 LP#1709710: write unit tests for osrfXmlEscapingLength() Signed-off-by: Galen Charlton Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson Signed-off-by: Galen Charlton 6 2 tests/Makefile.am 43 0 tests/check_osrf_utils.c create mode 100644 tests/check_osrf_utils.c commit cb4587be75bf9294d65c7173ff41c275a14e0f04 Author: Mike Rylander Date: Fri Aug 18 11:43:31 2017 -0400 LP#1709710: Make chunk sizing smart about XML quoting XML inside JSON as a quoted string that's itself inside XML causes quite the pile up of nested excaping of certain characters in OpenSRF PARTIAL_RESPONSE messages. Here we check for the worst offenders (<, >, &, and ") and account for the cost of escaping them in chunked response stanzas. Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson Signed-off-by: Galen Charlton 6 0 include/opensrf/utils.h 11 4 src/libopensrf/osrf_app_session.c 8 3 src/libopensrf/osrf_application.c 23 0 src/libopensrf/utils.c 21 3 src/perl/lib/OpenSRF/AppSession.pm commit af4ab2355707083a22a2828202a541bf0e718bc0 Author: Chris Sharp Date: Thu May 11 14:47:32 2017 -0400 LP#1690206 - remove check of httpd.conf from OpenSRF Makefile.install The original src/extras/Makefile.install included a grep of the file /etc/apache2/httpd.conf, which is no longer installed by default on supported Debian and Ubuntu releases. As this check results in an error message, it makes sense to remove the check altogether. Signed-off-by: Chris Sharp Signed-off-by: Galen Charlton 0 6 src/extras/Makefile.install commit ea72acaf798f3fc6cc0aae8d93771c6dc2a21a57 Author: Bill Erickson Date: Fri Jun 9 13:01:46 2017 -0400 LP#1697029 Log and exit on write to dead child Confirm that a child process is alive just before attempting to write to its pipe. If the child process is dead, log the error, then drop the message and move on. This allows the parent to continue servicing future requests. Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 13 0 src/perl/lib/OpenSRF/Server.pm commit 53e7f82b534eef2b513fe31bcb2a9c719a7ee746 Author: Galen Charlton Date: Fri Aug 18 11:11:29 2017 -0400 LP#1711194: avoid division by zero errors Under some circumstances, osrf_control --diagnostic may not be able to deduce the correct max_children setting for a service, e.g., if it's run without --localhost on a system that doesn't have a opensrf.xml config section specifying active apps for a specific hostname. When that happens, just display the count of running drones rather than displaying error messages about undefined $dmax values and divisions by zero. Signed-off-by: Galen Charlton Signed-off-by: Bill Erickson 6 2 bin/opensrf-perl.pl.in commit b198681669ed28a510fd0d18d3a89d4dd0837ebe Author: Bill Erickson Date: Wed Aug 16 14:10:13 2017 -0400 LP#1711194 osrf_config --diagnostic reports max-children --diagnostic output shows the maximum number of allowed drones per service along with the active drone count. Additionally, a usage percentage value is displayed. E.g. $ /openils/bin/osrf_control -l --diagnostic * open-ils.acq [1581] uptime=00:35 cputime=00:00:00 #drones=1/15 6% * open-ils.actor [1629] uptime=00:35 cputime=00:00:00 #drones=2/15 13% Signed-off-by: Bill Erickson Signed-off-by: Chris Sharp Signed-off-by: Galen Charlton 9 1 bin/opensrf-perl.pl.in commit e88891bcdd9781c2d291057a802e4f751202fee9 Author: Graham Billiau Date: Mon Jul 31 11:00:25 2017 -0400 LP#1704090: ensure make install respects DESTDIR This patch ensures that 'make install' uses DESTDIR consistently, making life easier for packagers. Signed-off-by: Graham Billiau Signed-off-by: Galen Charlton 3 3 src/Makefile.am 7 2 src/gateway/Makefile.am commit 716b674a5197f9ec70091c9f3dfa3eabca3bbe9d Author: Mike Rylander Date: Mon Jul 31 15:15:09 2017 -0400 Revert "LP#1635737 Add optional context to interval_to_seconds" This reverts commit a481100ef9d5bd9eaad5a87ce29776cb07a8687c. 17 48 src/perl/lib/OpenSRF/Utils.pm commit 0484c673577c49a552af861364caac03ef187f5e Author: Mike Rylander Date: Mon Jul 31 15:15:02 2017 -0400 Revert "LP#1635737: Unit tests for DST and date math" This reverts commit 316f58375c40087bfae32234c4dd3817260831e5. 2 13 src/perl/t/09-Utils-interval_to_seconds.t commit 316f58375c40087bfae32234c4dd3817260831e5 Author: Mike Rylander Date: Mon Jul 31 12:53:59 2017 -0400 LP#1635737: Unit tests for DST and date math Signed-off-by: Mike Rylander 13 2 src/perl/t/09-Utils-interval_to_seconds.t commit a481100ef9d5bd9eaad5a87ce29776cb07a8687c Author: Dan Wells Date: Fri Jul 21 14:17:34 2017 -0400 LP#1635737 Add optional context to interval_to_seconds Any given interval (e.g. "1 month") can be a different amount of seconds depending on the context (i.e. "1 month" after February 1 is March 1, but "1 month" after March 1 is April 1, yet March is longer than February). This affects months all the time, but also can affect days, hours, and even seconds once you consider DST and "leap" times. By giving an optional context to interval_to_seconds, you can find the true number of seconds in, for example, "1 month", when starting from "February 1" (the context). Signed-off-by: Dan Wells Signed-off-by: Mike Rylander 48 17 src/perl/lib/OpenSRF/Utils.pm commit 66acf02b800b6bb9b128c591e7ce480dc111b99d Author: Jason Stephenson Date: Wed Jul 12 15:24:48 2017 -0400 LP 1703958: Update Websockets Intructions for Debian Jessie Modify the Websockets installation instructions so that users will have a working installation on Debian Jessie. We change the "Debian" instructions to say "Debian Wheezy" and add "Debian Jessie" to the list with "Ubuntu Trusty / Xenial" where necessary. Signed-off-by: Jason Stephenson Signed-off-by: Galen Charlton 4 4 README commit 740e725fbb02d7d3476d39efbed0b382f13b880d Author: Graham Billiau Date: Thu Jul 13 11:29:43 2017 -0400 LP#1704116: fix intermittant failure of parallel building Running make to do a parallel build (e.g., 'make -j 4' or the like) could fail because of an undeclared dependency; this patch fixes the issue. The issue can be reproduced by repeating "make clean; make -j 4" until the build fails. Signed-off-by: Graham Billiau Signed-off-by: Galen Charlton 1 0 src/libopensrf/Makefile.am