[Bug 1770480] Re: preadv2 test does not consider new flag from linux 4.16

Steve Langasek 1770480 at bugs.launchpad.net
Thu Sep 10 23:03:58 UTC 2020


Hello Thadeu, or anyone else affected,

Accepted glibc into bionic-proposed. The package will build now and be
available at https://launchpad.net/ubuntu/+source/glibc/2.27-3ubuntu1.3
in a few hours, and then in the -proposed repository.

Please help us by testing this new package.  See
https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how
to enable and use -proposed.  Your feedback will aid us getting this
update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug,
mentioning the version of the package you tested, what testing has been
performed on the package and change the tag from verification-needed-
bionic to verification-done-bionic. If it does not fix the bug for you,
please add a comment stating that, and change the tag to verification-
failed-bionic. In either case, without details of your testing we will
not be able to proceed.

Further information regarding the verification process can be found at
https://wiki.ubuntu.com/QATeam/PerformingSRUVerification .  Thank you in
advance for helping!

N.B. The updated package will be released to -updates after the bug(s)
fixed by this package have been verified and the package has been in
-proposed for a minimum of 7 days.

** Changed in: glibc (Ubuntu Bionic)
       Status: In Progress => Fix Committed

** Tags added: verification-needed verification-needed-bionic

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to glibc in Ubuntu.
https://bugs.launchpad.net/bugs/1770480

Title:
  preadv2 test does not consider new flag from linux 4.16

Status in glibc package in Ubuntu:
  Fix Released
Status in glibc source package in Bionic:
  Fix Committed
Status in glibc source package in Cosmic:
  Fix Released

Bug description:
  [Impact]
  When tested against newer versions of linux, glibc tests will fail as it makes some assumptions about supportead features on the kernel.

  [Fix]
  Ignore "invalid" (rather unknown) flags success as failure, instead exiting as unsupported (equivalent to skip).

  [Test case]
  Build glibc and run its tests on linux 5.3.

  [Regression potential]
  The same test is being ignored right now, we risk ignoring a failure on an older version of linux, like 4.15. However, that could happen because the feature is backported to said kernel. And we are currently ignoring the failure anyway.

  ======================================

  
  https://objectstorage.prodstack4-5.canonical.com/v1/AUTH_77e2ada1e7a84929a74ba3b87153c0ac/autopkgtest-cosmic-canonical-kernel-team-bootstrap/cosmic/arm64/g/glibc/20180510_173125_32961@/log.gz

  FAIL: misc/tst-preadvwritev2
  original exit status 1
  error: tst-preadvwritev2-common.c:45: preadv2 did not fail with an invalid flag
  error: 1 test failures
  ----------
  ----------
  FAIL: misc/tst-preadvwritev64v2
  original exit status 1
  error: tst-preadvwritev2-common.c:45: preadv2 did not fail with an invalid flag
  error: 1 test failures

  This is testing for the flag immediately after the last known flag.
  So, if it's 0x8, it's going to test for 0x10.

  The test snippet:

    int invalid_flag = RWF_SUPPORTED != 0 ? __builtin_clz (RWF_SUPPORTED) : 2;
    invalid_flag = 0x1 << ((sizeof (int) * CHAR_BIT) - invalid_flag);

    char buf[32];
    const struct iovec vec = { .iov_base = buf, .iov_len = sizeof (buf) };
    if (preadv2 (temp_fd, &vec, 1, 0, invalid_flag) != -1)
      FAIL_EXIT1 ("preadv2 did not fail with an invalid flag");

  However, linux 4.16 has introduced RWF_APPEND.

  commit e1fc742e14e01d84d9693c4aca4ab23da65811fb
  Author: Jürg Billeter <j at bitron.ch>
  Date:   Fri Sep 29 14:07:17 2017 +0200

      fs: add RWF_APPEND

  ---
  +/* per-IO O_APPEND */
  +#define RWF_APPEND     ((__force __kernel_rwf_t)0x00000010)
  +
   /* mask of flags supported by the kernel */
  -#define RWF_SUPPORTED  (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT)
  +#define RWF_SUPPORTED  (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT |\
  +                        RWF_APPEND)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1770480/+subscriptions



More information about the foundations-bugs mailing list