OpenSRF.git
7 years agoRefresh child file handles on status read
Bill Erickson [Thu, 16 Feb 2012 22:31:29 +0000 (17:31 -0500)]
Refresh child file handles on status read

If a child process dies while the parent is attempting to read status
information from the child, the pipe connecting the two will be cleaned
up.  The parent mustn't attempt to read from the dead pipe or it will
result in a bad file descriptor error, culminating in a high-cpu
infinite loop on the parent (Listener) process.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
7 years agoPython libs for OpenSRF ingress tracking
Bill Erickson [Fri, 13 Jan 2012 15:57:59 +0000 (10:57 -0500)]
Python libs for OpenSRF ingress tracking

osrf.ses.Session.ingress(ingress)

This also set the "srfsh" ingress value for srfsh.py.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoSet OpenSRF ingress value for srfsh/gateways
Bill Erickson [Fri, 13 Jan 2012 14:35:18 +0000 (09:35 -0500)]
Set OpenSRF ingress value for srfsh/gateways

Sets the "srfsh", "gateway-v1", and "translator-v1" ingress values
accordingly.

For the translater, it's necessary to stamp the unpacked messages with
the updated ingress, then re-serialize before sending the messages along.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoC libs for OpenSRF ingress tracking
Bill Erickson [Fri, 13 Jan 2012 14:15:05 +0000 (09:15 -0500)]
C libs for OpenSRF ingress tracking

osrfAppSessionSetIngress(<ingress>);

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoPerl libs for OpenSRF ingress tracking
Bill Erickson [Thu, 12 Jan 2012 21:36:16 +0000 (16:36 -0500)]
Perl libs for OpenSRF ingress tracking

Ingress is a free-form text value which represents the entry point for
the client into the opensrf network.  The value is passed within opensrf
messages, similar to "locale".  Clients should specify the ingress
before any opensrf communication occurs.

OpenSRF::AppSession->ingress($ingress);

Stock values include the following:

opensrf (default)
srfsh
translator-v1
gateway-v1

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoCopy opensrf_core.xml.example to a clean opensrf_core.xml file
Dan Scott [Wed, 29 Feb 2012 15:48:38 +0000 (10:48 -0500)]
Copy opensrf_core.xml.example to a clean opensrf_core.xml file

Ben Shum with the assist again.

Also, add ~/.srfsh.xml to the definition list of interesting OpenSRF
configuration files.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
7 years agoInclude explicit instructions to copy the opensrf config files
Dan Scott [Wed, 29 Feb 2012 15:42:58 +0000 (10:42 -0500)]
Include explicit instructions to copy the opensrf config files

Also noted by the sharp-eyed Ben Shum, we didn't tell people to actually
copy opensrf.xml.example / opensrf_core.xml.example, which could lead to
failure.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
7 years agoUpdate max_user_sessions suggestion to 10000 to match wiki
Dan Scott [Wed, 29 Feb 2012 15:27:36 +0000 (10:27 -0500)]
Update max_user_sessions suggestion to 10000 to match wiki

Ben Shum noticed that the README still specified 1000 for
max_user_sessions in the ejabberd.cfg file, whereas current larger
OpenSRF systems with many services may blow past that limit. Update to
match the current wiki specification of 10000.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
7 years agoRemove reference to Fedora specific version in prereq installer
Dan Scott [Wed, 4 Jan 2012 20:21:36 +0000 (15:21 -0500)]
Remove reference to Fedora specific version in prereq installer

Fedora changes every 6 months, so it's probably silly to have a make
target of "fedora14" when that is no longer supported by the Fedora
project itself. As Fedora has packaged all of the OpenSRF dependencies
(thanks, Ben Webb!), in theory it should be supported by the latest
releases of Fedora in the future... as long as we don't introduce any
dependencies on deprecated versions of packages.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
7 years agoUpdate README to match Evergreen's format
Dan Scott [Wed, 4 Jan 2012 20:17:48 +0000 (15:17 -0500)]
Update README to match Evergreen's format

Reference the various accounts in use consistently.

Correct reference to "fedora" target in Makefile.install.

Put the developer preamble up front.

Provide more Fedora examples.

Do not include leading "#" and "$" in bash examples, to make it easier
for people to copy and paste.

Include source highlighting instructions and titles for example
commands.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
7 years agoJava dependencies update
Bill Erickson [Fri, 24 Feb 2012 21:28:27 +0000 (16:28 -0500)]
Java dependencies update

As of Java 6, XML Stax parsing is natively supported.  This change
removes the external Stax dependencies and updates how the JSON libs are
fetched (in deps.sh), which now come from github.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
7 years agoWe're not in Subversion anymore, Dorothy
Dan Scott [Tue, 21 Feb 2012 14:55:57 +0000 (09:55 -0500)]
We're not in Subversion anymore, Dorothy

We're in git now, make the README reflect that accordingly. Thanks to
Warren Layton for the tip!

Signed-off-by: Dan Scott <dscott@laurentian.ca>
7 years agoPerl parent/child write improvements
Bill Erickson [Tue, 14 Feb 2012 14:10:58 +0000 (09:10 -0500)]
Perl parent/child write improvements

* Updated variable names for clarity
* Added more inline comments
* Added additional error logging
* For severe read errors, allow the child to gracefully skip the request

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoPerl pipe reading overhaul : data size header
Bill Erickson [Mon, 13 Feb 2012 21:53:59 +0000 (16:53 -0500)]
Perl pipe reading overhaul : data size header

The lockfile mechanism for preventing premature end of reads on child
processes suffers from one serious flaw:  if the data to write exceeds
the pipe buffer size, the parent will block on syswrite and the service
will lock up.  It's also not as effecient (for the normal case) as the
code was without the lockfile, becasue the writes and reads are
serialized.

This commit replaces the lockfile mechanism with a protocol header in
the data.  The first X (currently 12) bytes of data written to the child
process will contain the full length of the data to be written (minus
the header size).  The child now reads the data in parallel with the parent as
data is available.  If the child reads all available data (in the pipe)
but not all of the expected data, the child will go back into a select()
wait pending more data from the parent.  The process continues until all
data is read.

This same mechanism is already used to commicate status info from child
processes to the parent.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
7 years agoJSON_v0 has been superseded, and it has insidious bugs anyway.
Lebbeous Fogle-Weekley [Fri, 27 Jan 2012 14:05:07 +0000 (09:05 -0500)]
JSON_v0 has been superseded, and it has insidious bugs anyway.

For example, you cannot round-trip this through JSON2js() and js2JSON()
in IE8: http://paste.lisp.org/display/127338

This will make Evergreen's build fail until the change specified in
LP #922609 is applied.

Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Signed-off-by: Bill Erickson <berick@esilibrary.com>
7 years agoSync parent/child write/read with lock file
Bill Erickson [Mon, 7 Nov 2011 22:30:44 +0000 (17:30 -0500)]
Sync parent/child write/read with lock file

Wrap parent writes to child socket and initial child reads of the
socket in file lock (via flock()) to prevent rare race condition
where child process reads to the end of the data before the parent
has written all bytes.

This create a new lock file on the system, which resides in the same
directory as the pid files.  The lock file is created and destroyed by
the opensrf perl mods at service start up and shutdown.

See also https://bugs.launchpad.net/opensrf/+bug/883155

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
8 years agoUpdate Perl OpenSRF build and tests for O:A:Validator
Dan Scott [Mon, 12 Dec 2011 18:09:13 +0000 (13:09 -0500)]
Update Perl OpenSRF build and tests for O:A:Validator

Kickstarted by wanting to bring OpenSRF::Application::Validator into the
MANIFEST and testing coverage, I noticed a few other files that needed
to be added to the MANIFEST as well. This gets us closer to acceptable
according to "./Build distcheck"

Signed-off-by: Dan Scott <dscott@laurentian.ca>
8 years agoOpenSRF Validator Service
Thomas Berezansky [Fri, 9 Dec 2011 20:19:12 +0000 (15:19 -0500)]
OpenSRF Validator Service

Add a new Validator service, and EmailAddress validators.

The service runs a chain of one or more validators, each one being fed the
normalized output of the previous one.

The return from each validator should be a hash of valid (0 or 1), the new
normalized output (the untouched input if invalid or nothing needed to be
changed), and if invalid an error string. Optionally, a validator can also
include an "additionals" hash of extra information to be included in the
final response.

The complete list of validators included is:

OpenSRF::Application::Validator::Base
    The base validator. Always returns valid.
OpenSRF::Application::Validator::Invalid
    Always returns invalid for testing purposes.
OpenSRF::Application::Validator::EmailAddress::Regex
    Does a very basic regular expression check on email addresses.
OpenSRF::Application::Validator::EmailAddress::DNS
    Uses Net::DNS to look up the domain on an email address

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
8 years agoSupport installation for Ubuntu 12.04 Precise Pangolin.
Jason Stephenson [Wed, 7 Dec 2011 20:08:42 +0000 (15:08 -0500)]
Support installation for Ubuntu 12.04 Precise Pangolin.

Update the README to include Precise Pangolin as a supported release.

Update src/extras/Makefile.install to install two new debs required on
Ubuntu 12.04 alpha1.

Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
8 years agoAdd explicit chown command to README
Dan Scott [Fri, 4 Nov 2011 13:42:50 +0000 (09:42 -0400)]
Add explicit chown command to README

Warren Layton noticed that there was no explicit command to change the
ownership of the files in the /<PREFIX> directory to be owned by
"opensrf", although there was a statement that the files needed to be
owned by "opensrf". To reduce the chance of failure, add the explicit
command.

TODO (for a willing volunteer): teach the installer to change the
ownership at the time the files are installed!

Signed-off-by: Dan Scott <dscott@laurentian.ca>
8 years agoAdd SIGPIPE retry handling to child data sysread
Bill Erickson [Fri, 28 Oct 2011 15:33:24 +0000 (11:33 -0400)]
Add SIGPIPE retry handling to child data sysread

Similar to the SIGPIPE retry logic wrapped around the parent process'
syswrite call (for sending data to a child process), protect the child's
sysread call (as it reads data from the parent).  In pre-2.0, the
sysread step was handled by Net::Server, but now we need to protect it
ourselves.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
8 years agoLP878284: stop_osrf action should stop, not start, Perl
Dan Scott [Wed, 19 Oct 2011 15:39:41 +0000 (11:39 -0400)]
LP878284: stop_osrf action should stop, not start, Perl

As reported by Vicent Mas <uvemas@gmail.com> to the Evergreen
developer's mailing list:

"""
It seems I've found a small bug in the
/openils/bin/osrf_ctl.sh script. The line for the osrf_stop action is:

"stop_osrf") stop_python; stop_c; start_perl;;

but should be:

"stop_osrf") stop_python; stop_c; stop_perl;;
"""

Signed-off-by: Dan Scott <dscott@laurentian.ca>
8 years agoWarn when sending very large messages
Bill Erickson [Tue, 18 Oct 2011 13:17:10 +0000 (09:17 -0400)]
Warn when sending very large messages

Depending on configuration, messages of a certain size sent through a
Jabber server will cause the jabber server to disconnect the client.
This change allows admins to configure a message size warning threshold.
When a message meets or exceeds the size threshold, a warning is issued
to the logs with the message size (in bytes) and the message recipient.
It does not prevent the message from being delivered.  It's purely
informational.

Use 1 800 000 as the default threhold.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
8 years agoFix README typo: 'mod_offlinex'
Dan Scott [Sat, 10 Sep 2011 16:22:08 +0000 (12:22 -0400)]
Fix README typo: 'mod_offlinex'

mod_offline is not that x-treme.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
8 years agoDon't define a variable inside a conditional block
Dan Scott [Thu, 25 Aug 2011 15:41:19 +0000 (11:41 -0400)]
Don't define a variable inside a conditional block

./configure --disable-core --enable-javascript was dying with an error
due to CHECK_TESTS not being defined; move it outside the conditional
block so that we can ensure that it is defined as either yes or no.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
8 years agoMake distro targets in README match Makefile.install
Dan Scott [Mon, 22 Aug 2011 13:49:45 +0000 (09:49 -0400)]
Make distro targets in README match Makefile.install

Swap ubuntu-karmic for ubuntu-lucid and pull fedora14 as it is really
close to end of life.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
8 years agoAdd a 0 to max_stanza_size in README instructions
Dan Scott [Fri, 19 Aug 2011 13:45:16 +0000 (09:45 -0400)]
Add a 0 to max_stanza_size in README instructions

Yes, that should be 2000000, not 200000 for max_stanza_size. Symptoms
included "Text of error message received from Jabber: XML stanza is too
big" in error logs and crashing OpenSRF processes.

For reference,
http://list.georgialibraries.org/pipermail/open-ils-dev/2011-August/007494.html

Signed-off-by: Dan Scott <dscott@laurentian.ca>
8 years agoLP 799718: Pass the DESTDIR variable to setup.py
Ben Webb [Mon, 25 Jul 2011 20:40:40 +0000 (21:40 +0100)]
LP 799718: Pass the DESTDIR variable to setup.py

This allows python modules to be built when creating packages.

Per comment from Dan Scott on the LP bug:

http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap03.html#tag_03_266
says "Multiple successive slashes are considered to be the same as one
slash." so in theory "--root=$(DESTDIR)/" should be just as safe as
"--root=$(DESTDIR)///", but why not go the distance and use 3 slashes to
avoid any possibility of some oddball POSIX implementation that treats 2
slashes differently for some reason?

Signed-off-by: Ben Webb <bjwebb67@googlemail.com>
Signed-off-by: Dan Scott <dscott@laurentian.ca>
8 years agoChange "Scheduler" to "SingleBranchScheduler" per 0.8.4
Dan Scott [Wed, 6 Jul 2011 14:49:04 +0000 (10:49 -0400)]
Change "Scheduler" to "SingleBranchScheduler" per 0.8.4

In buildbot 0.8.4, the Scheduler becomes a SingleBranchScheduler to make
way for other kinds of Schedulers: see
http://buildbot.net/buildbot/docs/current/SingleBranchScheduler.html

Signed-off-by: Dan Scott <dscott@laurentian.ca>
8 years agoRespect DESTDIR during the build process
Ben Webb [Mon, 13 Jun 2011 12:29:36 +0000 (13:29 +0100)]
Respect DESTDIR during the build process

Replace instances of make with the generic $(MAKE)
Add $(DESTDIR) to paths it is currently missing from
Manually specify the apxs2 install location so that DESTDIR can be prepended
Attempt to create the apache directory if it does not exist

Signed-off-by: Ben Webb <bjwebb67@googlemail.com>
Signed-off-by: Dan Scott <dan@coffeecode.net>
8 years agoMove the buildbot workdirs to a non-volatile directory
Dan Scott [Wed, 25 May 2011 04:02:33 +0000 (00:02 -0400)]
Move the buildbot workdirs to a non-volatile directory

/tmp/ is a good directory for throwing temporary things,
but not so good for things you want to keep around for a relatively
long time. Especially on Ubuntu, which has a default policy of
deleting files in /tmp/ on reboot - meaning that the git repos
that form the basis of the repository have all of their files
wiped - greatly confusing the buildbot, which tries to run
'git reset --head' in an empty directory and fails miserably
in that situation.

So - ensure that WORKDIR is set to something that exists and
which will exist for the duration of your CI server, and you'll
be all right.

Signed-off-by: Dan Scott <dan@coffeecode.net>
8 years agoTurn on email and IRC notification about build breaks
Dan Scott [Wed, 18 May 2011 18:38:19 +0000 (14:38 -0400)]
Turn on email and IRC notification about build breaks

Buildbot can notify us when a build breaks via email and IRC.

Now that everything is green on testing.evergreen-ils.org, let's
turn that capability on. As configured, we should only be notified
when a build goes from success to failure, the first time; and
then again, when a build goes from failure to success.

Email notification should go to "interested users" - all of the
email addresses in the collected signed-off-by / author tags in
the commits for a given build.

Signed-off-by: Dan Scott <dan@coffeecode.net>
8 years agoTeach Perl Makefile to build Build for every target
Dan Scott [Wed, 18 May 2011 14:23:18 +0000 (10:23 -0400)]
Teach Perl Makefile to build Build for every target

With the previous Perl Makefile.am, running "make check" before
running "make all" would fail on the Perl directory because it
assumed that Build would have been created from Build.PL. Factoring out
the build of Build from Build.PL and making that a prereq of the
pertinent targets avoids that problem on a clean checkout of the
OpenSRF source.

Signed-off-by: Dan Scott <dan@coffeecode.net>
8 years agoSpecify explicit branches for each builder, lazy-style
Dan Scott [Mon, 16 May 2011 22:11:59 +0000 (18:11 -0400)]
Specify explicit branches for each builder, lazy-style

SVNPoller was able to rely on change filters to look at every
commit to the repository and hand them off to the scheduler
accordingly; GitPoller, however, looks at one branch per
poller, so we need to instantiate one poller per branch of
interest. This gives us an opportunity to refactor our approach
to be more programmatic.

Signed-off-by: Dan Scott <dan@coffeecode.net>
8 years agoComment on why we're pulling in version.m4
Dan Scott [Mon, 16 May 2011 20:01:37 +0000 (16:01 -0400)]
Comment on why we're pulling in version.m4

Commenting code is helpful, I've been told that it is the best
way to reduce bugs in a project. To that end, make the connection
between VERSION_NUMBER and PACKAGE_VERSION in configure.ac

Signed-off-by: Dan Scott <dscott@laurentian.ca>
8 years agoDefine version number in one place
Dan Scott [Mon, 16 May 2011 19:08:04 +0000 (15:08 -0400)]
Define version number in one place

Adding the version.m4 macro defines VERSION_NUMBER for us in
one place so that we can simplify package releases (and fix
'osrf_config --version' output so that it does not always
tell us 'trunk').

Signed-off-by: Dan Scott <dscott@laurentian.ca>
8 years agoTypo fix: deprecasted -> deprecated
Dan Scott [Mon, 16 May 2011 18:52:40 +0000 (14:52 -0400)]
Typo fix: deprecasted -> deprecated

It's an annoying typo, and it helps test out the buildbot
configuration...

Signed-off-by: Dan Scott <dscott@laurentian.ca>
8 years agoRemove 'branches' reference in Buildbot branches test
Dan Scott [Sun, 15 May 2011 21:38:46 +0000 (17:38 -0400)]
Remove 'branches' reference in Buildbot branches test

We can just check for the branch directly now that we are
in git. Some things really are simpler with git!

Signed-off-by: Dan Scott <dan@coffeecode.net>
8 years agoAdd a workdir for each GitPoller source repository
Dan Scott [Sun, 15 May 2011 20:23:32 +0000 (16:23 -0400)]
Add a workdir for each GitPoller source repository

Not 100% sure, but with two GitPollers using the same working
directory, I suspect that there was a conflict between the
underlying repos as to which commit was the newest. Give
each of them an explicit working directory in the attempt
to avoid this.

Signed-off-by: Dan Scott <dan@coffeecode.net>
8 years agoTeach Buildbot to poll the new git repos
Dan Scott [Sun, 15 May 2011 19:25:33 +0000 (15:25 -0400)]
Teach Buildbot to poll the new git repos

We're now using GitPoller to check for commits to the branches
of interest in Evergreen and OpenSRF on the default interval
of 10 minutes.

Also, some syntax cleanups following the last refactoring.

Signed-off-by: Dan Scott <dan@coffeecode.net>
8 years agoInline TestObject for net_obj_test.py as well
dbs [Mon, 9 May 2011 17:10:19 +0000 (17:10 +0000)]
Inline TestObject for net_obj_test.py as well

Signed-off-by: Dan Scott <dan@coffeecode.net>
git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2246 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoFix unit tests for Python in a twistd instance
dbs [Mon, 9 May 2011 13:53:30 +0000 (13:53 +0000)]
Fix unit tests for Python in a twistd instance

twistd could not find testobj; just inline it.

Signed-off-by: Dan Scott <dan@coffeecode.net>
git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2245 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoAdd Python unit testing and coverage report to "make check"
dbs [Mon, 9 May 2011 05:19:51 +0000 (05:19 +0000)]
Add Python unit testing and coverage report to "make check"

If --enable-python is included in the arguments to configure, "make check"
runs all Python unit tests using nosetests and generates a testing coverage
report for all Python code.

The original json_test.py is factored out to provide a separate file for
testing osrf.net_obj vs. osrf.json vs. osrf.*, when we eventually get there.

Signed-off-by: Dan Scott <dan@coffeecode.net>
git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2244 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoAdd Check dependencies for Fedora
dbs [Sun, 8 May 2011 15:37:10 +0000 (15:37 +0000)]
Add Check dependencies for Fedora

Required to run "make check" for the C unit tests
previously added by Kevin Beswick.

Signed-off-by: Dan Scott <dan@coffeecode.net>
git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2238 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoAdd a C unit testing framework and tests for OpenSRF
dbs [Sun, 8 May 2011 15:35:28 +0000 (15:35 +0000)]
Add a C unit testing framework and tests for OpenSRF

The unit testing framework is "Check" - http://check.sourceforge.net/

These tests can be executed by running 'make check' after you
configure and compile the OpenSRF code.

To run them, you must have the 'check' package installed.

Author: Kevin Beswick <kevinbeswick00@gmail.com>
Signed-off-by: Dan Scott <dan@coffeecode.net>
Signed-off-by: Kevin Beswick <kevinbeswick00@gmail.com>
git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2237 9efc2488-bf62-4759-914b-345cdb29e865

8 years agomove jabber_state_machine_struct into header to keep 'make check' happy
erickson [Sat, 30 Apr 2011 22:40:54 +0000 (22:40 +0000)]
move jabber_state_machine_struct into header to keep 'make check' happy

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2236 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoPatch from Kevin Beswick to support set operations on certain opensrf message fields...
erickson [Thu, 28 Apr 2011 16:20:47 +0000 (16:20 +0000)]
Patch from Kevin Beswick to support set operations on certain opensrf message fields.  note, this does not currently affect behavior, since values for messages are initially set from parsing JSON without using the access/mutators for setting values.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2234 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoSidestep JSON object ordering in unit tests
dbs [Mon, 25 Apr 2011 04:12:41 +0000 (04:12 +0000)]
Sidestep JSON object ordering in unit tests

Depending on the JS engine and version of Dojo, the order
of attributes in JSON objects may change (as is explicitly
allowed by the JSON spec). To avoid false test failures,
only use one attribute in the object.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2232 9efc2488-bf62-4759-914b-345cdb29e865

8 years agochange proc managament debug message from Info to Debug
erickson [Thu, 21 Apr 2011 20:04:42 +0000 (20:04 +0000)]
change proc managament debug message from Info to Debug

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2230 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoadditional settings in sample rsyslog config: disable EscapeControlCharactersOnReceive
erickson [Tue, 12 Apr 2011 13:35:36 +0000 (13:35 +0000)]
additional settings in sample rsyslog config: disable EscapeControlCharactersOnReceive

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2228 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoHandle the common NXDOMAIN problem with Python a bit more gracefully
dbs [Wed, 30 Mar 2011 04:31:28 +0000 (04:31 +0000)]
Handle the common NXDOMAIN problem with Python a bit more gracefully

Rather than dumping a nasty full stacktrace to the command line, we
print a hopefully helpful pointer to the actual problem in plain
English.

Also, rather than stopping everything if a "stop_all" command was
issued, skip the error status in osrf_ctl.sh for the Python bit
and carry on shutting down the other services. A bit more convenient
if you want to have Python enabled but don't necessarily need it
running.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2226 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoMake javascript unit tests more granular to ease tracking down errors
dbs [Tue, 29 Mar 2011 13:55:09 +0000 (13:55 +0000)]
Make javascript unit tests more granular to ease tracking down errors

Noticed a failure when running with Rhino 1.7RC2 that wasn't happening
with version of Rhino packaged in shrinksafe.jar, and it was a bit
tedious narrowing down which test was actually failing. Breaking up
the tests into smaller sets will make this process easier and might invite
the submission of other tests to target areas that are not yet covered.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2222 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoGive Python services introspection methods matching C and Perl
dbs [Tue, 29 Mar 2011 02:59:51 +0000 (02:59 +0000)]
Give Python services introspection methods matching C and Perl

Perl and C services offer "opensrf.system.method" and
"opensrf.system.method.all" methods for accessing service
information. Renaming Python's methods to match at least
enables srfsh to access this information, even if it does
still need to be taught to provide that information in a
consistent manner.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2220 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoA few more tests for JSON_v1.js
dbs [Tue, 29 Mar 2011 02:09:16 +0000 (02:09 +0000)]
A few more tests for JSON_v1.js

We're not really touching the interesting parts of encodeJS/decodeJS
yet, but at least we get to open the door a crack.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2219 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoGet more DRY; generate builders from a small list of branches and distros
dbs [Mon, 28 Mar 2011 18:51:53 +0000 (18:51 +0000)]
Get more DRY; generate builders from a small list of branches and distros

Should adopt this approach with schedulers too, but one step at a time.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2218 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoAdd DOH-based unit test harness for OpenSRF JavaScript
dbs [Mon, 28 Mar 2011 15:22:54 +0000 (15:22 +0000)]
Add DOH-based unit test harness for OpenSRF JavaScript

The Dojo Objective Harness enables us to run unit tests from the command
line or within a browser. Running tests from a command line makes it easier
to fold into the continuous integration server. Included in this commit
is a small README for setting up command-line testing and a sample set
of unit tests that exercise parts of JSON_v1.js.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2217 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoImproved PID file handling in osrf_ctl.sh
dbs [Sun, 27 Mar 2011 21:36:25 +0000 (21:36 +0000)]
Improved PID file handling in osrf_ctl.sh

Joseph Lewis <joehms22@gmail.com> submitted a patch to address
https://bugs.launchpad.net/evergreen/+bug/741088 ("osrf_ctl.sh Doesn't check if
process is actually running")

As of this patch, when start_perl, start_c, or start_python are started and
existing PID files are found for those processes, instead of assuming that the
processes are actually running, osrf-ctl.sh now has the intelligence to check
the process list to see if there is a matching process. If no running process
is found, then the old PID file is removed and the start command is issued.

Two additional actions have been added, "smart_clear" and "clear_pid".

"smart_clear" checks the PID files against the running processes and removes
PID files where no running process is found. This is effectively invoked
under the covers when start_* is invoked and a PID file is found.

"clear_pid" deletes all PID files without checking to see if there are any
running processes. In most cases, it should only be invoked as part of an
automated boot sequence.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

Signed-off-by: Joseph Lewis <joehms22@gmail.com>
git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2215 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoRun OpenSRF JavaScript through jslint for a light cleanup
dbs [Sun, 13 Mar 2011 06:03:46 +0000 (06:03 +0000)]
Run OpenSRF JavaScript through jslint for a light cleanup

Mostly just semicolons, and shifting a bit of code around to reduce
usage of functions/classes before they've been defined. Staying away
from the === / !== operators for null/undefined/0/''/true/false for
now.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2209 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoForward-port AsciiDoc-ized README from 2.0.0-rc2
dbs [Fri, 11 Mar 2011 13:15:57 +0000 (13:15 +0000)]
Forward-port AsciiDoc-ized README from 2.0.0-rc2

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2208 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoDefine the builders and give them a slot for username/password
dbs [Fri, 4 Mar 2011 01:32:39 +0000 (01:32 +0000)]
Define the builders and give them a slot for username/password

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2200 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoAdd GPLS' buildslaves to the mix (YAY)
dbs [Fri, 4 Mar 2011 01:11:27 +0000 (01:11 +0000)]
Add GPLS' buildslaves to the mix (YAY)

32-bit Ubuntu 8.04 and 10.04 slaves for the Evergreen tests.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2199 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoNo mas. dir existence checks were checking buildmaster, not slave
dbs [Wed, 2 Mar 2011 21:56:14 +0000 (21:56 +0000)]
No mas. dir existence checks were checking buildmaster, not slave

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2198 9efc2488-bf62-4759-914b-345cdb29e865

8 years agobug fix with srfsh.py introspection; better handling/reporting of service exceptions
erickson [Wed, 2 Mar 2011 18:38:09 +0000 (18:38 +0000)]
bug fix with srfsh.py introspection; better handling/reporting of service exceptions

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2196 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoconsistent w/ sigpipe handling in osrf 1.6, provide a warning and retry mechanism...
erickson [Wed, 2 Mar 2011 15:04:00 +0000 (15:04 +0000)]
consistent w/ sigpipe handling in osrf 1.6, provide a warning and retry mechanism for syswrites that fail as a result of sigpipe

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2194 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoFix reversed logic in test for Perl tests. Oh the irony.
dbs [Wed, 2 Mar 2011 14:24:33 +0000 (14:24 +0000)]
Fix reversed logic in test for Perl tests. Oh the irony.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2193 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoRather than specific branches, test for the existence of the directory
dbs [Wed, 2 Mar 2011 14:12:16 +0000 (14:12 +0000)]
Rather than specific branches, test for the existence of the directory

Yes, more buildbot noise. Maybe the poor buildbot needs its own repository
until things settle down. heh

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2192 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoThe syntax fix, it is wafer-thin; just one more!
dbs [Wed, 2 Mar 2011 05:21:58 +0000 (05:21 +0000)]
The syntax fix, it is wafer-thin; just one more!

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2191 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoSyntax, baby, syntax (for the buildbot)
dbs [Wed, 2 Mar 2011 05:14:58 +0000 (05:14 +0000)]
Syntax, baby, syntax (for the buildbot)

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2190 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoAvoid running Perl unit tests when our branches have them not
dbs [Wed, 2 Mar 2011 05:10:21 +0000 (05:10 +0000)]
Avoid running Perl unit tests when our branches have them not

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2189 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoCoerce the weird test env for MFHD into working inside buildbot
dbs [Wed, 2 Mar 2011 03:51:42 +0000 (03:51 +0000)]
Coerce the weird test env for MFHD into working inside buildbot

'use testlib.pm' throws the standard "prove --lib lib -r t" recipe for testing
Perl packages out the window, so we have to override the Perl testing class
and point to the known location of testlib.pm

This may still fail for Evergreen branches prior to rel_2_1, but it's
_something_. Throw me a bone, here, will ya?

Ultimately, the best thing to do is probably to make MFHD tests conform.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2188 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoDistinguish between the projects being built (duh)
dbs [Tue, 1 Mar 2011 23:06:32 +0000 (23:06 +0000)]
Distinguish between the projects being built (duh)

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2187 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoRecommend Fedora 14 as F13 goes out of support in a few months
dbs [Mon, 28 Feb 2011 04:05:40 +0000 (04:05 +0000)]
Recommend Fedora 14 as F13 goes out of support in a few months

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2182 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoResolve encoding problem found by attempting to register patrons with Unicode names
dbs [Tue, 22 Feb 2011 14:28:19 +0000 (14:28 +0000)]
Resolve encoding problem found by attempting to register patrons with Unicode names

Symptoms were:

1. a gateway.log entry showing http_translator receiving an XMPP error message
2. a corresponding osrfsys.log entry "server: died with error Wide character in syswrite at /usr/local/share/perl5/OpenSRF/Server.pm line 239"

Per normal Perl Unicode handling practices, decoding input and encoding output
using the Encode module and decode_utf8() / encode_utf8() appears to resolve
the problem.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2168 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoadded sample rsyslog opensrf configuration file
erickson [Mon, 14 Feb 2011 13:54:50 +0000 (13:54 +0000)]
added sample rsyslog opensrf configuration file

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2167 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoAdd Evergreen to the buildbot configuration
dbs [Mon, 14 Feb 2011 06:21:36 +0000 (06:21 +0000)]
Add Evergreen to the buildbot configuration

Now all that we need are Evergreen buildslaves!

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2166 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoWhitespace consistency (tabs for Makefiles I guess)
dbs [Mon, 31 Jan 2011 05:56:39 +0000 (05:56 +0000)]
Whitespace consistency (tabs for Makefiles I guess)

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2164 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoUse an Exporter-approved version number (only one decimal place)
dbs [Mon, 31 Jan 2011 05:49:10 +0000 (05:49 +0000)]
Use an Exporter-approved version number (only one decimal place)

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2162 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoCreate a function for explicit trunk changes (shouldn't be necessary, but...)
dbs [Mon, 31 Jan 2011 05:39:24 +0000 (05:39 +0000)]
Create a function for explicit trunk changes (shouldn't be necessary, but...)

Also untabify (augh) the file. Oh the whitespace!

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2161 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoTo specify trunk in the ChangeFilter, use branch=None
dbs [Mon, 31 Jan 2011 04:36:13 +0000 (04:36 +0000)]
To specify trunk in the ChangeFilter, use branch=None

At least, that's how I'm reading the buildbot docs at this time of night:
http://buildbot.net/buildbot/docs/current/Change-Filters.html

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2159 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoWe're not just OpenSRF trunk, we've got other branches
dbs [Mon, 31 Jan 2011 04:22:23 +0000 (04:22 +0000)]
We're not just OpenSRF trunk, we've got other branches

Also, drop %%BRANCH%% from the SVN baseURL and give it a default
branch.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2158 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoCorrect copy/paste error in Build.PL metadata
dbs [Mon, 31 Jan 2011 02:28:51 +0000 (02:28 +0000)]
Correct copy/paste error in Build.PL metadata

OpenSRF uses GPL v2 or later, not the Perl license.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2157 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoAdd OpenSRF rel_1_6 and rel_2_0 builds to the OpenSRF build slave
dbs [Fri, 28 Jan 2011 16:15:11 +0000 (16:15 +0000)]
Add OpenSRF rel_1_6 and rel_2_0 builds to the OpenSRF build slave

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2155 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoTry sending failure notification to the -dev list
dbs [Thu, 27 Jan 2011 05:19:06 +0000 (05:19 +0000)]
Try sending failure notification to the -dev list

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2154 9efc2488-bf62-4759-914b-345cdb29e865

8 years agobuildbot configuration: add mail notification, explicit builder name
dbs [Thu, 27 Jan 2011 04:12:37 +0000 (04:12 +0000)]
buildbot configuration: add mail notification, explicit builder name

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2153 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoCheck in a sample buildbot configuration file for OpenSRF
dbs [Wed, 26 Jan 2011 19:55:29 +0000 (19:55 +0000)]
Check in a sample buildbot configuration file for OpenSRF

Change XXX to meaningful values before deploying :)

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2152 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoOpenSRF::UnixServer doesn't live here any more
dbs [Wed, 26 Jan 2011 17:51:26 +0000 (17:51 +0000)]
OpenSRF::UnixServer doesn't live here any more

This test was still succeeding on hosts that had installed
previous versions of OpenSRF, but failed on a shiny new
test instance.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2151 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoSet the correct number of expected tests so that we don't fail 100% of the time
dbs [Wed, 26 Jan 2011 03:31:47 +0000 (03:31 +0000)]
Set the correct number of expected tests so that we don't fail 100% of the time

I guess we haven't run "make test" here since r2024 - heh.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2149 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoTrivial typo fix (also tests OpenSRF buildbot)
dbs [Tue, 25 Jan 2011 18:15:22 +0000 (18:15 +0000)]
Trivial typo fix (also tests OpenSRF buildbot)

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2148 9efc2488-bf62-4759-914b-345cdb29e865

8 years agorepaired call to handle_request for router query; cannot survive without the self.
erickson [Fri, 21 Jan 2011 15:00:46 +0000 (15:00 +0000)]
repaired call to handle_request for router query; cannot survive without the self.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2145 9efc2488-bf62-4759-914b-345cdb29e865

8 years agomake the api CALL log line consistent across Perl and C and make it something that...
erickson [Fri, 21 Jan 2011 14:58:35 +0000 (14:58 +0000)]
make the api CALL log line consistent across Perl and C and make it something that can be pasted directly into srfsh

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2144 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoGet that brace back in the right place
dbs [Tue, 11 Jan 2011 23:05:27 +0000 (23:05 +0000)]
Get that brace back in the right place

Unbreak the build. Argh.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2143 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoAdd hints to increase max_children config variable if we're hitting the maximum
dbs [Tue, 11 Jan 2011 23:00:35 +0000 (23:00 +0000)]
Add hints to increase max_children config variable if we're hitting the maximum

Already added this hint to the Python implementation, now propagating to
C and Perl.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2142 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoClean up Python server implementation, guided by pylint
dbs [Tue, 11 Jan 2011 22:59:18 +0000 (22:59 +0000)]
Clean up Python server implementation, guided by pylint

Add some docstrings, keep line lengths at 80 or less (MORE
WHITESPACE!), remove some dead code, and add a hint to check
max_children config value if we're bumping up against the
limit.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2141 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoRemove max_requests config stanza from C language implementations in example config
dbs [Tue, 11 Jan 2011 21:33:09 +0000 (21:33 +0000)]
Remove max_requests config stanza from C language implementations in example config

Only Perl implementations support the max_requests stanza, so let's not confuse
matters with an unused element.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2140 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoStraighten out -f / -d flag confusion in libmemcached prerequisite
dbs [Mon, 20 Dec 2010 02:55:24 +0000 (02:55 +0000)]
Straighten out -f / -d flag confusion in libmemcached prerequisite

There are two different styles of checking for previously downloaded
tarballs in this Makefile; the libmemcached entry combined them both
with unfortunate results.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2138 9efc2488-bf62-4759-914b-345cdb29e865

8 years agorepaired bug in total request time calc, particularly when a request returns no response
erickson [Mon, 20 Dec 2010 02:54:32 +0000 (02:54 +0000)]
repaired bug in total request time calc, particularly when a request returns no response

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2136 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoPython srfsh enhancements
erickson [Mon, 20 Dec 2010 01:20:48 +0000 (01:20 +0000)]
Python srfsh enhancements

* Srfsh plugins can now insert new commands and add words to the tab
completion word bank.
* Addded support reading script files
* Added support for service open/close (connect/disconnect) for stateful
connections
* Moved to class-based srfsh module for easier state maintenance
* More doc strings

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2133 9efc2488-bf62-4759-914b-345cdb29e865

8 years agoRemove extraneous line for dnsmasq / Python
dbs [Thu, 16 Dec 2010 21:02:41 +0000 (21:02 +0000)]
Remove extraneous line for dnsmasq / Python

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2130 9efc2488-bf62-4759-914b-345cdb29e865

9 years agoon second thought, removing debug sleep method, which is (more than most) a DOS waiti...
erickson [Mon, 13 Dec 2010 14:57:44 +0000 (14:57 +0000)]
on second thought, removing debug sleep method, which is (more than most) a DOS waiting to happen.

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2126 9efc2488-bf62-4759-914b-345cdb29e865

9 years agoimproved select/read/write fault tolerance; cleaner and more efficient child process...
erickson [Mon, 13 Dec 2010 14:53:47 +0000 (14:53 +0000)]
improved select/read/write fault tolerance; cleaner and more efficient child process idle/active list management; improved logging

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@2124 9efc2488-bf62-4759-914b-345cdb29e865