Another update: This is not an fsync() race after all. The /uevent files it 
tries to read already exist and can be successfully read in a previous event.
 
I adjusted the libudev debugging to http://paste.ubuntu.com/7747163/ and 
umockdev's to http://paste.ubuntu.com/7747174/ to get a non-overwhelming debug 
output, and still run the test like

With that, a "normal" event processing looks like that:

libudev: udev_monitor_receive_device: udev_monitor_receive_device: start
libudev: udev_device_read_uevent_file: reading /sys/devices/card2/uevent
testbed wrapped fopen(/sys/devices/card2/uevent) -> 
/tmp/umockdev.YI7DIX/sys/devices/card2/uevent
libudev: udev_device_read_uevent_file:  line DEVTYPE=drm_minor
libudev: udev_monitor_receive_device: udev_monitor_receive_device: success

But I also see ones that look like that:

libudev: udev_monitor_receive_device: udev_monitor_receive_device: start
libudev: udev_device_read_uevent_file: reading /sys/devices/card2/uevent
testbed wrapped fopen(/sys/devices/card2/uevent) -> 
/tmp/umockdev.YI7DIX/sys/devices/card2/uevent
libudev: udev_device_new_from_syspath: device 0x7f2208001be0 has devpath 
'/devices/card2'
libudev: udev_device_read_uevent_file: reading /sys/devices/card2/uevent
testbed wrapped fopen(/sys/devices/card2/uevent) -> 
/tmp/umockdev.YI7DIX/sys/devices/card2/uevent
libudev: udev_device_read_uevent_file:  line DEVTYPE=drm_minor
libudev: udev_device_read_uevent_file:  line DEVTYPE=drm_minor
libudev: udev_monitor_receive_device: udev_monitor_receive_device: success

and for a failing case:

ibudev: udev_monitor_receive_device: udev_monitor_receive_device: start
libudev: udev_device_read_uevent_file: reading /sys/devices/card2/uevent
testbed wrapped fopen(/sys/devices/card2/uevent) -> 
/tmp/umockdev.YI7DIX/sys/devices/card2/uevent
libudev: udev_device_new_from_syspath: device 0x7f2208001be0 has devpath 
'/devices/card2'
libudev: udev_device_read_uevent_file: reading /sys/devices/card2/uevent
testbed wrapped fopen(/sys/devices/card2/uevent) -> 
/tmp/umockdev.YI7DIX/sys/devices/card2/uevent
libudev: passes_filter: passes_filter: monitor filters on DEVTYPE=drm_minor, 
but device does not have DEVTYPE
libudev: udev_monitor_receive_device: udev_monitor_receive_device: failed 
filter test, discarding
libudev: udev_device_read_uevent_file:  line DEVTYPE=drm_minor
libudev: udev_device_read_uevent_file: reading /sys/devices/card2/uevent
testbed wrapped fopen(/sys/devices/card2/uevent) -> 
/tmp/umockdev.YI7DIX/sys/devices/card2/uevent
libudev: udev_device_read_uevent_file:  line DEVTYPE=drm_minor
libudev: udev_monitor_receive_device: udev_monitor_receive_device: success


So the really strange thing is that there are often multiple parallel runs of 
these functions, like if udev_monitor_receive_device() was being called in 
parallel. I wonder if that's related to the test having three threads, so that 
the display's configuration handler monitor somehow also runs in the "t" and 
"watchdog" threads?

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to umockdev in Ubuntu.
https://bugs.launchpad.net/bugs/1336671

Title:
  Intermittent
  mir_unit_tests.MesaDisplayTest.drm_device_change_event_triggers_handler
  test failure: device DEVTYPE is sometimes NULL

Status in Mir:
  In Progress
Status in “umockdev” package in Ubuntu:
  New

Bug description:
  As seen in: http://s-jenkins.ubuntu-ci:8080/job/mir-clang-utopic-
  amd64-build/799/console

  To reproduce locally:

  bzr branch lp:mir/devel mir-devel && cd mir-devel
  mkdir build && cd build && cmake .. && make -j4
  umockdev-wrapper bin/mir_unit_tests 
--gtest_filter=MesaDisplayTest.drm_device_change_event_triggers_handler 
--gtest_repeat=-1 --gtest_break_on_failure

  (Ignore the segfault when the test fails, it's a side effect of
  --gtest_break_on_failure)

  Running with strace or on a system with high load increases the chances that 
we hit the problem. For example, running make -j4 in another mir branch while
  running the tests does the trick for mir.

To manage notifications about this bug go to:
https://bugs.launchpad.net/mir/+bug/1336671/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to