-ChangeLog
-=========
+commit 88c8970c3dea26c72bc3173b18041e29538c4d8c
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date: Thu Feb 16 15:16:21 2017 -0500
-OpenSRF 2.5.0-alpha
--------------------
-
-commit fb50a71d11bb2865722a1625bad075ca7eaf2ef3
-Author: Galen Charlton <gmc@esilibrary.com>
-Date: Wed Dec 7 16:55:23 2016 -0500
-
- update version numbers for 2.5.0-alpha
+ update version numbers for 2.5.0-alpha2
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
+ Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
7 7 README
1 1 src/perl/lib/OpenSRF.pm
1 1 src/python/setup.py
1 1 version.m4
-commit fbfde6f6ca1fe8fed8b86c93f315a1110fb74512
-Author: Galen Charlton <gmc@esilibrary.com>
-Date: Wed Dec 7 16:52:08 2016 -0500
+commit 9df9c484031e313d3c6f1f85951d6b67b931f536
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date: Thu Feb 16 15:13:17 2017 -0500
- release notes for 2.5-alpha
+ update release notes for 2.5.0-alpha2
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
+ Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
-136 0 doc/RELEASE_NOTES.txt
- create mode 100644 doc/RELEASE_NOTES.txt
+16 2 doc/RELEASE_NOTES.txt
-commit b1d19c8b9ff0bee77a3c98e793bf8efa67693a4e
-Author: Galen Charlton <gmc@esilibrary.com>
-Date: Wed Dec 7 13:34:15 2016 -0500
+commit 4744d1a42b709a2c7aa778565c0c32a1962e0e2c
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date: Wed Feb 15 16:58:06 2017 -0500
- LP#1648188: example HAProxy configuration
+ LP#1652382: more improvements to cache key munging
- Add an example configuration for using HAProxy.
+ - teach osrfCacheRemove to clean keys
+ - fix implict declaration compilation warning
+ - account for fact that iscntrl('\0') returns true
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
+ Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+ Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
-53 1 README
-25 0 examples/haproxy/osrf-ws-http-proxy
- create mode 100644 examples/haproxy/osrf-ws-http-proxy
+5 2 src/libopensrf/osrf_cache.c
-commit 93da6fb07c8b613011028f577b55fa8ba940f1ee
-Author: Galen Charlton <gmc@esilibrary.com>
-Date: Wed Dec 7 12:54:05 2016 -0500
+commit 7ec6c1a4b3fc99f10bd1b3c9b07a0008672cf3f6
+Author: Galen Charlton <gmc@equinoxinitiative.org>
+Date: Wed Feb 15 14:12:34 2017 -0500
- LP#1638651: add instructions for using NGINX
+ LP#1652382: handle cases where supplied key is longer than 250 bytes
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-58 0 README
-
-commit ededc269eacb9e69e30074bba2cff35a3148e62e
-Author: Bill Erickson <berickxx@gmail.com>
-Date: Mon Oct 31 15:56:32 2016 -0400
-
- LP#1638651: example Nginx websockets/http(s) proxy config
+ With this patch, if cache clients want to use a key longer
+ than the memcached text protocol limit of 250 bytes, the
+ key is normalized to 'shortened_' + md5_hex(normalized_key).
- Example using Nginx to proxy all websocket, http, and https Apache
- traffic.
-
- Signed-off-by: Bill Erickson <berickxx@gmail.com>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
+ Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+ Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
-56 0 examples/nginx/osrf-ws-http-proxy
- create mode 100644 examples/nginx/osrf-ws-http-proxy
-
-commit a3b2a15f27709815155eb9dbb8026343000753d5
-Author: Galen Charlton <gmc@esilibrary.com>
-Date: Wed Dec 7 11:58:35 2016 -0500
+10 1 src/libopensrf/osrf_cache.c
+4 0 src/perl/lib/OpenSRF/Utils/Cache.pm
- LP#1382038: clarify one step of installing websockets support
-
- Specify directory to be in before copying the Apache websockets
- configuration file.
-
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-4 1 README
-
-commit a1fe6e1c1ccb7b3efab386a7f34c0555d07bd7e7
-Author: Galen Charlton <gmc@esilibrary.com>
-Date: Wed Dec 7 11:53:49 2016 -0500
-
- LP#1382038: adjustments to download instructions
-
- - Use "OSRFVERSION" in the master branch rather than
- a specific version number; this is meant to be changed
- during the release process.
- - Update references to the OpenSRF downloads index
- page.
-
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-4 4 README
-
-commit cd06277c3972437e676f51744749009c0d7eeb60
-Author: Remington Steed <rjs7@calvin.edu>
-Date: Mon Nov 21 10:58:33 2016 -0500
-
- LP#1382038: Add instructions for implied download/unpack step
-
- Occasionally, new users have complained that the installation
- instructions making too many assumptions about what a user knows. This
- commit explicitly instructs users in downloading the source tarball,
- unpacking it, and changing the working directory so they will be ready
- for the next instructions.
-
- Signed-off-by: Remington Steed <rjs7@calvin.edu>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-24 0 README
-
-commit 5aa8a398e01e2642fd4b08c93fe9c719039dbedf
-Author: Galen Charlton <gmc@esilibrary.com>
-Date: Thu Nov 3 18:08:54 2016 -0400
-
- LP#1612771: fix chunking for atomic C methods
-
- This patch also refactors the code that actually does the
- splitting and sending of chunked responses into a new
- public function, osrfSendChunkedResult().
-
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
- Signed-off-by: Ben Shum <ben@evergreener.net>
- Signed-off-by: Mike Rylander <miker@esilibrary.com>
-
-4 0 include/opensrf/osrf_app_session.h
-96 10 src/libopensrf/osrf_app_session.c
-2 58 src/libopensrf/osrf_application.c
-
-commit 168b4cafe766ec976e075ec2ea496c00a27dc7d0
-Author: Galen Charlton <gmc@esilibrary.com>
-Date: Tue Nov 1 17:22:48 2016 -0400
-
- LP#1631522: add release notes for ->dispatch
-
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-12 0 doc/Dispatch-Mode-for-Subrequests.txt
- create mode 100644 doc/Dispatch-Mode-for-Subrequests.txt
-
-commit 31a0bfea9911f24f563d70bfdea6ba7759071842
-Author: Galen Charlton <gmc@esilibrary.com>
-Date: Tue Nov 1 17:20:49 2016 -0400
-
- LP#1631522: dev doc now describes ->dispatch
-
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-5 1 doc/Application-HOWTO.txt
-
-commit 1431100b4737a61b1a294bbf66f9a5867dec358b
-Author: Galen Charlton <gmc@esilibrary.com>
-Date: Tue Nov 1 17:03:03 2016 -0400
-
- LP#1631522: include example of ->dispatch in example app
-
- This patch also makes the Perl opensrf.math demo app work
- correctly, as it hadn't been constructing opensrf.dbmath
- method names correctly.
-
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-4 5 src/perl/lib/OpenSRF/Application/Demo/Math.pm
-
-commit 9d106aef9ab0a8d5af75977ffb4cc5f8f3fe5c79
+commit e58f20fd69b1fb2e94765a2bf9067ba1cbb9d2d9
Author: Mike Rylander <mrylander@gmail.com>
-Date: Thu Aug 25 17:42:31 2016 -0400
+Date: Mon Jan 30 12:54:10 2017 -0500
- LP#1631522: Dispatch mode for method_lookup subrequests
-
- There is a pattern in the wild of using OpenSRF's method_lookup() facility
- to decide between one of several local methods when delegating to pre-existing
- logic. Often times, we want to simply hand control over to another method,
- but the output of a subrequest's run() is an array of results. The caller has
- to know if, and how, to restructure the result for the client.
-
- Instead, we can now call dispatch() instead of run() and have OpenSRF session
- control completely passed to the delegate code. This way, the delegate code
- need not know anything about its caller, and vice versa.
-
- Signed-off-by: Mike Rylander <mrylander@gmail.com>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-28 3 src/perl/lib/OpenSRF/AppSession.pm
-8 1 src/perl/lib/OpenSRF/Application.pm
-
-commit dbf9ec150dfa6a5b87028aa890a80b529dfe5683
-Author: Galen Charlton <gmc@esilibrary.com>
-Date: Tue Nov 1 16:30:26 2016 -0400
-
- LP#1612771: add release notes
-
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-19 0 doc/Bundling-and-Chunking.txt
- create mode 100644 doc/Bundling-and-Chunking.txt
-
-commit 76a5fd0055b2af25f0783825c951021a32a5f17d
-Author: Galen Charlton <gmc@esilibrary.com>
-Date: Tue Nov 1 16:22:10 2016 -0400
-
- LP#1612771: fix error in POD
-
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-1 1 src/perl/lib/OpenSRF/DomainObject/oilsResponse.pm
-
-commit 4f73f38bae3892fa4f6b3980c5724af521a31fde
-Author: Galen Charlton <gmc@esilibrary.com>
-Date: Tue Nov 1 16:03:50 2016 -0400
-
- LP#1612771: update protocol documentation
-
- Now that we have PARTIAL and NOCONTENT statuses, let's
- mention them in the documentation for the benefit of
- folks writing future clients.
-
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-9 1 doc/OpenSRF-Messaging-Protocol.html
-
-commit d79c7eee6ce44bd3b38bd712d487cb31752c3a31
-Author: Galen Charlton <gmc@esilibrary.com>
-Date: Tue Nov 1 15:46:13 2016 -0400
-
- LP#1612771: don't adjust max_stanza_size during installation
-
- As the typical max_stanza_size for ejabberd installations
- is larger than what OpenSRF now needs, this patch adjusts
- the installation instructions to remove the step to change
- max_stanza_size.
-
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-10 13 README
-
-commit fd1ce3521553d6ddbc42762090be8ecdbc0b39f2
-Author: Mike Rylander <mrylander@gmail.com>
-Date: Sun Feb 23 15:55:52 2014 -0500
-
- LP#1612771: Add chunking support to JS implementation
-
- Signed-off-by: Mike Rylander <mrylander@gmail.com>
- Signed-off-by: Bill Erickson <berick@esilibrary.com>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-3 0 include/opensrf/osrf_message.h
-57 6 src/javascript/opensrf.js
-
-commit 75a9906d5a5e90c60c8e0614e0c71796c511ec18
-Author: Bill Erickson <berick@esilibrary.com>
-Date: Fri Feb 28 12:44:11 2014 -0500
-
- LP#1612771: implement C max_chunk_size server support
-
- Signed-off-by: Bill Erickson <berick@esilibrary.com>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-94 23 src/libopensrf/osrf_application.c
-7 1 src/libopensrf/osrf_message.c
-
-commit 18be4a4cf242a274cf5a3143c2063d75331ec7c0
-Author: Bill Erickson <berick@esilibrary.com>
-Date: Thu Feb 27 15:18:15 2014 -0500
-
- LP#1612771: set Perl / C max_chunk_size default sizes
-
- default max bundle size == 25K
- default max chunk size == 50K
-
- Note with Ejabberd using 65536 as the default max stanza size, these
- new OpenSRF defaults mean that all messages will fit the default
- message size constraints -- i.e. no more need to raise the
- max_stanza_size.
-
- Signed-off-by: Bill Erickson <berick@esilibrary.com>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-6 1 include/opensrf/osrf_app_session.h
-0 5 src/libopensrf/osrf_application.c
-2 2 src/perl/lib/OpenSRF/Application.pm
-
-commit b3b6b4211472e4897581a93d9615d8544f29779f
-Author: Mike Rylander <mrylander@gmail.com>
-Date: Sun Feb 23 16:35:17 2014 -0500
-
- LP#1612771: C support for receiving chunked responses
-
- * client parsing
- * consistent w/ Perl, we now have "bundling" and "chunking"
-
- Signed-off-by: Bill Erickson <berick@esilibrary.com>
-
-1 0 include/opensrf/osrf_app_session.h
-3 2 include/opensrf/osrf_application.h
-56 0 src/libopensrf/osrf_app_session.c
-9 8 src/libopensrf/osrf_application.c
-
-commit 56e65d1e6fb4ee72b28b4e008b9461d5bac55b8d
-Author: Bill Erickson <berick@esilibrary.com>
-Date: Mon Feb 24 15:14:19 2014 -0500
-
- LP#1612771: Perl max_chunk_size additions
-
- * Added missing max_chunk_size method to AppSession
- * Copy API max_chunk_size value into the handler AppRequest
- * Fix error where no-chunking resulted in empty responses
-
- Signed-off-by: Bill Erickson <berick@esilibrary.com>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-25 14 src/perl/lib/OpenSRF/AppSession.pm
-2 1 src/perl/lib/OpenSRF/Application.pm
-12 4 src/perl/lib/OpenSRF/DomainObject/oilsResponse.pm
-
-commit 01f95834835bed94df93a7fdad59e38486e6485a
-Author: Mike Rylander <mrylander@gmail.com>
-Date: Sun Feb 23 14:51:13 2014 -0500
-
- LP#1612771: bundling and chunking
-
- This patch is first in a series of patches that provides the following
- features:
-
- * OpenSRF message bundling -- Pack multiple OpenSRF messages together
- in a single XMPP envelope, as long as we believe more messages will be
- sent in the future and we are below some threshold of combined message size.
- The default for that threshold is 25Kb.
-
- * OpenSRF message chunking -- Break up large OpenSRF messages across
- multiple XMPP envelopes. This is implemented with a new OpenSRF message type.
- C, Perl, and Javascript libraries are taught how to reconstruct chunked
- messages. The default chunking threshold is 50Kb, just a bit below the default
- ejabberd max stanza size of 64Kb.
-
- This patch in particular renames "chunking" to "bundling", then
- implements message splitting ("chunking") in Perl using two new
- oilsResult subclasses
+ LP#1652382: Make use of the clean key just created
Signed-off-by: Mike Rylander <mrylander@gmail.com>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-80 43 src/perl/lib/OpenSRF/AppSession.pm
-13 6 src/perl/lib/OpenSRF/Application.pm
-83 1 src/perl/lib/OpenSRF/DomainObject/oilsResponse.pm
-
-commit 784233808062dbc599b649ce9858759ab0a8dff3
-Author: Ben Shum <ben@evergreener.net>
-Date: Tue Jul 5 12:53:13 2016 -0400
-
- LP#1603708: Remove support for Ubuntu 12.04 Precise
-
- With support for Ubuntu 16.04 Xenial in place, remove the oldest LTS, which is
- Ubuntu 12.04 Precise.
-
- Signed-off-by: Ben Shum <ben@evergreener.net>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
+ Signed-off-by: Kathy Lussier <klussier@masslnc.org>
+ Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+ Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
-2 3 README
-3 13 src/extras/Makefile.install
+1 1 src/libopensrf/osrf_cache.c
-commit 15f8c538af5469545fabab9e21252f49555ae131
-Author: Ben Shum <ben@evergreener.net>
-Date: Tue Jul 5 12:50:34 2016 -0400
-
- Docs: Change 14.04 to Trusty in README
-
- For consistency, change references from numbered "Ubuntu 14.04" to "Ubuntu Trusty"
-
- Signed-off-by: Ben Shum <ben@evergreener.net>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-3 3 README
-
-commit e3f9b6a3adb8391e83221909575554ab1ec8c74c
-Author: Ben Shum <ben@evergreener.net>
-Date: Tue Jul 5 12:44:17 2016 -0400
-
- Docs: Add Xenial references in the websocket setup instructions
-
- We were missing Xenial references for the websocket setup instructions.
-
- They are the same as Trusty, so group together for now.
-
- Also, change references to "Ubuntu 16.04" to read "Ubuntu Xenial" too.
-
- Signed-off-by: Ben Shum <ben@evergreener.net>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-5 5 README
-
-commit 34038f2e3dd9a2ad6842f3593938955143213b11
-Author: Bill Erickson <berickxx@gmail.com>
-Date: Fri Jul 10 10:52:20 2015 -0400
-
- LP#1473479 Syslog configuration adoption
-
- When an OpenSRF client is run with syslog enabled and with the
- OSRF_ADOPT_SYSLOG environment variable set to a true value, no attempt
- is made to modify the syslog configuration, including no calls to
- openlog()/closelog() and no modification of the syslog facility when
- calling syslog().
-
- Signed-off-by: Bill Erickson <berickxx@gmail.com>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-9 3 src/perl/lib/OpenSRF/Utils/Logger.pm
-
-commit b6557d6a781fe7f7e16d0c5df5707ce5f8f49d48
+commit 8f31413ba4334ee3f695f84a810eccbe94351f77
Author: Mike Rylander <mrylander@gmail.com>
-Date: Fri Oct 7 12:19:52 2016 -0400
+Date: Fri Jan 27 15:25:05 2017 -0500
- LP#1631520: configure install location of Perl modules
+ LP#1652382: normalization of memcache keys in C code
- Add --with-perlbase configure option to specify
- an alternative location for installing the Perl modules. This
- can be useful for setups that want to run the Perl modules
- from a shared filesystem or environments that need to run
- multiple versions of OpenSRF simultaneously.
-
- Users of --with-perlbase are responsible for ensuring that
- PERL5LIB is set appropriately.
-
- To test
- -------
- [1] Use --with-perlbase during the configure step, e.g.,
-
- ./configure --perl-base /tmp/perl
-
- [2] Run make; make check; sudo make install
- [3] Verify that the Perl modules are installed under
- /tmp/perl.
- [4] Make a change to a Perl source file, then
- go to src/perl, then run sudo ./Build install. Verify
- that it remembers the --with-perlbase directory
- and installs the updated module there.
-
- Signed-off-by: Mike Rylander <mrylander@gmail.com>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-1 0 Makefile.am
-6 0 configure.ac
-1 1 src/perl/Makefile.am
-
-commit 1c8a7dcb24d4ea3a8aa7dc718d2e1f0b12430cb1
-Author: Ben Shum <ben@evergreener.net>
-Date: Tue May 24 01:24:09 2016 -0400
-
- LP#1585041: Move debian_sys_config target for Debian distributions
-
- Similar to how things were reordered for Ubuntu, let's move debian_sys_config
- for Debian distributions.
-
- Signed-off-by: Ben Shum <ben@evergreener.net>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-4 4 src/extras/Makefile.install
-
-commit f3ac7f14ec675e99784b9a5037be66f8c90c22f2
-Author: Mike Rylander <mrylander@gmail.com>
-Date: Tue Feb 23 11:22:34 2016 -0500
-
- LP#1485371: Release notes for TZ handling in OpenSRF
+ Memcache does not allow spaces in keys, so here we will actively strip them
+ from any key we get from a caller. Some callers are not very proactive about
+ sending clean keys, and this patch prevents issues that can poison C-based
+ OpenSRF service backends.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
+ Signed-off-by: Kathy Lussier <klussier@masslnc.org>
+ Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
+ Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
-44 0 doc/TZ-handling.txt
- create mode 100644 doc/TZ-handling.txt
+20 2 src/libopensrf/osrf_cache.c
-commit 91a8f051220ba1b29e76068a58cbb400ae521834
+commit 22e2c7729b6caf265b27ff14126fe5595e87cdca
Author: Mike Rylander <mrylander@gmail.com>
-Date: Mon Aug 3 13:27:56 2015 -0400
+Date: Tue Jan 10 15:30:18 2017 -0500
- LP#1485371: Use client-supplied TZ
+ LP#1655449: Bundling/chunking limits for SubRquests
- Currently, there is no protocol-level mechanism for passing the client's
- desired timezone to the server. In much the same way we pass the locale,
- we can let the server know what timezone it should use when interpreting
- time stamps.
-
- To do this we:
-
- * Teach perl server code to live in the client TZ, if supplied
- * Teach perl client code to send the current $ENV{TZ}
- * Teach javascript library to include client TZ in
- gateway/translator/websocket communication
- * Teach C code to pull the incoming TZ and apply it to outgoing messages
- * Teach srfsh to pull TZ from the environment and pass it with requests
+ We need to teach subrequests to inherit parent request bundling/chunking
+ parameters so they don't cause overruns in dispatch mode.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-5 0 include/opensrf/osrf_app_session.h
-7 0 include/opensrf/osrf_message.h
-21 0 src/javascript/opensrf.js
-32 0 src/libopensrf/osrf_app_session.c
-33 0 src/libopensrf/osrf_message.c
-5 0 src/libopensrf/osrf_stack.c
-25 1 src/perl/lib/OpenSRF/DomainObject/oilsMessage.pm
-4 0 src/srfsh/srfsh.c
-
-commit e7fe347408b52295f2f820f9527ccf00952b71e8
-Author: Jason Stephenson <jason@sigio.com>
-Date: Wed May 4 13:05:31 2016 -0400
-
- LP#1551090: Update README for Ubuntu 16.04 (Xenial Xerus).
-
- Add installation steps for Ubuntu 16.04.
-
Signed-off-by: Jason Stephenson <jason@sigio.com>
- Signed-off-by: Ben Shum <ben@evergreener.net>
-31 5 README
+5 1 src/perl/lib/OpenSRF/AppSession.pm
+17 3 src/perl/lib/OpenSRF/Application.pm
-commit 032a964795df73053d09dca37e62e3e276ce343e
-Author: Jason Stephenson <jason@sigio.com>
-Date: Tue Apr 19 16:56:15 2016 -0400
-
- LP#1551090: Enable mod_perl2 on Ubuntu 16.04 (Xenial Xerus).
-
- Ubuntu Xenial Xerus does not automatically enable mod_perl2 for
- Apache2 when the package is installed, so we enable it via the
- Makefile.install.
-
- Signed-off-by: Jason Stephenson <jason@sigio.com>
- Signed-off-by: Ben Shum <ben@evergreener.net>
-
-5 1 src/extras/Makefile.install
-
-commit 1fca796c47c9e9c06e65b91085c13ad2cbe52954
-Author: Chris Sharp <csharp@georgialibraries.org>
-Date: Thu Feb 18 20:12:40 2016 -0500
-
- LP#1551090: Adding apache2-dev dependency to xenial and fixing whitespace
-
- Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
- Signed-off-by: Jason Stephenson <jason@sigio.com>
- Signed-off-by: Ben Shum <ben@evergreener.net>
-
- Conflicts:
- src/extras/Makefile.install
-
-5 4 src/extras/Makefile.install
-
-commit e91074cf23eeca5da7e9c00977448dcc19b779cc
-Author: Chris Sharp <csharp@georgialibraries.org>
-Date: Thu Feb 18 18:10:34 2016 -0500
-
- LP#1551090: Since we move apache to the "install_extra_debs*" targets,
-
- we need to move debian_sys_config further down to compensate.
-
- Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
- Signed-off-by: Jason Stephenson <jason@sigio.com>
- Signed-off-by: Ben Shum <ben@evergreener.net>
-
-4 4 src/extras/Makefile.install
-
-commit 46dfeaf7245f81c1a8c9833b8cac87a997b23433
-Author: Chris Sharp <csharp@georgialibraries.org>
-Date: Wed Feb 17 19:35:02 2016 -0500
-
- LP#1551090: Adding necessary connectivity for xenial deb installation.
-
- Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
- Signed-off-by: Jason Stephenson <jason@sigio.com>
- Signed-off-by: Ben Shum <ben@evergreener.net>
-
-4 1 src/extras/Makefile.install
-
-commit 334b6644ac319403f2095cff6f3cef992a9148ae
-Author: Chris Sharp <csharp@georgialibraries.org>
-Date: Wed Feb 17 19:26:01 2016 -0500
-
- LP#1551090: Adding apache2 package to Makefile.install deb list.
-
- Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
- Signed-off-by: Jason Stephenson <jason@sigio.com>
- Signed-off-by: Ben Shum <ben@evergreener.net>
-
-1 0 src/extras/Makefile.install
-
-commit c59b54a7c4f1d1561d23393f6122669d50f41166
-Author: Chris Sharp <csharp@georgialibraries.org>
-Date: Wed Feb 17 15:28:05 2016 -0500
-
- LP#1551090: Updating Makefile to accommodate ubuntu-xenial target.
-
- Removing some redundancy in the extra debs lists.
-
- Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
- Signed-off-by: Jason Stephenson <jason@sigio.com>
- Signed-off-by: Ben Shum <ben@evergreener.net>
-
- Conflicts:
- src/extras/Makefile.install
-
-17 16 src/extras/Makefile.install
-
-commit c9174e7372b0c14091035617f0689f3719f7506b
-Author: Galen Charlton <gmc@esilibrary.com>
-Date: Fri Mar 18 10:59:11 2016 -0400
-
- LP#1559121: remove Debian Squeeze support
-
- Now that Debian Squeeze's LTS (long-term support) period
- has ended, Evergreen no longer offers community support
- for that distribution. This patch removes references
- to Squeeze from the installation scripts and documentation.
-
- To test:
-
- [1] Verify that Debian Squeeze is no longer referenced in
- the installation documentation.
-
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
- Signed-off-by: Ben Shum <ben@evergreener.net>
-
-0 1 README
-1 14 src/extras/Makefile.install
-
-commit b6cf3eb912fa501a23f4a3f5664f1a12228e731b
+commit b6fe0b1c9917d3d188ff8053f5fc3611ef878b3a
Author: Galen Charlton <gmc@esilibrary.com>
-Date: Thu Feb 4 13:09:48 2016 -0500
-
- LP#1350457: add test case for perl2JSONObject change
-
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-4 1 src/perl/t/09-Utils-JSON.t
-
-commit e1581d4248a6fd42f6ebee233387777f63e25022
-Author: Mike Rylander <mrylander@gmail.com>
-Date: Wed Jul 30 13:29:46 2014 -0400
-
- LP#1350457: Pass caller's session to subrequests called via method_lookup
-
- In the process of looking up a method for an internal subrequest, we lose
- session info. This is a problem when the subrequest makes a remote request,
- because then the subrequest can't look up the proper locale, among other
- things. The forthcoming branch passes the caller's session to the subrequest.
-
- This patch also teaches OpenSRF object registration how to strip certain
- object members -- in particular, the session -- so that introspection
- continues to work.
-
- Signed-off-by: Mike Rylander <mrylander@gmail.com>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
+Date: Thu Dec 22 15:53:12 2016 +0500
-9 4 src/perl/lib/OpenSRF/Application.pm
-8 1 src/perl/lib/OpenSRF/Utils/JSON.pm
-
-commit 69cbe8000a5123aab33fcb2441c1e136506964a0
-Author: Jason Etheridge <jason@esilibrary.com>
-Date: Tue Jul 14 14:54:27 2015 -0400
-
- LP#1474507: fix interval_to_seconds for weeks and seconds
+ LP#1652122: fix infinite recursion in opensrf.system.method.all
- This patch fixes an issue where OpenSRF::Utils::interval_to_seconds()
- was not recognizing intervals expressed as seconds or weeks.
-
- Signed-off-by: Jason Etheridge <jason@esilibrary.com>
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-2 2 src/perl/lib/OpenSRF/Utils.pm
-
-commit 7a714ae480f238211b37fcdb248aecea93ece234
-Author: Jason Etheridge <jason@esilibrary.com>
-Date: Tue Jul 14 15:10:15 2015 -0400
-
- LP#1474507: tests for interval_to_seconds
+ Under certain circumstances, calling opensrf.system.method.all on a
+ Perl service can result in an infinite recursion when attempting to
+ serialize an OpenSRF::Application object to JSON. In particular,
+ this was observed to happen when doing an introspection of
+ the opensrf.settings service.
- Signed-off-by: Galen Charlton <gmc@esilibrary.com>
-
-16 0 src/perl/t/09-Utils-interval_to_seconds.t
- create mode 100644 src/perl/t/09-Utils-interval_to_seconds.t
-
-commit 55807240854d0d532a5f70f1f483ed8086eb9d95
-Author: Mike Rylander <mrylander@gmail.com>
-Date: Thu Sep 10 16:56:13 2015 -0400
-
- LP#1494486: Limit damage caused by dropped drone XMPP sockets
+ This patch avoids the infinite recursion (and consequent memory
+ leak) by ensuring that the 'session' key is slated for exclusion
+ from serialization from OpenSRF::Application objects during
+ bootstrapping.
- It is apparently possible for drones to get into a state where their XMPP
- socket is closed but they don't notice. This is bad because the drone can
- continue to receive requests from its listener but can no longer respond
- to them. To limit the pain this can cause, we should kill the drone as soon
- as we notice this condition.
+ Note that the problem does not affect all Perl services; if a
+ Perl service declares at least one streaming method, the auto-registration
+ of the .atomic method will result in 'session'-stripping.
- To avoid overhead, this commit notices when the socket returns an error (or
- raises a signal, in Perl) upon write, and exits immediately. One message
- will be lost, but the drone will no longer be a black hole that does nothing
- but absorb requests it can never fill.
+ This patch fixes a regression introduced in bug 1350457.
To test
-------
- [1] Start an OpenSRF stack and look for a drone process.
- [2] Use lsof to identify which socket that drone is using
- to talk to XMPP.
- [3] Use gdb to attach to the process and close the socket, e.g.,
+ [1] Run 'introspect opensrf.settings' via srfsh; observe
+ that it never returns and that the opensrf.settings drone
+ will grow in memory sized until killed.
+ [2] Apply the patch, then repeat step 1. This time, the
+ request should succeed.
- $ gdb -p $PID
- (gdb) p close(11) # or whatever the socket number was
- (gdb) c
-
- [4] Use srfsh to make requests of that service. Eventually, one
- of them will hit the drone.
- [5] Sans patch, the request will get handled by the drone, but
- the results will never get sent, and the drone will remain
- available to handle other requests.
- [6] With the patch, the drone will exit when it discovers that it
- can no longer write to the XMPP socket.
-
- Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
+ Signed-off-by: Mike Rylander <mrylander@gmail.com>
-4 2 src/libopensrf/osrf_app_session.c
-5 0 src/perl/lib/OpenSRF/Transport/SlimJabber/XMPPReader.pm
+1 1 src/perl/lib/OpenSRF/System.pm