* [LTP] Linux-4.4: pwritev201.c:62: FAIL: pwritev2() failed: EINVAL
@ 2019-06-17 2:30 Naresh Kamboju
2019-06-17 4:59 ` Xiao Yang
0 siblings, 1 reply; 2+ messages in thread
From: Naresh Kamboju @ 2019-06-17 2:30 UTC (permalink / raw)
To: ltp
Newly added tests pwritev201 and pwritev201_64 from LTP version
20190517 got failed on all devices for Linux 4.4
do you test this on linux stable 4.4 branch ? do you notice this failure ?
Test PASS on stable 4.9, 4.14 and 4.19 branches.
tst_test.c:1096: INFO: Timeout per run is 0h 15m 00s
pwritev201.c:96: PASS: pwritev2() wrote 64 bytes successfully with
content 'a' expectedly
pwritev201.c:96: PASS: pwritev2() wrote 64 bytes successfully with
content 'a' expectedly
pwritev201.c:96: PASS: pwritev2() wrote 64 bytes successfully with
content 'a' expectedly
pwritev201.c:62: FAIL: pwritev2() failed: EINVAL
pwritev201.c:62: FAIL: pwritev2() failed: EINVAL
pwritev201.c:62: FAIL: pwritev2() failed: EINVAL
Summary:
passed 3
failed 3
skipped 0
warnings 0
tst_test.c:1096: INFO: Timeout per run is 0h 15m 00s
pwritev201.c:96: PASS: pwritev2() wrote 64 bytes successfully with
content 'a' expectedly
pwritev201.c:96: PASS: pwritev2() wrote 64 bytes successfully with
content 'a' expectedly
pwritev201.c:96: PASS: pwritev2() wrote 64 bytes successfully with
content 'a' expectedly
pwritev201.c:62: FAIL: pwritev2() failed: EINVAL
pwritev201.c:62: FAIL: pwritev2() failed: EINVAL
pwritev201.c:62: FAIL: pwritev2() failed: EINVAL
Summary:
passed 3
failed 3
skipped 0
warnings 0
Full test log,
https://lkft.validation.linaro.org/scheduler/job/751027#L9608
Test results comparison link,
https://qa-reports.linaro.org/_/comparetest/?project=22&project=6&project=58&project=135&project=40&project=23&project=167&suite=ltp-syscalls-tests&test=pwritev201
Best regards
Naresh Kamboju
^ permalink raw reply [flat|nested] 2+ messages in thread
* [LTP] Linux-4.4: pwritev201.c:62: FAIL: pwritev2() failed: EINVAL
2019-06-17 2:30 [LTP] Linux-4.4: pwritev201.c:62: FAIL: pwritev2() failed: EINVAL Naresh Kamboju
@ 2019-06-17 4:59 ` Xiao Yang
0 siblings, 0 replies; 2+ messages in thread
From: Xiao Yang @ 2019-06-17 4:59 UTC (permalink / raw)
To: ltp
Hi Naresh,
Thank you for reporting the issue.
From kernel code and manpage, pwritev2() has not been introduced on
stable kernel v4.4.
glibc also provides pwritev2() since glibc-2.26 so that you can still
call pwritev2() by glibc.
But glibc doesn't handle 'offset == -1' correctly before glibc-2.28
because it just replaces
pwritev2() with pwritev() and calling pwritev() with negative offset
returns EINVAL.
See the following code in glibc:
-----------------------------------------------------------------------------------------------------------------------
ssize_t
pwritev2 (int fd, const struct iovec *vector, int count, off_t offset,
int flags)
{
# ifdef __NR_pwritev2
ssize_t result = SYSCALL_CANCEL (pwritev2, fd, vector, count,
LO_HI_LONG (offset), flags);
if (result >= 0)
return result;
# endif
/* Trying to emulate the pwritev2 syscall flags is troublesome:
* We can not temporary change the file state of the O_DSYNC and
O_SYNC
flags to emulate RWF_{D}SYNC (attempts to change the state of using
fcntl are silently ignored).
* IOCB_HIPRI requires the file opened in O_DIRECT and uses an
internal
semantic not provided by any other flag (O_NONBLOCK for
instance). */
if (flags != 0)
{
__set_errno (ENOTSUP);
return -1;
}
return pwritev (fd, vector, count, offset);
}
-----------------------------------------------------------------------------------------------------------------------
This issue has been fixed by commit d4b4a00 since glibc-2.28, so I think
you should use
glibc-2.28 or newer to test pwritev201 on stable kernel v4.4. Could you
test pwritev201
with newer glibc again on stable kernel v4.4?
I think it is a known bug of glibc rather than a bug of test case.
Best Regards,
Xiao Yang
On 06/17/2019 10:30 AM, Naresh Kamboju wrote:
> Newly added tests pwritev201 and pwritev201_64 from LTP version
> 20190517 got failed on all devices for Linux 4.4
> do you test this on linux stable 4.4 branch ? do you notice this failure ?
>
> Test PASS on stable 4.9, 4.14 and 4.19 branches.
>
> tst_test.c:1096: INFO: Timeout per run is 0h 15m 00s
> pwritev201.c:96: PASS: pwritev2() wrote 64 bytes successfully with
> content 'a' expectedly
> pwritev201.c:96: PASS: pwritev2() wrote 64 bytes successfully with
> content 'a' expectedly
> pwritev201.c:96: PASS: pwritev2() wrote 64 bytes successfully with
> content 'a' expectedly
> pwritev201.c:62: FAIL: pwritev2() failed: EINVAL
> pwritev201.c:62: FAIL: pwritev2() failed: EINVAL
> pwritev201.c:62: FAIL: pwritev2() failed: EINVAL
> Summary:
> passed 3
> failed 3
> skipped 0
> warnings 0
>
> tst_test.c:1096: INFO: Timeout per run is 0h 15m 00s
> pwritev201.c:96: PASS: pwritev2() wrote 64 bytes successfully with
> content 'a' expectedly
> pwritev201.c:96: PASS: pwritev2() wrote 64 bytes successfully with
> content 'a' expectedly
> pwritev201.c:96: PASS: pwritev2() wrote 64 bytes successfully with
> content 'a' expectedly
> pwritev201.c:62: FAIL: pwritev2() failed: EINVAL
> pwritev201.c:62: FAIL: pwritev2() failed: EINVAL
> pwritev201.c:62: FAIL: pwritev2() failed: EINVAL
> Summary:
> passed 3
> failed 3
> skipped 0
> warnings 0
>
> Full test log,
> https://lkft.validation.linaro.org/scheduler/job/751027#L9608
>
> Test results comparison link,
> https://qa-reports.linaro.org/_/comparetest/?project=22&project=6&project=58&project=135&project=40&project=23&project=167&suite=ltp-syscalls-tests&test=pwritev201
>
> Best regards
> Naresh Kamboju
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-06-17 4:59 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-17 2:30 [LTP] Linux-4.4: pwritev201.c:62: FAIL: pwritev2() failed: EINVAL Naresh Kamboju
2019-06-17 4:59 ` Xiao Yang
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.