I've had this problem a lot in the last month, since enabling DrupalCI: quite often, when I post a patch, it passes without problems in the old testbot, but the DrupalCI testbot reports random fails.

Part of the problem seems to be that the new testbot sometimes uses older versions of the module or Drupal Core, but sometimes the fails are just completely random.
In any case, when I then ignore DrupalCI and commit the patch, the DrupalCI tests on the project's "Automated testing" tab continue to pass without problems, so I think for some reason those random fails only happen when testing patches, not branches.

A recent example is #2473717-37: Add support for per-bundle view modes in the rendered entity processor – when you review the 3 fails, you'll see that one is that /core/install.php couldn't be reached (which can hardly be caused by my contrib module patch), and I'm pretty sure the other two are also not caused by the patch.

Anyways, I wanted to make sure to report this before the old testbot gets deactivated with this being unresolved.
Is the Search API the only contrib module where this happens? I could't find an existing issue.

Comments

drunken monkey created an issue. See original summary.

drunken monkey’s picture

Title: Inconsistent patch test results for old and new test bot » Inconsistent patch test results for old and new testbot
isntall’s picture

Assigned: Unassigned » isntall

I can confirm things are inconsistent, when using DCI.
I just ran the test multiple times (10 times some with different concurrency) and it had failures once.

isntall’s picture

Assigned: isntall » Unassigned
mfb’s picture

I've seen unreproducible failures [which I was eventually able to figure out] in one of my contrib modules and could have saved time if I had installed DrupalCI locally - maybe next time :)

hass’s picture

Priority: Normal » Major

Google Analytics with SimpleTest has ~386 Tests FAILED: [[SimpleTest]]: [PHP 5.5 MySQL] 381 pass(es), 5 fail(s), and 0 exception(s). CI tells me I have 15 pass, 2 fail.

CI is wrong and does not properly run tests for unknown reasons. reCaptcha looks like the same.

hass’s picture

Drupal core has ~113.000 tests, but CI reports just ~14.000 as passing.

Mixologic’s picture

Drupal core has ~113000 assertions, not tests. CI is now properly reporting the ~14000 test methods that are being executed. Since the assertions always included every assertion from every parent class (like all of the setup assertions), this "number of tests" was always traditionally miscounted.

hass’s picture

Every assertion tests one feature or at least verify a functionality.

That means it is one test.

Please count and display assertions, too. The current behavior is very confusing and do not motivate me to write any more test.

andypost’s picture

Mixologic’s picture

@andypost: that particular case is a known issue with the pift/pifr bots that we're not going to spend any time solving. Migrate likes to segfault, and we don't have an explanation for it.

The other consistently failing problem with the old bots all testbots is sometimes they will do an http request and get back a 0 instead of any real status code.

I just noticed, for the first time, that this happens on drupalci: https://www.drupal.org/pift-ci-job/38105

So, I will investigate that issue (which is a problem with testing in general, not with old vs new bots, as such is not a blocker for disabling pift/pifr)

Follow along here: #2579183: GET requests on testbots sometimes return 0

Mixologic’s picture

Also, Hass, there is a plan to expose those assertion counts as well: #2568137: Expose Assertion Count to Jenkins

YesCT’s picture

seeing a bunch of not matching results with the old testbot and the new one. usually, fails on the old one, and passes on the new one.

examples:
#2513534-52: Remove the 'disabled' region from Block UI
"FAILED: [[SimpleTest]]: [PHP 5.5 MySQL] 113,855 pass(es), 4 fail(s), and 0 exception(s).
PHP 5.5 & MySQL 5.5 14,137 pass, 1 fail"
[edit: this might actually be consistant, both fail, just probably count differently]

#1810394-180: Site configuration with domain based language negotiation results in redirecting authenticated users to a different domain when accessing a content entity route for translation language different from the interface language
"Previous result: FAILED: [[SimpleTest]]: [PHP 5.5 MySQL] 116,797 pass(es), 496 fail(s), and 23 exception(s).
PHP 5.5 & MySQL 5.5 14,218 pass"

#2581817-2: Follow-up for #2505263: clean up comments
"FAILED: [[SimpleTest]]: [PHP 5.5 MySQL] 116,797 pass(es), 428 fail(s), and 22 exception(s).
PHP 5.5 & MySQL 5.5 14,212 pass"

Mixologic’s picture

All three of the test results in #13 are fine. The first has the same failures - remember the old counts were *assertion* counts, the new counts are *test* counts. The numbers will not, and should not match. If you click through to the results it shows that both have the same errors.

The latter two are examples of pift/pifr that have been biting us lately where pift/pifr is randomly failing. I.e we are *only* concerned if drupalCI has failures that it shouldn't, or is passing when it shouldn't.

Mixologic’s picture

Assigned: Unassigned » Mixologic
YesCT’s picture

Mile23’s picture

Status: Active » Closed (works as designed)

Are we still concerned with PIFR inconsistencies?

Please re-open if we are.

Mile23’s picture

Status: Closed (works as designed) » Postponed (maintainer needs more info)

Give people a chance to see.

Mixologic’s picture

The only relevant thing left is #2568137: Expose Assertion Count to Jenkins

drunken monkey’s picture

Since the old test bot has been shut down, it's hardly possible anymore to see differences between the two.
But there are still random fails now and then, I think, especially on Postgres (see #2709899: php7 + postgres throws AlreadyInstalledException randomly.).
But probably we can really just close this issue and discuss in the others.

Mixologic’s picture

Project: DrupalCI: Test Runner » DrupalCI: Drupal.org Testing Infrastructure
Component: Code » Unexplained Failures/Support
Mixologic’s picture

Status: Postponed (maintainer needs more info) » Closed (outdated)