thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (THRIFT-4515) Gracefully shutdown cross-test servers to fully test teardown
Date Mon, 19 Mar 2018 18:40:00 GMT

    [ https://issues.apache.org/jira/browse/THRIFT-4515?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16405240#comment-16405240
] 

ASF GitHub Bot commented on THRIFT-4515:
----------------------------------------

Github user asfgit closed the pull request at:

    https://github.com/apache/thrift/pull/1509


> Gracefully shutdown cross-test servers to fully test teardown
> -------------------------------------------------------------
>
>                 Key: THRIFT-4515
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4515
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Test Suite
>    Affects Versions: 0.11.0
>            Reporter: James E. King, III
>            Assignee: James E. King, III
>            Priority: Major
>
> The cross test suite kills the server process after the client is done, see test/crosstest/run.py:_scoped,
the process is killed. This means that we don't ever test teardown in any language in our
cross tests.  Further, in some servers like the C++ TestServer, code at the end of main it
sits in a TIGHT while loop unnecessarily causing CPU usage and slowing down the system.
> There should be a signal (like SIGINT) that each server waits for, and on receiving that
signal stops the thrift server cleanly.  This ensures we properly test teardown.
> h4. Design
> There is a new property in the tests.json file under server called "stop_signal".  If
defined, the server understands how to stop when given this signal.  The cross test suite
honors this.  Currently the cpp, d, and perl servers handle it properly.
> When a server handles this signal, if the server dies unexpectedly or fails to stop that
is considered an error.  The old behavior is applied to any legacy server which doesn't understand
how to use a signal to stop.  In that case the server is killed with SIGKILL (unconditionally)
and any result is ignored.
> All test servers should be updated to support this new mechanism as soon as possible
so that we improve test coverage of server stop / teardown code.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message