Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-7774

Fix cppsuite error cc_pages_removed outside of the specified limits

    XMLWordPrintable

    Details

    • Type: Build Failure
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Duplicate
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:

      Description

      make-check-test failed on * Ubuntu 18.04 CMake

      Host: ec2-44-192-63-142.compute-1.amazonaws.com
      Project: WiredTiger (develop)
      Commit: diff: WT-7749 Assorted fixes for (and from) building and testing on NetBSD (#6721)

      • test/evergreen/evg_cfg.py: allow repos cloned anonymously from github
      • Doxyfile: adjustments for doxygen 1.8.20
      • comment out TCL_SUBST, no longer supported (wasn't being used)
      • set PAPER_TYPE to a4 as "a4wide" no longer exists and doxygen complains
        (and it shouldn't be getting used for anything anyway)
      • src/docs: add whitespace to @plantuml_start{} to avoid doxygen errors

      I don't know why this should now be necessary but it runs and produces
      the correct output this way.

      • dist/s_export: work with both autoconf and cmake configury
      • look in the whole tree for library images
      • test all libraries found, not just the first
      • report which one was wrong if something's found
      • dist/s_clang-format, s_typedef: minor portability fixes

      cmp -s is POSIX; [[:space:]] in regexps is POSIX and \s is a gnuism.

      • ext/test/fail_fs: generalize _FreeBSD_ ifdefs
      • cmake: Demand swig 3.x for the python bindings and don't accept 1.x.

      When I first built it found an ancient swig 1.x on my machine
      (arguably my fault for having it around...) and then the build failed
      mysteriously because swig 1.x doesn't support python3.

      While here, ask for the swig python module; probably not necessary
      but harmless.

      • ext/storage_sources/local_store: fix strict build failure with gcc

      On gcc8 and also gcc10, the value range analysis is primitive or maybe
      missing entirely and it can't tell that (x % 1000) * 1000 (for
      unsigned x) is less than INT_MAX. So if -Wsign-conversion is enabled,
      as we do with strict builds, it spuriously complains about unsigned to
      signed conversion possibly changing the value. Add explicit cast to
      suseconds_t (the type of ->tv_usec in struct timeval according to
      POSIX) to silence this.

      • Add spelling words for the comment in the previous change. :-|
      • Add cmake build config for NetBSD on x86.

      (It might be desirable to adjust this stuff so explicit configs for
      every machine/OS pair aren't needed, but one thing at a time)

      • test/csuite/random_directio: honor configured O_DIRECT blocksize

      The code here was using the block size reported by stat.st_blksize as
      the alignment requirement for O_DIRECT I/O. This is not correct; it
      should be using the O_DIRECT blocksize from the build configuration.

      • Distinguish the block alignment from the block size; use
        WT_BUFFER_ALIGNMENT_DEFAULT as the alignment, and use the block size
        from stat to replace this only if WT_BUFFER_ALIGNMENT_DEFAULT is 0.
      • Adjust the assertions about the space in the copy buffer; there
        should be space for one block, plus the block alignment so the block
        can begin at any offset modulo the block alignment.
      • Align the buffer start by the block alignment. At EOF, align the
        size up by only the alignment (that's all that's necessary).
      • Make the buffer larger. st_blksize typically reports the filesystem
        block size, which is mostly 4K on Linux, but on BSD because FFS
        supports fragments it's often larger. Most of my volumes are 16K or
        32K, and I know there are 64K volumes out there. A 20K buffer isn't
        big enough, so make it 64K as a starting point.
      • build-posix.dox: typo
      • Doxyfile: G/C "TCL_SUBST" entirely; not used and no longer supported.
      • Whitespace.
      • ext/storage_sources/local_store: explicitly reflow comment.

      (was inadvertently suppressed by leading dashes in the name of
      a gcc option)

      • random_directio: revert, and redo as suggested

      Revert most of a5d95a70f129b9608147aaf026fadf743acbc9ac, and just (a)
      make the buffer larger and (b) make sure the size is at least the
      configured direct IO size.

      Co-authored-by: Alex Cameron <alex.cameron@10gen.com> | 02 Jul 21 03:12 UTC
      Evergreen Subscription: ; Evergreen Event:

      Task Logs (make-check-test)

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              backlog-server-storage-engines Backlog - Storage Engines Team
              Reporter:
              xgen-evg-user Xgen-Evergreen-User
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: