Mir

Intermittent acceptance test failure in ClientPidTestFixture.authorizer_may_prevent_connection_of_clients

Bug #1231902 reported by Alan Griffiths
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
New
Undecided
Alan Griffiths

Bug Description

This is one failure mentioned in bug 1231341

$ MIR_SERVER_MSG_PROCESSOR_REPORT=log MIR_CLIENT_RPC_REPORT=log bin/acceptance-tests --gtest_filter=ClientPidTestFixture.authorizer_may_prevent_connection_of_clients --gtest_repeat=1000 --gtest_break_on_failure
...
Repeating all tests (iteration 54) . . .

Note: Google Test filter = ClientPidTestFixture.authorizer_may_prevent_connection_of_clients
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from ClientPidTestFixture
[ RUN ] ClientPidTestFixture.authorizer_may_prevent_connection_of_clients
[DD, rpc] Invocation request: id: 0 method_name: connect
[EE, rpc] Invocation failed: id: 0 method_name: connect error: Broken pipe
pure virtual method called
terminate called without an active exception
/home/alan/display_server/development-branch/tests/mir_test_framework/testing_process_manager.cpp:127: Failure
Value of: result.succeeded()
  Actual: false
Expected: true
client terminate error=process::Result(child_terminated_by_signal, signal(6), )
Segmentation fault (core dumped)

It looks like the client isn't always handling the rejection well.

Changed in mir:
assignee: nobody → Alan Griffiths (alan-griffiths)
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

This is fun!

The client crashes;
The test fails;
And a server process is left running!

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

The server process left running is an artefact of "--gtest_break_on_failure" which exit the test process before sending SIGTERM to the server.

There are two failure modes:

1. Attempting to write to std::cerr after the stream objects are destroyed.
2. Attempting to access boost::system::error_code::message and calling a pure virtual function.

Both look like the process is closing down without first joining any active threads. (I'm still looking for the root cause.)

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.