Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

tmpfs breakage in 5.99.53?



Hello,

After upgrading my amd64 box from 5.99.52 to 5.99.53, the tests in tests/atf/test-programs/expect_test have started to fail as follows:

expect_test (1/1): 6 test cases
expect_death: Failed: atf-check failed; see the output of the test for details expect_exit: Failed: atf-check failed; see the output of the test for details
    expect_fail: Passed.
    expect_pass: Passed.
expect_signal: Failed: atf-check failed; see the output of the test for details expect_timeout: Failed: atf-check failed; see the output of the test for details

Upon further inspection, it seems like some writes are not reaching the disk. The tests above open a new file, write the test result into it (a single text line) and immediately afterwards close the file. Looking at these files after they have been created, they are empty. Adding a sync() call between the write and the close makes the write reach the disk.

The breakage seems to be tmpfs-related. The tests above fail because my /tmp is tmpfs, and atf-run uses /tmp by default for the test work directories.

The following should reproduce the problem:

# mount -t tmpfs tmpfs /tmp
# cd /usr/tests/atf/test-programs
# atf-run expect_test | atf-report

Or, if you want something more fine-grained:

# mount -t tmpfs tmpfs /foo/bar
# /usr/tests/atf/test-programs/c_helpers -r /not/in/tmpfs/result \
  expect_exit_but_pass
# /usr/tests/atf/test-programs/c_helpers -r /foo/bar/result \
  expect_exit_but_pass
# cat /foo/bar/result

/not/in/tmpfs/result will have some contents, but /foo/bar/result will not.

Any ideas?

Thanks.


Home | Main Index | Thread Index | Old Index