commit 5002dd8de58a7f3e79a14bf2ca28cb4d2b7ae71a Author: Galen Charlton Date: Fri Jun 7 17:10:11 2019 -0400 update versions for OpenSRF 3.0.3 Signed-off-by: Galen Charlton 7 7 README 2 2 src/perl/lib/OpenSRF.pm 1 1 src/python/setup.py 1 1 version.m4 commit 9124bf3c82ad29e20a0a2607cb78d6b9db325efa Author: Galen Charlton Date: Fri Jun 7 17:08:30 2019 -0400 update release notes for OpenSRF 3.0.3 Signed-off-by: Galen Charlton 29 0 doc/RELEASE_NOTES.txt commit ca876a9ae69ed49369d8722831f11c3876d893ad Author: John Merriam Date: Wed Apr 10 11:06:14 2019 -0400 LP#1824184: Change potentially slow log statements to subroutines 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. Here is some pseudocode that shows what is being done here: $log->debug("Some text " . $some->slow_method); would be changed to: $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). ******** 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. ******** 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: John Merriam Signed-off-by: Galen Charlton 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 07ae6134166a804a5ba86c379ef5dec00577a873 Author: Galen Charlton Date: Fri Jun 7 11:30:42 2019 -0400 LP#1824181: add test cases To test ------- [1] Verify that 'make check' (or prove src/perl/t/09-Utils-Logger.t) passes. Signed-off-by: Galen Charlton 10 1 src/perl/t/09-Utils-Logger.t commit 327a272e1d5fa187f1c78afc963d125e3bb32860 Author: John Merriam Date: Wed Apr 10 09:51:54 2019 -0400 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: $log->debug("Available methods\n\t".join("\n\t", keys %{ $_METHODS[$proto] }), INTERNAL); and change it to this: $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 Signed-off-by: Galen Charlton 3 0 src/perl/lib/OpenSRF/Utils/Logger.pm