nfv/guest-client/guest-client-3.0.1
Jack Ding 7a2aa8aaa2 vm_voting on migration action are sometimes not getting rejected
Due to race conditions, multiple messages might be received from a
single read by guestServer. guestServer in this case would only
handle the first message and discard the remaining ones.

In this particular issue, guestServer received a heartbeat challenge
response message and a vote notification response (reject) message
from a single read, and the latter message was discarded.

This fix re-writes message handler for virtio serial channel to
handle segmented and multiple messages, and removed any newline
characters in client log message.

It contains fix for both host and client, so both host load and
guest image need to be updated to test the fix.

Change-Id: I50ed2236ad24b61a79dce7773ace5b4b6ee33f28
Signed-off-by: Al Bailey <Al.Bailey@windriver.com>
2018-06-19 10:08:07 -05:00
..
guest_client vm_voting on migration action are sometimes not getting rejected 2018-06-19 10:08:07 -05:00
guest_client_api Turn on Guest-Client logs on centos guest image 2018-06-18 11:43:57 -05:00
include StarlingX open source release updates 2018-05-31 07:36:51 -07:00
packaging StarlingX open source release updates 2018-05-31 07:36:51 -07:00
LICENSE StarlingX open source release updates 2018-05-31 07:36:51 -07:00
Makefile StarlingX open source release updates 2018-05-31 07:36:51 -07:00
README StarlingX open source release updates 2018-05-31 07:36:51 -07:00
README.build StarlingX open source release updates 2018-05-31 07:36:51 -07:00
README.usage StarlingX open source release updates 2018-05-31 07:36:51 -07:00
TiS-Guest-Heartbeat-Service.doc StarlingX open source release updates 2018-05-31 07:36:51 -07:00
TiS-Guest-Heartbeat-Service.pdf StarlingX open source release updates 2018-05-31 07:36:51 -07:00

Copyright(c) 2013-2017, Wind River Systems, Inc. 

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

  * Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
  * Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in
    the documentation and/or other materials provided with the
    distribution.
  * Neither the name of Wind River Systems nor the names of its
    contributors may be used to endorse or promote products derived
    from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-----------------------------------------------------------------------

TITANIUM CLOUD - GUEST HEARTBEAT SDK
===========================================

DESCRIPTION
===========
    Titanium Cloud Guest-Client provides a heartbeat service to monitor the
    health of guest application(s) within a VM running under WindRiver's
    Titanium Cloud.  Loss of heartbeat will result in a corrective action
    being taken against the VM.  The heartbeat interval and corrective action
    is specified by the VM.

    Titanium Cloud Guest-Client also provides guest application(s) within
    a VM running under WindRiver's Titanium Cloud, the ability to receive
    notification of and vote to accept or reject actions about to be performed
    against the VM.  On notifications, the guest application within the VM can
    take this opportunity to cleanly shut down or transfer its service to a
    peer VM.

                            +-------- Virtual Machine ------------------------+
                            |                                                 |
                            |       VM-Health-Check-Script                    |
                            |         /                                       |
                            |        /                    Guest-Application-1 |
         Titanium Cloud <----> TiS-Guest-Client  <----->         ...          |
                            |        \                    Guest-Application-8 |
                            |         \                                       |
                            |       VM-Event-Script                           |
                            |                                                 |
                            +-------------------------------------------------+

    See also:

        README.build  - building and installing.

        README.usage  - configuring and using the heartbeat, notification
                        and voting functionality.


DELIVERY
========
    Titanium Cloud Guest-Client is delivered as source in a compressed
    tarball, wrs-guest-client-v3.0.0.tgz, such that it can be compiled for
    the applicable VM Linux distribution.