Uploaded image for project: 'C Driver'
  1. C Driver
  2. CDRIVER-2053

test-libbson starts too many threads

    • Type: Icon: Improvement Improvement
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 1.6.1
    • Affects Version/s: 1.5.0
    • Component/s: libbson, Testing
    • Labels:
      None

      The libbson test suite fails on 32-bit MIPS and 32-bit MIPS Little Endian:

      https://buildd.debian.org/status/package.php?p=libbson&suite=sid

      The bug was reported to me originally against 1.5.4. In fact the tests had failed since 1.5.0 but the since the Debian maintainers didn't catch up on their backlog and file a bug related to the failure immediately. I should ensure I get emails about future test failures.

      Roberto Sanchez and I logged into a MIPS machine (I believe it was a 64-bit MIPS big endian?) in the Debian autobuilder network and were able to reproduce the crash: late in the test suite, test-libbson aborts with return code 134. We could fix it by commenting-out a dozen tests; but it didn't seem to matter which ones we commented out. We could also fix the tests by running them single-threaded.

      The threaded test runner starts a thread per test and runs them all at once. I hypothesize that we added enough tests between 1.4.2 and 1.5.0 that we hit a limit on the number of threads a MIPS process can start. There are almost 250 tests total.

      To fix:

      • Update the parallel runner to limit the number of concurrent threads
      • Don't run in threaded mode by default, anyway - it could make it hard to diagnose future build failures

      Debian Stretch has just entered a freeze and will be released soon. We have libbson and libmongoc 1.4.2 in Stretch, and we won't be able to get anything new included, since this build failure was introduced circa 1.5.0. I think that's ok, the new features in libbson and libmongoc were MongoDB 3.4 support and native TLS on non-Linux, not having these in Debian is fine. Regardless, there's no urgency about fixing this now, we missed the deadline for 1.5.x in Stretch.

      The next Debian release, Buster, will be frozen 18 to 24 months from now. Its timeline will be announced soon.

            Assignee:
            jesse@mongodb.com A. Jesse Jiryu Davis
            Reporter:
            jesse@mongodb.com A. Jesse Jiryu Davis
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: