ChangeLog ========= OpenSRF 2.3.0 ------------- commit 95c5bcd2509fc92a399b073e8c5f04eb767089a5 Author: Galen Charlton Date: Fri Mar 28 13:14:10 2014 -0700 bump up version number to 2.3.0 Signed-off-by: Galen Charlton 2 2 doc/RELEASE_NOTES.txt 2 2 src/perl/lib/OpenSRF.pm 1 1 src/python/setup.py 1 1 version.m4 commit a67bae66dd6a5e4062d63a00773c8e4c3bf4f880 Author: Galen Charlton Date: Fri Mar 21 13:57:04 2014 -0400 bump up version number for 2.3.0 RC Signed-off-by: Galen Charlton 2 2 src/perl/lib/OpenSRF.pm 1 1 src/python/setup.py 1 1 version.m4 commit dae3c9a9134d71b6acb1c4905379780694dc2635 Author: Galen Charlton Date: Fri Mar 7 10:39:08 2014 -0800 cite the most relevant bug numbers for enhancements in the release notes Signed-off-by: Galen Charlton 8 8 doc/RELEASE_NOTES.txt commit 9b6127b2a08892036699616d3fa8889f8933f545 Author: Galen Charlton Date: Fri Mar 7 10:33:16 2014 -0800 mention opensrf_router managing its own PID file in release notes Signed-off-by: Galen Charlton 5 3 doc/RELEASE_NOTES.txt commit 328c7408e2836733f8fc72faef6fc9dbb9f20523 Author: Galen Charlton Date: Fri Mar 7 10:25:14 2014 -0800 fix typos in the release notes Signed-off-by: Galen Charlton 3 3 doc/RELEASE_NOTES.txt commit fb561efb67a641bd3cf7767b31dcf70a7a0ae824 Author: Galen Charlton Date: Fri Mar 7 10:16:33 2014 -0800 update release notes for 2.3.0-rc Signed-off-by: Galen Charlton 16 2 doc/RELEASE_NOTES.txt commit 824452bd95815ed8713761fbe770d2a0d2161087 Author: Galen Charlton Date: Fri Mar 7 08:22:38 2014 -0800 LP#1286198: use --ignore-orphans rather than --are-there-no-prisons The joke was fine while it lasted, but might be confusing to somebody who doesn't catch the literary reference. This patch also fixes a minor typo. Signed-off-by: Galen Charlton 3 3 bin/opensrf-perl.pl.in commit 410fb2d443826611b3f26e07e945f39ad374a98d Author: Lebbeous Fogle-Weekley Date: Tue Feb 4 17:56:07 2014 -0500 LP#1286198: Teach osrf_router to (optionally) write its own PID files Also, tiny bit of noise squelching on osrf_control/opensrf-perl.pl Signed-off-by: Lebbeous Fogle-Weekley Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton 6 13 bin/opensrf-perl.pl.in 1 0 include/opensrf/utils.h 19 1 src/libopensrf/utils.c 84 5 src/router/osrf_router_main.c commit 848e22fd7fe1478b86c4b64eb1e2a36cb8cbe115 Author: Lebbeous Fogle-Weekley Date: Fri Jan 31 15:50:01 2014 -0500 LP#1286198: Offer ability to ignore what seem like orphan processes when starting things Signed-off-by: Lebbeous Fogle-Weekley Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton 10 3 bin/opensrf-perl.pl.in commit b7dda84946771959e2a44af977a007a3bf7923c9 Author: Lebbeous Fogle-Weekley Date: Thu Jan 30 18:32:24 2014 -0500 LP#1286198: When doing router-specific things, we don't need as much configuration loaded Signed-off-by: Lebbeous Fogle-Weekley Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton 3 3 bin/opensrf-perl.pl.in commit d9ac17b0f18e7274468a426836b9c7f5dcfd2e72 Author: Galen Charlton Date: Thu Feb 27 17:34:50 2014 -0800 fix typo in 2.3.0-beta changelog Signed-off-by: Galen Charlton 2 2 ChangeLog commit 8bf1f95aee67cd88e1ac0d6dca5380952ad404a9 Author: Galen Charlton Date: Thu Feb 27 16:53:26 2014 -0800 change log for 2.3.0-beta Signed-off-by: Galen Charlton 597 1007 ChangeLog commit d6688eade4a5947efd5280768fc549942a22e451 Author: Galen Charlton Date: Thu Feb 27 16:52:15 2014 -0800 bump up version numbers of OpenSRF 2.3.0-beta Signed-off-by: Galen Charlton 2 2 src/perl/lib/OpenSRF.pm 1 1 src/python/setup.py 1 1 version.m4 commit e4453fbb43032f1154e1aa6dfdaf6183682026d9 Author: Galen Charlton Date: Thu Feb 27 16:46:46 2014 -0800 release notes for OpenSRF 2.3.0 beta Signed-off-by: Galen Charlton 90 0 doc/RELEASE_NOTES.txt create mode 100644 doc/RELEASE_NOTES.txt commit 3692bb33cccdf3106df96883033b20ab9170c5a5 Author: Bill Erickson Date: Mon Feb 24 09:09:46 2014 -0500 LP#1284137: Avoid WARN logging on router shutdown Log received signals as DEBUG (misc signal) or INFO (during shutdown) in the router, since these are not error conditions, but normal operations. A warning may ultimately be logged at a higher level when the signal is unexpected. Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 1 1 src/router/osrf_router.c 2 2 src/router/osrf_router_main.c commit 02a93da43f4fcebf7b00e5893ecd3e855dc2dbba Author: Galen Charlton Date: Fri Mar 15 10:22:17 2013 -0400 LP#1155446: add Debian/Ubuntu deps required for Python tests to pass Signed-off-by: Galen Charlton Signed-off-by: Ben Shum 5 0 src/extras/Makefile.install commit 2fae35660282044e8462cde5b8152ff3d24f77e3 Author: Bill Erickson Date: Fri Oct 12 16:57:15 2012 -0400 LP#1066131: srfsh.py should not require opensrf.settings Update srfsh.py to connect to the opensrf network without automatically reading the opensrf.setting server data. This allows srfsh.py to run a non-private network. Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 1 1 src/python/srfsh.py commit 989ac2737759a0fc6a80ec08b1a68b35eab2ff60 Author: Galen Charlton Date: Thu Apr 18 16:14:00 2013 -0400 LP#1170484: log failure to load library for C app as an error Signed-off-by: Galen Charlton Signed-off-by: Ben Shum 1 1 src/libopensrf/osrf_application.c commit 9a01063b3c78a33707a414a36d397e061ca62b1d Merge: d90a415 2cc896b Author: Galen Charlton Date: Fri Jan 31 16:40:58 2014 -0500 Merge branch 'rel_2_3' commit 2cc896b7d103fbade96054881c6c57046eef01e5 Author: Galen Charlton Date: Fri Jan 31 16:20:26 2014 -0500 fix typo and remove repeated word Signed-off-by: Galen Charlton 3 3 bin/opensrf-perl.pl.in commit a98d4b5195a0f5e77d14d4d247dde47f71b573c2 Author: Bill Erickson Date: Tue Jan 7 14:06:06 2014 -0500 osrf_control router-de/re-register and reload commands Added support for the following new command line options: --router-de-register --router-de-register-all Sends a SIGUSR1 signal to the selected service(s), which causes each service's listener process to send an "unregister" command to all registered routers. The --all variant sends the signal to all running listeners. The non-(--all) variant requires a --service. --router-re-register --router-re-register-all Sends a SIGUSR2 signal to the selected service(s), which causes each service's listener process to send a "register" command to all configured routers routers. The --all variant sends the signal to all running listeners. The non-(--all) variant requires a --service. --reload --reload-all Sends a SIGHUP signal to the selected service(s). SIGHUP causes each Listener process to reload its opensrf_core.xml config file and gracefully re-launch drone processes. The -all variant sends the signal to all services. The non-(-all) variant requires a --service. Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 46 3 bin/opensrf-perl.pl.in commit d90a415f0c98a62560d9f824da4b18b6ee9eba84 Author: Galen Charlton Date: Fri Jan 31 16:25:16 2014 -0500 x Signed-off-by: Galen Charlton 2 2 bin/opensrf-perl.pl.in commit 0c0b02e0e8252d5a3e63dea03f8b8d8519526d5a Author: Galen Charlton Date: Fri Jan 31 16:20:26 2014 -0500 typo fix Signed-off-by: Galen Charlton 1 1 bin/opensrf-perl.pl.in commit 5b3f8046bf05191424425cbe6bad5342ccb9ebbf Author: Bill Erickson Date: Tue Jan 7 14:06:06 2014 -0500 osrf_control router-de/re-register and reload commands Added support for the following new command line options: --router-de-register --router-de-register-all Sends a SIGUSR1 signal to the selected service(s), which causes each service's listener process to send an "unregister" command to all registered routers. The --all variant sends the signal to all running listeners. The non-(--all) variant requires a --service. --router-re-register --router-re-register-all Sends a SIGUSR2 signal to the selected service(s), which causes each service's listener process to send a "register" command to all configured routers routers. The --all variant sends the signal to all running listeners. The non-(--all) variant requires a --service. --reload --reload-all Sends a SIGHUP signal to the selected service(s). SIGHUP causes each Listener process to reload its opensrf_core.xml config file and gracefully re-launch drone processes. The -all variant sends the signal to all services. The non-(-all) variant requires a --service. Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 46 3 bin/opensrf-perl.pl.in commit 14287dc536142b14bc67806b1417b9a4850fa8cc Author: Bill Erickson Date: Thu Nov 21 16:37:38 2013 -0500 recover osrf_control router start With the addition of service verification, which ensures that a service is meant to run on the requested host, we lost the ability to start the router by itself, since the router is never explicitly configured to run anywhere. This patch assumes the router is always a valid service. Signed-off-by: Bill Erickson Signed-off-by: Dan Wells 1 0 bin/opensrf-perl.pl.in commit b59aee460f2b84f94ecabb758051cf00209574e6 Author: Bill Erickson Date: Thu Nov 21 16:37:38 2013 -0500 recover osrf_control router start With the addition of service verification, which ensures that a service is meant to run on the requested host, we lost the ability to start the router by itself, since the router is never explicitly configured to run anywhere. This patch assumes the router is always a valid service. Signed-off-by: Bill Erickson Signed-off-by: Dan Wells 1 0 bin/opensrf-perl.pl.in commit c5ca743810acded29b0dcf9866ea513d5fcffdb9 Author: Bill Erickson Date: Thu Dec 5 12:27:44 2013 -0500 OpenSRF client disconnect robustification (Perl) * Improve detection of client connection state with jabber server Be more aggressive in testing and responding to failed connectivity. It can happen in various ways, depending on what's happening to the jabber server (death, delay, graceful shutdown). With these changes we attempt to cover all the bases and detect as early as possible that a connection has died, specifically when trying to create a new connection after one has failed. * Do a better job of cleaning up dead connections Transport::PeerHandle now has a reset() action which disconnects (when possible) and clears the global connection reference. Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 8 2 src/perl/lib/OpenSRF/System.pm 6 0 src/perl/lib/OpenSRF/Transport/SlimJabber/Client.pm 6 0 src/perl/lib/OpenSRF/Transport/SlimJabber/PeerConnection.pm 1 0 src/perl/lib/OpenSRF/Transport/SlimJabber/XMPPReader.pm commit b0a41d3973c944259c193fb4da1dce7f0c690f70 Author: Bill Erickson Date: Thu Dec 5 12:27:44 2013 -0500 OpenSRF client disconnect robustification (Perl) * Improve detection of client connection state with jabber server Be more aggressive in testing and responding to failed connectivity. It can happen in various ways, depending on what's happening to the jabber server (death, delay, graceful shutdown). With these changes we attempt to cover all the bases and detect as early as possible that a connection has died, specifically when trying to create a new connection after one has failed. * Do a better job of cleaning up dead connections Transport::PeerHandle now has a reset() action which disconnects (when possible) and clears the global connection reference. Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton 8 2 src/perl/lib/OpenSRF/System.pm 6 0 src/perl/lib/OpenSRF/Transport/SlimJabber/Client.pm 6 0 src/perl/lib/OpenSRF/Transport/SlimJabber/PeerConnection.pm 1 0 src/perl/lib/OpenSRF/Transport/SlimJabber/XMPPReader.pm commit af8cab4b4b77f668e3c5ac85d191acf94537ef32 Author: Mike Rylander Date: Thu May 16 10:17:15 2013 -0400 Protect subrequests from post-complete messages Subrequests (AKA method_lookup()-based API calls) sometimes append final-lvalue responses to the response list even after respond_complete() has been called from within the implementation method. This commit discards all post-respond_complete values, protecting against extra, spurious values being returned to the ultimate client. Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton 16 2 src/perl/lib/OpenSRF/AppSession.pm commit 8d9b6b60cec68910ab48e4477e5de2d451013dc5 Author: Galen Charlton Date: Mon Dec 16 08:08:51 2013 -0800 LP#1180849: test case - ignoring subrequest responses after respond_complete() This patch adds a regression test for verifying that subrequests ignore additional responses after respond_complete() is called. Signed-off-by: Galen Charlton 9 1 src/perl/t/02-AppSession.t commit a0d5b0536231cc06552fb9d7533a713c314ef9d3 Author: Mike Rylander Date: Thu May 16 10:17:15 2013 -0400 Protect subrequests from post-complete messages Subrequests (AKA method_lookup()-based API calls) sometimes append final-lvalue responses to the response list even after respond_complete() has been called from within the implementation method. This commit discards all post-respond_complete values, protecting against extra, spurious values being returned to the ultimate client. Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton 16 2 src/perl/lib/OpenSRF/AppSession.pm commit 59b4dd74e8695bc9bd7ad6c379b0f313db1cbb61 Author: Galen Charlton Date: Mon Dec 16 08:08:51 2013 -0800 LP#1180849: test case - ignoring subrequest responses after respond_complete() This patch adds a regression test for verifying that subrequests ignore additional responses after respond_complete() is called. Signed-off-by: Galen Charlton 9 1 src/perl/t/02-AppSession.t commit 4ec8e134da80422f288e3e84024a8aa137b22259 Author: Jeff Godin Date: Tue Dec 3 13:52:39 2013 -0500 Add some additional boolean-related JSON tests Add some additional boolean-related JSON tests, enable use strict / use warnings for JSON tests. Signed-off-by: Jeff Godin Signed-off-by: Galen Charlton 12 5 src/perl/t/09-Utils-JSON.t commit 9a367d3621706693445b945b283d54281d6dfa0a Author: Mike Rylander Date: Tue Dec 3 09:57:39 2013 -0500 LP#1257264: Use the built-in JSON-y test for bools This removes a dependency on internal details of JSON::XS's implementation of Boolean types which changed with the release of JSON::XS 3.0. Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton Signed-off-by: Jeff Godin 3 4 src/perl/lib/OpenSRF/Utils/JSON.pm commit db87a311765e1c9bd538504827349a797a9b1bc4 Author: Galen Charlton Date: Tue Dec 3 09:43:54 2013 -0800 LP#1257264: make test cases for JSON::XS Boolean-ness more generic Signed-off-by: Galen Charlton Signed-off-by: Jeff Godin 5 5 src/perl/t/09-Utils-JSON.t commit b93e0ca9c88e76d8a6a3c2451cbb49756c6ecf68 Author: Jeff Godin Date: Tue Dec 3 13:52:39 2013 -0500 Add some additional boolean-related JSON tests Add some additional boolean-related JSON tests, enable use strict / use warnings for JSON tests. Signed-off-by: Jeff Godin Signed-off-by: Galen Charlton 12 5 src/perl/t/09-Utils-JSON.t commit a5be2f1654ea2211abef57f6065d8f6c5ee7f58a Author: Mike Rylander Date: Tue Dec 3 09:57:39 2013 -0500 LP#1257264: Use the built-in JSON-y test for bools This removes a dependency on internal details of JSON::XS's implementation of Boolean types which changed with the release of JSON::XS 3.0. Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton Signed-off-by: Jeff Godin 3 4 src/perl/lib/OpenSRF/Utils/JSON.pm commit ff472c0e3c1dd47b5a584ebaf6a64d0534c5438b Author: Galen Charlton Date: Tue Dec 3 09:43:54 2013 -0800 LP#1257264: make test cases for JSON::XS Boolean-ness more generic Signed-off-by: Galen Charlton Signed-off-by: Jeff Godin 5 5 src/perl/t/09-Utils-JSON.t commit 9028b0238106923a64534b88eb6382bf59783ea5 Author: Galen Charlton Date: Thu Sep 12 12:37:57 2013 -0700 LP#1224647: remove two invalid tests The patch for bug 1204123 changes the client_recv() to not set the transport_client error flag, as most of the circumstances where it would have been set were for cases where the call to select() was interrupted by a signal, which is not an error per se. This patch removes two tests that were therefore made invalid, restoring the ability of the test suite to pass. Signed-off-by: Galen Charlton Signed-off-by: Bill Erickson 0 4 tests/check_transport_client.c commit e203c6edd4e02437a56d98f24a7b8c52b142faee Author: Bill Erickson Date: Thu Sep 5 10:32:09 2013 -0400 osrf_control --start/stop/restart-services Provide commands for controling non-router services. This is useful in a multi-server environment where the router runs on a different server. Signed-off-by: Bill Erickson Signed-off-by: Thomas Berezansky 44 7 bin/opensrf-perl.pl.in commit 0ef66eea902b50efa360815114c11d40d14560d2 Author: Bill Erickson Date: Tue Sep 3 14:56:27 2013 -0400 LP#1204123 repair makefile.am warning Avoid trailing space after backslash Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 1 1 src/Makefile.am commit ca94866879192a2ea962ce12d15573aa83115cd8 Author: Bill Erickson Date: Fri Aug 30 14:17:02 2013 -0400 LP#1204123 osrf_control warn and exit on bad host Any time a start action is issued (start, start_all, restart, restart_all), osrf_control will first verify that the selected hostname (or localhost) hosts the requested service(s). If not, the user is warned and the script exits before any action is taken. Note: we do not make a similar verification for stop and signal actions, since those may be reasonably be used even when a service is not configured to run on the selected host. Thanks to Jason Stephenson for the suggestion. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 30 7 bin/opensrf-perl.pl.in commit f7c7fd436ffdd85abef2f8c76c8e6f59755777ab Author: Bill Erickson Date: Fri Aug 30 13:09:27 2013 -0400 LP#1204123 osrf_control --diagnostic improvements Assessing the state of each PID for each service for error conditions. Minor cleanup. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 28 41 bin/opensrf-perl.pl.in commit e6cdba1fe3b3af91d91b13ea0ad4a4d8ceaa4b21 Author: Bill Erickson Date: Fri Aug 30 11:27:49 2013 -0400 LP#1204123 osrf_control --diagnostic Command prints information about running services, including descrepencies between running vs configured and PS listing vs PID files. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 96 4 bin/opensrf-perl.pl.in commit d1d2894e69ca2741b54b936737ac442b1774cd95 Author: Bill Erickson Date: Tue Aug 27 15:56:46 2013 -0400 LP1204123 osrf_ctl.sh improvement Removing no-longer-supported --verbose flag from osrf_ctl.sh stub Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 1 2 bin/osrf_ctl.sh.in commit 9c07e2ad85a3a569914070b59c3b185d1cc0f1cb Author: Bill Erickson Date: Tue Aug 27 15:52:48 2013 -0400 LP1204123 osrf_control doc updates Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 2 2 README 1 1 examples/opensrf.xml.example commit 7fed81ab4a24236ef2db4bd0f1d6bd40c65e0b80 Author: Bill Erickson Date: Tue Aug 27 11:47:52 2013 -0400 C SIGHUP handling and config reloading Sending the HUP signal to a C Listener process now results in the following: * Reload the opensrf_core config * update the log file level * kill idle child processes * child processes that are active when the signal is received are tracked and killed once they become idle. * New children are spawned per the min child settings The primary use case for these changes is temporarily changing the log level for a given service for debug purposes. It may also be used, for example, to gracefully recover excess RAM consumed by a child process. opensrf.xml (opensrf.settings config) is not reloaded, so min/max child settings will not be affected. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 2 0 include/opensrf/osrfConfig.h 6 0 src/libopensrf/osrfConfig.c 134 19 src/libopensrf/osrf_prefork.c commit 76ceb9d1e4d662c7fa8c41434df940647bf32fef Author: Bill Erickson Date: Fri Aug 16 10:07:10 2013 -0400 LP1204123 more osrf_ctl/control script cleanup Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 1 1 bin/osrf_ctl.sh.in commit 9f8d384361e88d786d70a350f6f154e93a592d7b Author: Bill Erickson Date: Fri Aug 16 10:04:55 2013 -0400 LP1204123 more osrf_ctl/control script cleanup Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 5 3 bin/opensrf-perl.pl.in 1 1 bin/osrf_ctl.sh.in commit d849a24e417898d1a4dc2590af51f95f56b508ff Author: Bill Erickson Date: Mon Aug 12 11:39:28 2013 -0400 LP1204123 osrf_control improved sample usage Use a more realistic default usage message. --config and --pid-dir have sane defaults, so people will not normally need to specify those. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 1 1 bin/opensrf-perl.pl.in commit 7e274fb696485b43bba31315138fad866221b97b Author: Bill Erickson Date: Mon Aug 12 11:33:11 2013 -0400 LP1204123 install opensrf-perl.pl as osrf_control Symlink osrf_control to opensrf-perl.pl to act as the replacement for osrf_ctl.sh. I chose "osrf_control" since it matches more closely to "osrf_config" -- also it's probably less confusing than calling it osrf_ctl, which would likely get confused w/ osrf_ctl.sh TODO: documentation Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 3 0 src/Makefile.am commit 79522df516441ea34fa615bd1e83e8bc4ee93d66 Author: Bill Erickson Date: Mon Aug 12 11:31:56 2013 -0400 LP1204123 opensrf-perl.pl improve logging Log messages by default. Replace --verbose flag with --quiet flag. Also treat all messages the same, instead of separating them into info and debug. They're all pretty useful. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 35 21 bin/opensrf-perl.pl.in commit 5f21d07c7d5c61c3cb6c7ecd891fe79e68a06aae Author: Bill Erickson Date: Fri Aug 9 10:40:29 2013 -0400 LP1204123 opensrf-perl.pl expansion continued * improved cleanup of stale pid files during startup * added --force-clean-process option to kill orphan (no pidfile) processes during startup * other minor cleanup Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 78 38 bin/opensrf-perl.pl.in 3 7 bin/osrf_ctl.sh.in commit 69b139d87447e9ddc546b5a772e9fa1725e23e6c Author: Bill Erickson Date: Mon Aug 5 16:58:26 2013 -0400 LP1204123 opensrf-perl.pl expansion / replace osrf_ctl opensrf-perl.pl can now stop/start/signal/etc. all opensrf services, regardless of language. It is in effect a replacement for osrf_ctl.sh with considerably broader powers. To ease transition, osrf_ctl.sh has been taught to pass start/stop/restart_all commands through to opensrf-perl.pl. The layout of commands has changed some (e.g. --start-all instead of --action start_all) and a host of new commands have been added. Below are the full set of commands. See --help for full descriptions: --config --pid-dir --settings-startup-pause --localhost --service --verbose --no-daemon --help --start-all --start --restart-all --restart --stop-all --stop --graceful-shutdown-all --graceful-shutdown --fast-shutdown-all --fast-shutdown --immediate-shutdown-all --immediate-shutdown --kill-with-fire --signal-all --signal --signal-timeout Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 390 49 bin/opensrf-perl.pl.in 10 339 bin/osrf_ctl.sh.in commit ca1a08ff5864a2a4ef8e11070330eb0f5eb3c518 Author: Bill Erickson Date: Thu Aug 1 10:39:21 2013 -0400 LP1204123 Remove osrf_ctl debug echos Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 0 4 bin/osrf_ctl.sh.in commit 06368dfa151f04c6cbb0b843b7e9dc795a8193c5 Author: Bill Erickson Date: Wed Jul 31 17:43:12 2013 -0400 LP1204123 Improved per-service control (C/Perl) C opensrf no longer mantains a single master process. Instead, like Perl, each Listener process writes its own PID file and can be managed individually. Related to this, much code was cleaned up in osrf_system.c. osrf_ctl.sh now has the ability to stop/start individual services for Perl and C, using the new -s option. Examples: osrf_ctl.sh -l -a restart_c -s opensrf.math osrf_ctl.sh -l -a restart_perl -s opensrf.settings Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 73 8 bin/osrf_ctl.sh.in 5 0 include/opensrf/osrf_system.h 57 13 src/libopensrf/opensrf.c 1 0 src/libopensrf/osrf_prefork.c 205 389 src/libopensrf/osrf_system.c commit ab83a04551cd333870d0ee6679e5aa6f4342cfb3 Author: Bill Erickson Date: Wed Jul 31 09:34:19 2013 -0400 LP1204123 osrf_ctl.sh supports sending signals Using the following new options to osrf_ctl.sh, the script can now send signals to any/all OpenSRF Listener processes: -a signal / signal_all -k [value passed to 'kill -s'] -s With an action of 'signal' and service provided by -s, the specified signal is sent only to the listener process of the service. With an action of 'signal_all', the specified signal is sent to all listener prcesses. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 73 2 bin/osrf_ctl.sh.in commit cb6bdf156a69a60fa0a55006b6f638853da3b9f0 Author: Bill Erickson Date: Wed Jul 24 16:28:15 2013 -0400 LP1204123 Don't treat interrupts as errors Interrupted calls to select() are generally not errors, but more likely signals received by the process. Avoid setting the transport_client error flag to true in these cases. Otherwise, after one signal is received, no other outbound communication can occur on the client connection. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 1 3 src/libopensrf/transport_client.c 0 1 src/libopensrf/transport_session.c commit ab845cdebe7588a7fd4fb67317b7deab557fa210 Author: Bill Erickson Date: Tue Jul 23 12:06:48 2013 -0400 LP1204123 SIGUSR2 causes router re-register (Perl/C) When a listener process receives the USR2 signal, the 'register' command is sent to all known routers. This allows for the addition of new routers to running opensrf services. If a register command is sent to a router for which the process is already successfully register, the router will safely discard it, so multiple SIGUSR2 calls are safe. Minor int => bool clarification repair to existing C shutdown (prefork_clear) code. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 20 5 src/libopensrf/osrf_prefork.c 1 0 src/perl/lib/OpenSRF/Server.pm commit 84d949cc09de9e2689b76541caeae524ab3b1f1e Author: Bill Erickson Date: Tue Jul 23 11:31:34 2013 -0400 LP1204123 opensrf.settings reload file option opensrf.settings API calls opensrf.settings.host_config.get opensrf.settings.default_config.get now sport an additional "reload" boolean parameter. When set, the settings file (opensrf.xml) will be reloaded from the file system to pick up any changes which have occurred since the last load/reload. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 8 5 src/perl/lib/OpenSRF/Application/Settings.pm 13 24 src/perl/lib/OpenSRF/Utils/SettingsClient.pm 23 26 src/perl/lib/OpenSRF/Utils/SettingsParser.pm commit 0e535cb775b78699f7ff15d9b73479f0aeaa4246 Author: Bill Erickson Date: Mon Jul 22 16:44:26 2013 -0400 LP1204123 SIGTERM graceful shutdown (C) When a TERM signal is received, the listener parent process will wait for all child processes to complete any active tasks before killing the child processes and shutting down. Receiving a SIGINT or SIGQUIT results in a non-graceful shutdown. In all cases, the system first un-registers with all routers. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 75 20 src/libopensrf/osrf_prefork.c commit fc2dc403640ed245ff2ba8c3f44beea727d0e7cc Author: Bill Erickson Date: Tue Jul 23 10:40:09 2013 -0400 LP1204123 SIGUSR1 causes router unregister (Perl/C) $ kill -s USR1 The listener process will unregister all router connections. This allows services to remove themselves from consideration for new inbound requests while allowing their drone processes to complete any currently running tasks. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 50 13 src/libopensrf/osrf_prefork.c 4 1 src/perl/lib/OpenSRF/Server.pm commit 8cc60399d97466c43a87df7e48e80dbc3b88c2d6 Author: Bill Erickson Date: Fri Jun 21 16:43:01 2013 -0400 LP1204123 SIGTERM causes graceful shutdown (Perl) When sent the SIGTERM signal, listener processes will wait for all child processes to complete their currently running tasks before killing all child processes and exiting. SIGQUIT and SIGINT can still be used for semi-graceful shutdowns, where the listener de-registers and cleans up child processes, but does not wait for child processes to finish their tasks. To kill with fire, SIGKILL is still your friend. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 20 4 src/perl/lib/OpenSRF/Server.pm commit c69aced833683b5256554330aa652f3dd7556d10 Author: Bill Erickson Date: Wed Jun 26 14:51:52 2013 -0400 LP1204123 Set SIGCHLD handler to DEFAULT for children (perl) Remove the special SIGCHLD handler applied to the parent/listener process from spawned child processes (drones) by setting child handler to DEFAULT. Otherwise, if an OpenSRF drone process spawns a sub-process, the drone will execute the SIGCHLD handler meant for the Listener when the sub-process dies, wherein hijinks ensue. Signed-off-by: Bill Erickson Signed-off-by: Jason Stephenson 1 1 src/perl/lib/OpenSRF/Server.pm