Page MenuHomePhabricator

`make check` needs to pass on travis
Closed, ResolvedPublic

Description

There's currently a number of eio test failures:

tests/eio/eio_test_sentry.c:26:F:Eio_Sentry:eio_test_sentry_directory_directory_self_deleted_notify:0: test timeout
tests/eio/eio_test_sentry.c:26:F:Eio_Sentry:eio_test_sentry_file_file_modified_notify:0: test timeout
tests/eio/eio_test_sentry.c:26:F:Eio_Sentry:eio_test_sentry_file_file_self_deleted_notify:0: test timeout
tests/eio/eio_test_sentry.c:26:F:Eio_Sentry:eio_test_sentry_two_files_in_same_directory:0: test timeout
tests/eio/eio_test_monitor.c:24:F:Eio_Monitor:eio_test_monitor_directory_directory_self_deleted_notify:0: test timeout
tests/eio/eio_test_monitor.c:24:F:Eio_Monitor:eio_test_monitor_file_file_modified_notify:0: test timeout
tests/eio/eio_test_monitor.c:24:F:Eio_Monitor:eio_test_monitor_file_file_self_deleted_notify:0: test timeout
tests/eio/eio_test_monitor.c:24:F:Eio_Monitor:eio_test_monitor_two_files_in_same_directory:0: test timeout

These are not actual timeouts; I've attempted to increase the timeout threshold as well as the start delay and these tests fail no matter what. Currently attempting some profiling here to see what's going on...

zmike created this task.Jun 28 2018, 5:49 PM
zmike triaged this task as High priority.
zmike added a comment.Jun 28 2018, 8:45 PM

https://travis-ci.org/Enlightenment/efl/jobs/398071459 passed all tests; this build forcibly disabled inotify monitoring in eio to guarantee that only fallback monitoring was used. a small permissions patch (as-yet unsubmitted) was used to resolve an ecore-file issue. this seems to prove conclusively that something is broken related to inotify usage on travis...

zmike added a comment.Jun 29 2018, 7:59 AM

Beginning with https://travis-ci.org/Enlightenment/efl/jobs/398268347 I've begun disabling all but a single test with internal instrumentation to provide more info.

F:Eio_Monitor:eio_test_monitor_directory_directory_self_deleted_notify never emits any events and nothing triggers any inotify codepaths.

zmike added a comment.Jun 29 2018, 8:29 AM

F:Eio_Monitor:eio_test_monitor_file_file_modified_notify also no events...

zmike added a comment.Jun 29 2018, 9:20 AM

F:Eio_Monitor:eio_test_monitor_file_file_self_deleted_notify is getting EIO_MONITOR_FILE_MODIFIED???

zmike added a comment.Jun 29 2018, 1:02 PM

No debug info for eio_test_monitor_two_files_in_same_directory

zmike added a comment.Jul 6 2018, 6:16 AM

I have a branch I'm testing with where I've completely removed everything evas-related from the build to speed things up. It seems that no matter what I try, the inotify codepaths are never being called, even with a crazy wait/delay set in the tests. I'm not sure this is fixable...

zmike added a comment.Jul 6 2018, 6:49 AM

If https://travis-ci.org/Enlightenment/efl/builds/400893607 passes then I'll submit the patch to enable it using fallback monitoring.

This is mostly working. D6697 should resolve existing issues where tests deadlock themselves, leaving only occasional failures during distcheck.

I think the best way to make distcheck builds reliable is to break out distcheck into a separate script (i.e., copy the distcheck shell commands into a script) so that tests can be iterated on like they are in regular builds. The only time distcheck builds fail is if make check fails, and the only times tests fail is from intermittent issues which may or may not be resolvable. While some may say there should never be errors when running tests, the reality is that the resources provided by travis builds are not real world use cases; the vm instances are throttled to an insane degree and the available speed can even change during a build--something we really shouldn't care about fixing for unit tests.

zmike closed this task as Resolved.Aug 16 2018, 8:05 AM
zmike claimed this task.

This is now resolved.