Details
-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
None
-
3
-
9223372036854775807
Description
sanity test_426 has a few issues:
- trivial should not be used when adding tests.
- The commit message specifies "Test-Parameters: trivial envdefinitions=ONLY=425 testlist=sanity" but the test added was test_426.
- test_426() itself does not check the exit status of the first the invocations of splice-read. The first and third invocations fail:
== sanity test 426: splice test on Lustre ============================================================ 04:48:51 (1601959731) splice-test: splice: Bad address concurrent reader with O_DIRECT read: /mnt/lustre/f426.sanity: unexpected EOF concurrent reader with O_DIRECT concurrent reader without O_DIRECT concurrent reader without O_DIRECT splice-test: splice: Bad address sequential reader with O_DIRECT sequential reader without O_DIRECT Resetting fail_loc on all nodes...CMD: trevis-57vm1
(From https://testing.whamcloud.com/sub_tests/32fb3881-204a-462a-92cf-561557edb59a).
- splice-find.c mixes fork without exact, printf(), and fprintf(stderr, ...) which causes the duplicated and out of order messages.
- read_from_pipe() should use posix_memalign() to allocate its buffer for O_DIRECT.
- read_from_pipe() decrements size by sz instead of ret.
- do_splice1() is vulnerable to deadlock since the read_from_pipe() is not called until after the splice() completes.
- do_splice2() does not check for errors from fork().
- do_splice2() does not check the exit status of the child process.
- Generally we should check for failure from system calls as rc < 0 rather than rc == -1.
- Error handling uses the non-standard BSD extension err().
- Allocation should use the standard function posix_memalign() rather then aligned_alloc().
Attachments
Issue Links
- is related to
-
LU-13745 tasks hang with copy_file_range: ll_file_splice_read()
- Open