From f12ae3fab235a35127e79d0a16dadf8967d2bed2 Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Thu, 16 Feb 2017 15:16:34 -0500 Subject: [PATCH] update ChangeLog for 2.5.0-alpha2 Signed-off-by: Galen Charlton --- ChangeLog | 748 ++++++------------------------------------------------ 1 file changed, 80 insertions(+), 668 deletions(-) diff --git a/ChangeLog b/ChangeLog index f8daab3..8c8cc0f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,723 +1,135 @@ -ChangeLog -========= +commit 88c8970c3dea26c72bc3173b18041e29538c4d8c +Author: Galen Charlton +Date: Thu Feb 16 15:16:21 2017 -0500 -OpenSRF 2.5.0-alpha -------------------- - -commit fb50a71d11bb2865722a1625bad075ca7eaf2ef3 -Author: Galen Charlton -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 + Signed-off-by: Galen Charlton 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 -Date: Wed Dec 7 16:52:08 2016 -0500 +commit 9df9c484031e313d3c6f1f85951d6b67b931f536 +Author: Galen Charlton +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 + Signed-off-by: Galen Charlton -136 0 doc/RELEASE_NOTES.txt - create mode 100644 doc/RELEASE_NOTES.txt +16 2 doc/RELEASE_NOTES.txt -commit b1d19c8b9ff0bee77a3c98e793bf8efa67693a4e -Author: Galen Charlton -Date: Wed Dec 7 13:34:15 2016 -0500 +commit 4744d1a42b709a2c7aa778565c0c32a1962e0e2c +Author: Galen Charlton +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 + Signed-off-by: Galen Charlton + Signed-off-by: Jeff Davis -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 -Date: Wed Dec 7 12:54:05 2016 -0500 +commit 7ec6c1a4b3fc99f10bd1b3c9b07a0008672cf3f6 +Author: Galen Charlton +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 - -58 0 README - -commit ededc269eacb9e69e30074bba2cff35a3148e62e -Author: Bill Erickson -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 - Signed-off-by: Galen Charlton + Signed-off-by: Galen Charlton + Signed-off-by: Jeff Davis -56 0 examples/nginx/osrf-ws-http-proxy - create mode 100644 examples/nginx/osrf-ws-http-proxy - -commit a3b2a15f27709815155eb9dbb8026343000753d5 -Author: Galen Charlton -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 - -4 1 README - -commit a1fe6e1c1ccb7b3efab386a7f34c0555d07bd7e7 -Author: Galen Charlton -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 - -4 4 README - -commit cd06277c3972437e676f51744749009c0d7eeb60 -Author: Remington Steed -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 - Signed-off-by: Galen Charlton - -24 0 README - -commit 5aa8a398e01e2642fd4b08c93fe9c719039dbedf -Author: Galen Charlton -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 - Signed-off-by: Ben Shum - Signed-off-by: Mike Rylander - -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 -Date: Tue Nov 1 17:22:48 2016 -0400 - - LP#1631522: add release notes for ->dispatch - - Signed-off-by: Galen Charlton - -12 0 doc/Dispatch-Mode-for-Subrequests.txt - create mode 100644 doc/Dispatch-Mode-for-Subrequests.txt - -commit 31a0bfea9911f24f563d70bfdea6ba7759071842 -Author: Galen Charlton -Date: Tue Nov 1 17:20:49 2016 -0400 - - LP#1631522: dev doc now describes ->dispatch - - Signed-off-by: Galen Charlton - -5 1 doc/Application-HOWTO.txt - -commit 1431100b4737a61b1a294bbf66f9a5867dec358b -Author: Galen Charlton -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 - -4 5 src/perl/lib/OpenSRF/Application/Demo/Math.pm - -commit 9d106aef9ab0a8d5af75977ffb4cc5f8f3fe5c79 +commit e58f20fd69b1fb2e94765a2bf9067ba1cbb9d2d9 Author: Mike Rylander -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 - Signed-off-by: Galen Charlton - -28 3 src/perl/lib/OpenSRF/AppSession.pm -8 1 src/perl/lib/OpenSRF/Application.pm - -commit dbf9ec150dfa6a5b87028aa890a80b529dfe5683 -Author: Galen Charlton -Date: Tue Nov 1 16:30:26 2016 -0400 - - LP#1612771: add release notes - - Signed-off-by: Galen Charlton - -19 0 doc/Bundling-and-Chunking.txt - create mode 100644 doc/Bundling-and-Chunking.txt - -commit 76a5fd0055b2af25f0783825c951021a32a5f17d -Author: Galen Charlton -Date: Tue Nov 1 16:22:10 2016 -0400 - - LP#1612771: fix error in POD - - Signed-off-by: Galen Charlton - -1 1 src/perl/lib/OpenSRF/DomainObject/oilsResponse.pm - -commit 4f73f38bae3892fa4f6b3980c5724af521a31fde -Author: Galen Charlton -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 - -9 1 doc/OpenSRF-Messaging-Protocol.html - -commit d79c7eee6ce44bd3b38bd712d487cb31752c3a31 -Author: Galen Charlton -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 - -10 13 README - -commit fd1ce3521553d6ddbc42762090be8ecdbc0b39f2 -Author: Mike Rylander -Date: Sun Feb 23 15:55:52 2014 -0500 - - LP#1612771: Add chunking support to JS implementation - - Signed-off-by: Mike Rylander - Signed-off-by: Bill Erickson - Signed-off-by: Galen Charlton - -3 0 include/opensrf/osrf_message.h -57 6 src/javascript/opensrf.js - -commit 75a9906d5a5e90c60c8e0614e0c71796c511ec18 -Author: Bill Erickson -Date: Fri Feb 28 12:44:11 2014 -0500 - - LP#1612771: implement C max_chunk_size server support - - Signed-off-by: Bill Erickson - Signed-off-by: Galen Charlton - -94 23 src/libopensrf/osrf_application.c -7 1 src/libopensrf/osrf_message.c - -commit 18be4a4cf242a274cf5a3143c2063d75331ec7c0 -Author: Bill Erickson -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 - Signed-off-by: Galen Charlton - -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 -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 - -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 -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 - Signed-off-by: Galen Charlton - -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 -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 - Signed-off-by: Galen Charlton - -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 -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 - Signed-off-by: Galen Charlton + Signed-off-by: Kathy Lussier + Signed-off-by: Galen Charlton + Signed-off-by: Jeff Davis -2 3 README -3 13 src/extras/Makefile.install +1 1 src/libopensrf/osrf_cache.c -commit 15f8c538af5469545fabab9e21252f49555ae131 -Author: Ben Shum -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 - Signed-off-by: Galen Charlton - -3 3 README - -commit e3f9b6a3adb8391e83221909575554ab1ec8c74c -Author: Ben Shum -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 - Signed-off-by: Galen Charlton - -5 5 README - -commit 34038f2e3dd9a2ad6842f3593938955143213b11 -Author: Bill Erickson -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 - Signed-off-by: Galen Charlton - -9 3 src/perl/lib/OpenSRF/Utils/Logger.pm - -commit b6557d6a781fe7f7e16d0c5df5707ce5f8f49d48 +commit 8f31413ba4334ee3f695f84a810eccbe94351f77 Author: Mike Rylander -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 - Signed-off-by: Galen Charlton - -1 0 Makefile.am -6 0 configure.ac -1 1 src/perl/Makefile.am - -commit 1c8a7dcb24d4ea3a8aa7dc718d2e1f0b12430cb1 -Author: Ben Shum -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 - Signed-off-by: Galen Charlton - -4 4 src/extras/Makefile.install - -commit f3ac7f14ec675e99784b9a5037be66f8c90c22f2 -Author: Mike Rylander -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 - Signed-off-by: Galen Charlton + Signed-off-by: Kathy Lussier + Signed-off-by: Galen Charlton + Signed-off-by: Jeff Davis -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 -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 - Signed-off-by: Galen Charlton - -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 -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 - Signed-off-by: Ben Shum -31 5 README +5 1 src/perl/lib/OpenSRF/AppSession.pm +17 3 src/perl/lib/OpenSRF/Application.pm -commit 032a964795df73053d09dca37e62e3e276ce343e -Author: Jason Stephenson -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 - Signed-off-by: Ben Shum - -5 1 src/extras/Makefile.install - -commit 1fca796c47c9e9c06e65b91085c13ad2cbe52954 -Author: Chris Sharp -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 - Signed-off-by: Jason Stephenson - Signed-off-by: Ben Shum - - Conflicts: - src/extras/Makefile.install - -5 4 src/extras/Makefile.install - -commit e91074cf23eeca5da7e9c00977448dcc19b779cc -Author: Chris Sharp -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 - Signed-off-by: Jason Stephenson - Signed-off-by: Ben Shum - -4 4 src/extras/Makefile.install - -commit 46dfeaf7245f81c1a8c9833b8cac87a997b23433 -Author: Chris Sharp -Date: Wed Feb 17 19:35:02 2016 -0500 - - LP#1551090: Adding necessary connectivity for xenial deb installation. - - Signed-off-by: Chris Sharp - Signed-off-by: Jason Stephenson - Signed-off-by: Ben Shum - -4 1 src/extras/Makefile.install - -commit 334b6644ac319403f2095cff6f3cef992a9148ae -Author: Chris Sharp -Date: Wed Feb 17 19:26:01 2016 -0500 - - LP#1551090: Adding apache2 package to Makefile.install deb list. - - Signed-off-by: Chris Sharp - Signed-off-by: Jason Stephenson - Signed-off-by: Ben Shum - -1 0 src/extras/Makefile.install - -commit c59b54a7c4f1d1561d23393f6122669d50f41166 -Author: Chris Sharp -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 - Signed-off-by: Jason Stephenson - Signed-off-by: Ben Shum - - Conflicts: - src/extras/Makefile.install - -17 16 src/extras/Makefile.install - -commit c9174e7372b0c14091035617f0689f3719f7506b -Author: Galen Charlton -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 - Signed-off-by: Ben Shum - -0 1 README -1 14 src/extras/Makefile.install - -commit b6cf3eb912fa501a23f4a3f5664f1a12228e731b +commit b6fe0b1c9917d3d188ff8053f5fc3611ef878b3a Author: Galen Charlton -Date: Thu Feb 4 13:09:48 2016 -0500 - - LP#1350457: add test case for perl2JSONObject change - - Signed-off-by: Galen Charlton - -4 1 src/perl/t/09-Utils-JSON.t - -commit e1581d4248a6fd42f6ebee233387777f63e25022 -Author: Mike Rylander -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 - Signed-off-by: Galen Charlton +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 -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 - Signed-off-by: Galen Charlton - -2 2 src/perl/lib/OpenSRF/Utils.pm - -commit 7a714ae480f238211b37fcdb248aecea93ece234 -Author: Jason Etheridge -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 - -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 -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 Signed-off-by: Galen Charlton + Signed-off-by: Mike Rylander -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 -- 2.43.2