[OpenSRF-GIT] OpenSRF branch rel_3_0 updated. osrf_rel_3_0_2-6-gf7a7bc2

Evergreen Git git at git.evergreen-ils.org
Fri Jun 7 17:13:00 EDT 2019


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "OpenSRF".

The branch, rel_3_0 has been updated
       via  f7a7bc2ef7383b6f82bfc77425b2fc00cab2395d (commit)
       via  5002dd8de58a7f3e79a14bf2ca28cb4d2b7ae71a (commit)
       via  9124bf3c82ad29e20a0a2607cb78d6b9db325efa (commit)
      from  ca876a9ae69ed49369d8722831f11c3876d893ad (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit f7a7bc2ef7383b6f82bfc77425b2fc00cab2395d
Author: Galen Charlton <gmc at equinoxinitiative.org>
Date:   Fri Jun 7 17:10:24 2019 -0400

    update ChangeLog for OpenSRF 3.0.3
    
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>

diff --git a/ChangeLog b/ChangeLog
index a5b603d..61c59fb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,8 @@
-commit e574cdf4321f01fa1ae6777e38dadd4e04895932
+commit 5002dd8de58a7f3e79a14bf2ca28cb4d2b7ae71a
 Author: Galen Charlton <gmc at equinoxinitiative.org>
-Date:   Tue Nov 6 11:36:57 2018 -0500
+Date:   Fri Jun 7 17:10:11 2019 -0400
 
-    update version numbers for 3.0.2
+    update versions for OpenSRF 3.0.3
     
     Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
 
@@ -11,94 +11,112 @@ Date:   Tue Nov 6 11:36:57 2018 -0500
 1	1	src/python/setup.py
 1	1	version.m4
 
-commit e0f49880d6d844aae1e6b31d7e4743ad596402d5
+commit 9124bf3c82ad29e20a0a2607cb78d6b9db325efa
 Author: Galen Charlton <gmc at equinoxinitiative.org>
-Date:   Tue Nov 6 11:35:11 2018 -0500
+Date:   Fri Jun 7 17:08:30 2019 -0400
 
-    update release notes for OpenSRF 3.0.2
+    update release notes for OpenSRF 3.0.3
     
     Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
 
-61	1	doc/RELEASE_NOTES.txt
+29	0	doc/RELEASE_NOTES.txt
 
-commit 7866a18c7455f8243e9f1076ebdff230f5905357
-Author: Bill Erickson <berickxx at gmail.com>
-Date:   Mon Aug 27 10:12:57 2018 -0400
+commit ca876a9ae69ed49369d8722831f11c3876d893ad
+Author: John Merriam <jmerriam at biblio.org>
+Date:   Wed Apr 10 11:06:14 2019 -0400
 
-    LP#1684970 Translator compatible with mod_remoteip
+    LP#1824184: Change potentially slow log statements to subroutines
     
-    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.
+    The OpenSRF code was searched for potentially slow logging statements at
+    log level info or above. We then changed those logging statements to be
+    delayed execution subroutines. This is in reaction to LP1823338 where a
+    slow debug logging statement was slowing down SIP checkins even though
+    debug logging was not turned on.
     
-    http://httpd.apache.org/docs/2.4/developer/new_api_2_4.html
+    Here is some pseudocode that shows what is being done here:
     
-    This make is possible for the translator to access the client IP with
-    Apache's mod_remoteip enabled and configured.
+    $log->debug("Some text " . $some->slow_method);
     
-    Includes sample config and install documentation.
+    would be changed to:
     
-    Signed-off-by: Bill Erickson <berickxx at gmail.com>
-    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
-
-17	0	README
-10	0	examples/apache2/opensrf.conf
-1	1	src/gateway/osrf_http_translator.c
-
-commit 7d144fbdb50b3d91c8fd9429f35838b37f3cd83c
-Author: Bill Erickson <berickxx at gmail.com>
-Date:   Wed Jul 11 12:27:05 2018 -0400
-
-    LP#1711145 NGINX sample config security improvements
+    $log->debug(sub{return "Some text " . $some->slow_method });
+    
+    With this change, an unnamed sub is passed to the OpenSRF logger module
+    and it will not be executed unless the global logging level is set to
+    debug or higher (the slow_method will not be called unless it is needed
+    for that logging level).
     
-    * 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
+    ********
+    If/when this is committed, please use delayed execution subroutines for
+    any logging statements that could be slow in the future. It is recommend
+    that any logging statements that do not consist entirely of quoted text
+    and/or already available scalar variables use delayed execution
+    subroutines.
+    ********
     
-    Includes INSTALL notes on generating the dhparam file.
+    Testing notes
+    -------------
+    [1] This patch reduced the duration of open-ils.storage.actor.user.total_owed
+        calls on a test system from an average of 0.13 seconds to an overage
+        of 0.009 seconds.
+    [2] It didn't materially affect the duration of calls to
+        open-ils.actor.user.opac.vital_stats.
+    [3] This make sense: open-ils.storage has far more generated methods
+        than open-ils.actor.
+    [4] There are enough instances in Evergreen of using method_lookup to find
+        routines in open-ils.storage that the speed improvement may well be
+        perceptible to humans, not just SIP sorters.
     
-    Signed-off-by: Bill Erickson <berickxx at gmail.com>
+    Signed-off-by: John Merriam <jmerriam at biblio.org>
     Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
 
-10	2	README
-30	2	examples/nginx/osrf-ws-http-proxy
+7	7	src/perl/lib/OpenSRF/AppSession.pm
+9	9	src/perl/lib/OpenSRF/Application.pm
+4	4	src/perl/lib/OpenSRF/DomainObject/oilsMessage.pm
+2	2	src/perl/lib/OpenSRF/EX.pm
+3	3	src/perl/lib/OpenSRF/MultiSession.pm
+9	9	src/perl/lib/OpenSRF/Server.pm
+1	1	src/perl/lib/OpenSRF/Transport.pm
+1	1	src/perl/lib/OpenSRF/Transport/SlimJabber/Client.pm
 
-commit d2683cd6d552fdbc6dc25e24cc2aa6c047243b4c
-Author: Bill Erickson <berickxx at gmail.com>
-Date:   Tue Jun 12 12:12:45 2018 -0400
+commit 07ae6134166a804a5ba86c379ef5dec00577a873
+Author: Galen Charlton <gmc at equinoxinitiative.org>
+Date:   Fri Jun 7 11:30:42 2019 -0400
 
-    LP#1776510 JS libs handle transport errors
+    LP#1824181: add test cases
     
-    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.
+    To test
+    -------
+    [1] Verify that 'make check' (or prove src/perl/t/09-Utils-Logger.t)
+        passes.
     
-    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 <berickxx at gmail.com>
     Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
 
-23	0	src/javascript/opensrf.js
+10	1	src/perl/t/09-Utils-Logger.t
 
-commit 0df7943369cbd5416276de84b428cd0a27a2b1eb
-Author: Mike Rylander <mrylander at gmail.com>
-Date:   Fri Jul 7 15:22:21 2017 -0400
+commit 327a272e1d5fa187f1c78afc963d125e3bb32860
+Author: John Merriam <jmerriam at biblio.org>
+Date:   Wed Apr 10 09:51:54 2019 -0400
 
-    LP#1702978: memcache Get methods use key as va_list format
+    LP#1824181: Allow 1st arg to logger to be string or subroutine
+    
+    This simple change allows the $msg passed to _log_message in Logger.pm
+    to be either a regular string or a delayed exec subroutine. This is in
+    reaction to LP1823338 where a slow debug logging statement was slowing
+    down SIP checkins even though debug logging was not turned on.
+    
+    With this change you can take this:
     
-    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.
+    $log->debug("Available methods\n\t".join("\n\t", keys %{ $_METHODS[$proto] }), INTERNAL);
     
-    TODO: Make these actually non-variadic, but that breaks ABI.
+    and change it to this:
     
-    Signed-off-by: Mike Rylander <mrylander at gmail.com>
-    Signed-off-by: Cesar Velez <cesar.velez at equinoxinitiative.org>
-    Signed-off-by: Jason Stephenson <jason at sigio.com>
+    $log->debug(sub{return "Available methods\n\t".join("\n\t", keys %{ $_METHODS[$proto] }) }, INTERNAL);
+    
+    and then that slow debug logging line will not be executed unless
+    debug logging is turned on.
+    
+    Signed-off-by: John Merriam <jmerriam at biblio.org>
+    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>
 
-13	17	src/libopensrf/osrf_cache.c
+3	0	src/perl/lib/OpenSRF/Utils/Logger.pm

commit 5002dd8de58a7f3e79a14bf2ca28cb4d2b7ae71a
Author: Galen Charlton <gmc at equinoxinitiative.org>
Date:   Fri Jun 7 17:10:11 2019 -0400

    update versions for OpenSRF 3.0.3
    
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>

diff --git a/README b/README
index 364e2f4..e2e9257 100644
--- a/README
+++ b/README
@@ -29,7 +29,7 @@ Issue the following commands as the *user* Linux account.
 +
 [source, bash]
 ------------------------------------------------------------------------------
-wget https://evergreen-ils.org/downloads/opensrf-3.0.2.tar.gz
+wget https://evergreen-ils.org/downloads/opensrf-3.0.3.tar.gz
 ------------------------------------------------------------------------------
 +
 [NOTE]
@@ -40,8 +40,8 @@ http://git.evergreen-ils.org/?p=OpenSRF.git
 +
 [source, bash]
 ------------------------------------------------------------------------------
-tar -xvf opensrf-3.0.2.tar.gz
-cd opensrf-3.0.2/
+tar -xvf opensrf-3.0.3.tar.gz
+cd opensrf-3.0.3/
 ------------------------------------------------------------------------------
 
 Installing prerequisites
@@ -469,14 +469,14 @@ a2dismod websocket
 .(Debian Wheezy)
 [source, bash]
 ---------------------------------------------------------------------------
-cd /path/to/opensrf-3.0.2
+cd /path/to/opensrf-3.0.3
 cp examples/apache2/websockets/apache2.conf /etc/apache2-websockets/
 ---------------------------------------------------------------------------
 +
 .(Debian Jessie/Stretch, Ubuntu Trusty/Xenial)
 [source, bash]
 ---------------------------------------------------------------------------
-cd /path/to/opensrf-3.0.2
+cd /path/to/opensrf-3.0.3
 cp examples/apache_24/websockets/apache2.conf /etc/apache2-websockets/
 ---------------------------------------------------------------------------
 +
@@ -566,7 +566,7 @@ apt-get install nginx
 +
 [source, bash]
 ---------------------------------------------------------------------------
-cd /path/to/opensrf-3.0.2
+cd /path/to/opensrf-3.0.3
 cp examples/nginx/osrf-ws-http-proxy /etc/nginx/sites-available/
 ln -s /etc/nginx/sites-available/osrf-ws-http-proxy /etc/nginx/sites-enabled/osrf-ws-http-proxy
 rm /etc/nginx/sites-enabled/default
@@ -630,7 +630,7 @@ apt-get install haproxy
 +
 [source, bash]
 ---------------------------------------------------------------------------
-cd /path/to/opensrf-3.0.2
+cd /path/to/opensrf-3.0.3
 cat examples/haproxy/osrf-ws-http-proxy >> /etc/haproxy/haproxy.cfg
 ---------------------------------------------------------------------------
 +
diff --git a/src/perl/lib/OpenSRF.pm b/src/perl/lib/OpenSRF.pm
index 17819c3..13ef05c 100644
--- a/src/perl/lib/OpenSRF.pm
+++ b/src/perl/lib/OpenSRF.pm
@@ -12,11 +12,11 @@ OpenSRF - Top level class for OpenSRF perl modules.
 
 =head1 VERSION
 
-Version 3.0.2
+Version 3.0.3
 
 =cut
 
-our $VERSION = "3.000002";
+our $VERSION = "3.000003";
 
 =head1 METHODS
 
diff --git a/src/python/setup.py b/src/python/setup.py
index 6d399fb..b3f7f82 100644
--- a/src/python/setup.py
+++ b/src/python/setup.py
@@ -3,7 +3,7 @@
 from setuptools import setup
 
 setup(name='OpenSRF',
-    version='3.0.2',
+    version='3.0.3',
     install_requires=[
         'dnspython', # required by pyxmpp
     	'python-memcached',
diff --git a/version.m4 b/version.m4
index 20eaa4c..df07637 100644
--- a/version.m4
+++ b/version.m4
@@ -1 +1 @@
-m4_define([VERSION_NUMBER],[3.0.2])
+m4_define([VERSION_NUMBER],[3.0.3])

commit 9124bf3c82ad29e20a0a2607cb78d6b9db325efa
Author: Galen Charlton <gmc at equinoxinitiative.org>
Date:   Fri Jun 7 17:08:30 2019 -0400

    update release notes for OpenSRF 3.0.3
    
    Signed-off-by: Galen Charlton <gmc at equinoxinitiative.org>

diff --git a/doc/RELEASE_NOTES.txt b/doc/RELEASE_NOTES.txt
index 78a0b26..bb0676f 100644
--- a/doc/RELEASE_NOTES.txt
+++ b/doc/RELEASE_NOTES.txt
@@ -8,6 +8,35 @@ The following Linux distributions are well-tested:
   * Debian 7 (Wheezy), 8 (Jessie), and 9 (Stretch)
   * Ubuntu 14.04 (Trusty Tahr) and 16.04 LTS (Xenial Xerus)
 
+OpenSRF 3.0.3
+-------------
+OpenSRF 3.0.3 was released on 7 June 2019. This is a bugfix release
+that improves performance. All users of OpenSRF 3.0.x are advised to
+upgrade as soon as possible.
+
+The following bugs are fixed:
+
+  * LP#1824181 and LP#1824184: Improve the performance of certain
+    logging statements. OpenSRF application code written in Perl
+    can now pass a subroutine reference to a logging statement
+    instead of a string. This allows complicated expressions to
+    generate text for a log message to not be run unless actually
+    needed for the current logging level.  For example, a logging
+    statement of `$logger->debug('message')` can
+    now be alternatively be represented as
+    `$logger->debug(sub { return 'message' })`. OpenSRF now uses this
+    mechanism for a debug logging statement in `method_lookup()`. This
+    has the effect of reducing the time to run some methods in
+    Evergreen's `open-ils.storage` service by 90%.
+
+Acknowledgments
+~~~~~~~~~~~~~~~
+
+We would like to thank the following people who contributed to OpenSRF 3.0.3:
+
+  * Galen Charlton
+  * John Merriam
+
 OpenSRF 3.0.2
 -------------
 OpenSRF 3.0.2 was released on 6 November 2018 and fixes several

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog               | 148 +++++++++++++++++++++++++++---------------------
 README                  |  14 ++---
 doc/RELEASE_NOTES.txt   |  29 ++++++++++
 src/perl/lib/OpenSRF.pm |   4 +-
 src/python/setup.py     |   2 +-
 version.m4              |   2 +-
 6 files changed, 123 insertions(+), 76 deletions(-)


hooks/post-receive
-- 
OpenSRF


More information about the opensrf-commits mailing list