Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Builder osrf-master-fedora-18 Build #44


Build successful


Got Revision55807240854d0d532a5f70f1f483ed8086eb9d95
Changes1 change





Steps and Logfiles:

  1. git update ( 8 secs )
    1. stdio
  2. Bootstrap via autogen './autogen.sh' skipped ( 0 secs )
    1. - no logs -
  3. Bootstrap via autoreconf 'autoreconf -i' ( 6 secs )
    1. stdio
  4. configure configure ( 6 secs )
    1. stdio
  5. compile compile warnings ( 24 secs )
    1. stdio
    2. warnings (6)
  6. test test 129 tests 129 passed ( 5 secs )
    1. stdio
  7. trial 14 tests passed ( 3 secs )
    1. stdio
    2. test.log
    3. problems
  8. pylint pylint failed ( 8 secs )
    1. stdio

Build Properties:

branch master Build
buildername osrf-master-fedora-18 Builder
buildnumber 44 Build
codebase Build
got_revision 55807240854d0d532a5f70f1f483ed8086eb9d95 Git
project OpenSRF Build
pylint-convention 0 Unknown
pylint-error 0 Unknown
pylint-fatal 0 Unknown
pylint-info 0 Unknown
pylint-refactor 0 Unknown
pylint-total 0 Unknown
pylint-warning 0 Unknown
repository git://git.evergreen-ils.org/OpenSRF.git Build
revision 55807240854d0d532a5f70f1f483ed8086eb9d95 Build
scheduler osrf-master-full Scheduler
slavename opensrf-fed18 BuildSlave
warnings-count 6 WarningCountingShellCommand
workdir /home/openslave/opensrf-slave/osrf-master-fedora-18 slave

Forced Build Properties:


Responsible Users:

  1. Mike Rylander


StartThu Feb 4 11:34:16 2016
EndThu Feb 4 11:35:20 2016
Elapsed1 mins, 3 secs

All Changes:


  1. Change #2925

    Category None
    Changed by Mike Rylander <mrylanderohnoyoudont@gmail.com>
    Changed at Thu 04 Feb 2016 11:22:59
    Repository git://git.evergreen-ils.org/OpenSRF.git
    Project OpenSRF
    Branch master
    Revision 55807240854d0d532a5f70f1f483ed8086eb9d95


    LP#1494486: Limit damage caused by dropped drone XMPP sockets
    It is apparently possible for drones to get into a state where their XMPP
    socket is closed but they don't notice. This is bad because the drone can
    continue to receive requests from its listener but can no longer respond
    to them. To limit the pain this can cause, we should kill the drone as soon
    as we notice this condition.
    To avoid overhead, this commit notices when the socket returns an error (or
    raises a signal, in Perl) upon write, and exits immediately.  One message
    will be lost, but the drone will no longer be a black hole that does nothing
    but absorb requests it can never fill.
    To test
    [1] Start an OpenSRF stack and look for a drone process.
    [2] Use lsof to identify which socket that drone is using
        to talk to XMPP.
    [3] Use gdb to attach to the process and close the socket, e.g.,
        $ gdb -p $PID
        (gdb) p close(11) # or whatever the socket number was
        (gdb) c
    [4] Use srfsh to make requests of that service. Eventually, one
        of them will hit the drone.
    [5] Sans patch, the request will get handled by the drone, but
        the results will never get sent, and the drone will remain
        available to handle other requests.
    [6] With the patch, the drone will exit when it discovers that it
        can no longer write to the XMPP socket.
    Signed-off-by: Mike Rylander <mrylander@gmail.com>
    Signed-off-by: Galen Charlton <gmc@esilibrary.com>

    Changed files

    • src/libopensrf/osrf_app_session.c
    • src/perl/lib/OpenSRF/Transport/SlimJabber/XMPPReader.pm