FTBFS: AsyncExecutionLoadTest.RepeatedlyInvokingAnAsyncFunctionWorks fails: Current count of 378 does not match 500

Bug #1746698 reported by lamby
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
dbus-cpp
New
Undecided
Unassigned

Bug Description

From https://bugs.debian.org/888995:

Builds of dbus-cpp for several architectures (armhf, mips, mipsel, and
the non-release architectures alpha and x32) failed with errors along
the lines of

  15/15 Test #1: async_execution_load_test ........***Failed 300.02 sec
  Running main() from gmock_main.cc
  [==========] Running 1 test from 1 test case.
  [----------] Global test environment set-up.
  [----------] 1 test from AsyncExecutionLoadTest
  [ RUN ] AsyncExecutionLoadTest.RepeatedlyInvokingAnAsyncFunctionWorks
  dbus[25970]: Unable to set up transient service directory: XDG_RUNTIME_DIR "/run/user/114" not available: No such file or directory
  /<<BUILDDIR>>/dbus-cpp-5.0.0+18.04.20171031/tests/async_execution_load_test.cpp:134: Failure
  Value of: ec->wait_for(std::chrono::minutes{5})
    Actual: false (Current count of 378 does not match 500)
  Expected: true
  dbus[25966]: Attempted to unregister path (path[0] = org path[1] = freedesktop) which isn't registered
  [ FAILED ] AsyncExecutionLoadTest.RepeatedlyInvokingAnAsyncFunctionWorks (300015 ms)
  [----------] 1 test from AsyncExecutionLoadTest (300015 ms total)

  [----------] Global test environment tear-down
  [==========] 1 test from 1 test case ran. (300015 ms total)
  [ PASSED ] 0 tests.
  [ FAILED ] 1 test, listed below:
  [ FAILED ] AsyncExecutionLoadTest.RepeatedlyInvokingAnAsyncFunctionWorks

   1 FAILED TEST

  93% tests passed, 1 tests failed out of 15

  Total Test time (real) = 300.02 sec

  The following tests FAILED:
     1 - async_execution_load_test (Failed)
  Errors while running CTest

Presumably, these architectures' autobuilders happen to lack /run/user.
(I'm just tagging the two affected mips architectures for now, as
presumably representative here.)

-

Can we skip this test if /run/user does not exist?

Revision history for this message
Simon McVittie (smcv) wrote :

> dbus[25970]: Unable to set up transient service directory: XDG_RUNTIME_DIR "/run/user/114" not available: No such file or directory

This is not the root cause of the test failure. On the Debian bug, Aurelien Jarno comments that official Debian autobuilders (on which dbus-cpp passed its tests) have the same setup with a nonexistent /run/user.

dbus-daemon will log this message if XDG_RUNTIME_DIR is set to a nonexistent directory, but if dbus-cpp is not using the transient service directory feature, the warning is harmless. In practice it seems unlikely to need that feature.

summary: - FTBFS: async_execution_load_test needs /run/user
+ FTBFS: AsyncExecutionLoadTest.RepeatedlyInvokingAnAsyncFunctionWorks
+ fails: Current count of 378 does not match 500
Revision history for this message
Simon McVittie (smcv) wrote :

This looks to me more like an ordinary test timeout. The test starts 5 threads each performing 100 D-Bus method calls, and waits for 500 method calls or 5 minutes, whichever happens soonest; and in the log quoted, it took slightly more than 5 minutes to fail. Perhaps this timeout is just set too short?

More than half a second per D-Bus call seems rather slow, but if there's a lot of lock contention between the 6+ threads involved on only one or two CPU cores, then maybe that could cause it to be that slow.

The Debian autobuilders for armhf, mips, mipsel and alpha are quite slow and probably do not have many CPU cores, so if anything was going to time out while being hammered with parallel requests, I would expect it to be those.

(The one thing not consistent with that theory is that x32 failed in the same way - x32 runs on x86_64 hardware, which is presumably fast and probably has lots of cores.)

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.