See https://www.drupal.org/pift-ci-job/541874 and https://www.drupal.org/pift-ci-job/542382

We need to find out why this goes wrong on this environment and improve the test.

CommentFileSizeAuthor
#24 2832013-24.patch1.46 KBcatch
#21 2832013-21.patch2.04 KBmichielnugter
#21 interdiff-16-21.txt851 bytesmichielnugter
#16 2832013-16.patch2.13 KBmichielnugter
#16 interdiff-14-16.txt2.14 KBmichielnugter
#14 interdiff.txt1.06 KBWim Leers
#14 2832013-14.patch1.8 KBWim Leers
#13 interdiff.txt1.21 KBWim Leers
#13 2832013-12.patch1.71 KBWim Leers
#9 2832013-9.patch1.77 KBWim Leers
#6 2832013-prove-difference-between-php5-and-php7.patch2.97 KBWim Leers
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

klausi created an issue. See original summary.

Wim Leers’s picture

Title: CommentHalJsonAnonTest always fails on PHP 5.6 & MySQL 5.5 » CommentResourceTestBase::testPostDxWithoutCriticalBaseFields() always fails on PHP 5.6 & MySQL 5.5 (works fine on other PHP versions)
Component: hal.module » comment.module
Assigned: Unassigned » Wim Leers

So, it's not just CommentHalJsonAnonTest. It's \Drupal\Tests\rest\Functional\EntityResource\Comment\CommentResourceTestBase::testPostDxWithoutCriticalBaseFields() that fails on PHP 5.6+MySQL 5.5, for every subclass:

  1. ComentHalJsonAnonTest
  2. ComentHalJsonBasicAuthTest
  3. ComentHalJsonCookieTest
  4. ComentJsonAnonTest
  5. ComentJsonBasicAuthTest
  6. ComentJsonCookieTest

The failing line:

$this->assertResourceErrorResponse(500, 'A fatal error occurred: Internal Server Error', $response);

It seems that for some reason, Drupal 8 does not generate a 500 response with a response body containing A fatal error occurred: Internal Server Error on PHP 5.6. On PHP 5.5 and PHP 7, it does. But on 5.6, it outputs this instead:

Error: Call to a member function get() on null
Drupal\comment\Plugin\Validation\Constraint\CommentNameConstraintValidator->getAnonymousContactDetailsSetting()() (Line: 96)

In other words, it seems that Drupal 8 on PHP 5.6 does not succeed in hiding the fatal error from the end user, unlike 5.5/7.

See #5.


  1. I will try to reproduce this locally with PHP 5.6.
  2. The full code is
        // @todo Uncomment, remove next line in https://www.drupal.org/node/2820364.
        $this->assertResourceErrorResponse(500, 'A fatal error occurred: Internal Server Error', $response);
        //$this->assertResourceErrorResponse(422, "Unprocessable Entity: validation failed.\nentity_type: This value should not be null.\n", $response);
    

    , for which we have this issue: #2820364: Entity + Field + Property validation constraints are processed in the incorrect order.

Wim Leers’s picture

Reproduced locally on PHP 5.6.27:

wim.leers at acquia in ~/Work/d8 on 8.3.x*
$ php vendor/bin/phpunit -c core core/modules/rest/tests/src/Functional/EntityResource/Comment/CommentJsonCookieTest.php
PHPUnit 4.8.27 by Sebastian Bergmann and contributors.

F

Time: 14.1 seconds, Memory: 6.25Mb

There was 1 failure:

1) Drupal\Tests\rest\Functional\EntityResource\Comment\CommentJsonCookieTest::testPostDxWithoutCriticalBaseFields
Failed asserting that two strings are identical.
--- Expected
+++ Actual
@@ @@
-Error: Call to a member function get() on null
-Drupal\comment\Plugin\Validation\Constraint\CommentNameConstraintValidator->getAnonymousContactDetailsSetting()() (Line: 96)
-
+Failed asserting that 200 is identical to 500.

/Users/wim.leers/Work/d8/core/modules/rest/tests/src/Functional/EntityResource/Comment/CommentResourceTestBase.php:296

FAILURES!
Tests: 1, Assertions: 7, Failures: 1.

Now I can determine the root cause.

dawehner’s picture

I think testing for 500s is tricky, as these errors might depend on PHP configurations. I think commenting this test out with the todo might be not the worst idea.

Wim Leers’s picture

My analysis in #2 pointed to the wrong code.

This is the relevant test code:

    // DX: 422 when missing 'entity_id' field.
    $request_options[RequestOptions::BODY] = $this->serializer->encode(array_diff_key($this->getNormalizedPostEntity(), ['entity_id' => TRUE]), static::$format);
    // @todo Remove the try/catch in favor of the two commented lines in
    // https://www.drupal.org/node/2820364.
    try {
      $response = $this->request('POST', $url, $request_options);
      // This happens on DrupalCI.
      $this->assertSame(500, $response->getStatusCode());
    }
    catch (\Exception $e) {
      // This happens on Wim's local machine.
      $this->assertSame("Error: Call to a member function get() on null\nDrupal\\comment\\Plugin\\Validation\\Constraint\\CommentNameConstraintValidator->getAnonymousContactDetailsSetting()() (Line: 96)\n", $e->getMessage());
    }
    //$response = $this->request('POST', $url, $request_options);
    //$this->assertResourceErrorResponse(422, "Unprocessable Entity: validation failed.\nentity_type: This value should not be null.\n", $response);

And it's that very long line below // This happens on Wim's local machine. that is failing on PHP 5.6. That try/catch is to show the difference between testbot (where the "catch" was not being used) and my local machine (where the "catch" was necessary). It seems like testbot does need that "catch" in the case of PHP 5.6, but not PHP 5.5 or PHP 7. The "catch" therefore describes inconsistencies in PHP execution behavior". But it seems like testbot fails in an even different way than my local machine. Except on PHP 5.6, it seems to match.

Investigating further…

Wim Leers’s picture

So the difference is that PHP 7 converts a fatal error to a 500 response, but PHP 5.6 (and 5.5) convert it to a 200 response. All three PHP runtimes actually produce the same fundamental error.

There are two problems here:

  1. Drupal 8 handles fatal errors differently in the case of PHP 5 (fatal error printed directly, printed as a 200 response per default PHP behavior) versus PHP 7 (prints the The website encountered an unexpected error. Please try again later. thing, and then the error, printed as 500 response per Drupal's catchable exception handling) Because fatal errors can actually be caught in PHP 7, but not in PHP 5.
  2. \Drupal\Core\Test\HttpClientMiddleware\TestHttpClientMiddleware behaves differently in PHP 5 and PHP 7.

Attached patch contains small modifications to prove these claims.

This should result in this output:

wim.leers at acquia in ~/Work/d8 on 8.3.x*
$ sphp 55
PHP version 55 found
Unlinking old binaries...
Linking new binaries...
Linking /usr/local/Cellar/php55/5.5.38_11... 17 symlinks created
Linking new modphp addon...
Fixing LoadModule...
Updating version file...
Restarting non-root homebrew Apache...
Done.

PHP 5.5.38 (cli) (built: Oct 17 2016 10:59:26) 
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
wim.leers at acquia in ~/Work/d8 on 8.3.x*
$ sudo apachectl restart
AH00548: NameVirtualHost has no effect and will be removed in the next release /usr/local/etc/apache2/2.4/httpd.conf:528
wim.leers at acquia in ~/Work/d8 on 8.3.x*
$ php vendor/bin/phpunit -c core core/modules/rest/tests/src/Functional/EntityResource/Comment/CommentJsonCookieTest.php
PHPUnit 4.8.27 by Sebastian Bergmann and contributors.

Estring(14) "This is PHP 5!"
string(224) "<br />
<b>Fatal error</b>:  Call to a member function get() on a non-object in <b>/Users/wim.leers/Work/d8/core/modules/comment/src/Plugin/Validation/Constraint/CommentNameConstraintValidator.php</b> on line <b>96</b><br />
"


Time: 12.19 seconds, Memory: 6.25Mb

There was 1 error:

1) Drupal\Tests\rest\Functional\EntityResource\Comment\CommentJsonCookieTest::testPostDxWithoutCriticalBaseFields
This test printed output: string(14) "This is PHP 5!"
string(224) "<br />
<b>Fatal error</b>:  Call to a member function get() on a non-object in <b>/Users/wim.leers/Work/d8/core/modules/comment/src/Plugin/Validation/Constraint/CommentNameConstraintValidator.php</b> on line <b>96</b><br />
"

FAILURES!
Tests: 1, Assertions: 9, Errors: 1.
wim.leers at acquia in ~/Work/d8 on 8.3.x*
$ sphp 56
PHP version 56 found
Unlinking old binaries...
Linking new binaries...
Linking /usr/local/Cellar/php56/5.6.27_4... 17 symlinks created
Linking new modphp addon...
Fixing LoadModule...
Updating version file...
Restarting non-root homebrew Apache...
Done.

PHP 5.6.27 (cli) (built: Oct 17 2016 11:11:34) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
wim.leers at acquia in ~/Work/d8 on 8.3.x*
$ sudo apachectl restart
AH00548: NameVirtualHost has no effect and will be removed in the next release /usr/local/etc/apache2/2.4/httpd.conf:528
wim.leers at acquia in ~/Work/d8 on 8.3.x*
$ php vendor/bin/phpunit -c core core/modules/rest/tests/src/Functional/EntityResource/Comment/CommentJsonCookieTest.php
PHPUnit 4.8.27 by Sebastian Bergmann and contributors.

Estring(14) "This is PHP 5!"
string(216) "<br />
<b>Fatal error</b>:  Call to a member function get() on null in <b>/Users/wim.leers/Work/d8/core/modules/comment/src/Plugin/Validation/Constraint/CommentNameConstraintValidator.php</b> on line <b>96</b><br />
"


Time: 11.8 seconds, Memory: 6.25Mb

There was 1 error:

1) Drupal\Tests\rest\Functional\EntityResource\Comment\CommentJsonCookieTest::testPostDxWithoutCriticalBaseFields
This test printed output: string(14) "This is PHP 5!"
string(216) "<br />
<b>Fatal error</b>:  Call to a member function get() on null in <b>/Users/wim.leers/Work/d8/core/modules/comment/src/Plugin/Validation/Constraint/CommentNameConstraintValidator.php</b> on line <b>96</b><br />
"

FAILURES!
Tests: 1, Assertions: 9, Errors: 1.
wim.leers at acquia in ~/Work/d8 on 8.3.x*
$ sphp 70
PHP version 70 found
Unlinking old binaries...
Linking new binaries...
Linking /usr/local/Cellar/php70/7.0.12_5... 17 symlinks created
Linking new modphp addon...
Fixing LoadModule...
Updating version file...
Restarting non-root homebrew Apache...
Done.

PHP 7.0.12 (cli) (built: Oct 17 2016 11:16:49) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.12, Copyright (c) 1999-2016, by Zend Technologies
wim.leers at acquia in ~/Work/d8 on 8.3.x*
$ sudo apachectl restart
AH00548: NameVirtualHost has no effect and will be removed in the next release /usr/local/etc/apache2/2.4/httpd.conf:528
wim.leers at acquia in ~/Work/d8 on 8.3.x*
$ php vendor/bin/phpunit -c core core/modules/rest/tests/src/Functional/EntityResource/Comment/CommentJsonCookieTest.php
PHPUnit 4.8.27 by Sebastian Bergmann and contributors.

Estring(14) "This is PHP 7!"
string(2877) "The website encountered an unexpected error. Please try again later.<br /><em class="placeholder">Error</em>: Call to a member function get() on null in <em class="placeholder">Drupal\comment\Plugin\Validation\Constraint\CommentNameConstraintValidator-&gt;getAnonymousContactDetailsSetting()</em> (line <em class="placeholder">96</em> of <em class="placeholder">core/modules/comment/src/Plugin/Validation/Constraint/CommentNameConstraintValidator.php</em>). <pre class="backtrace">Drupal\comment\Plugin\Validation\Constraint\CommentNameConstraintValidator-&gt;getAnonymousContactDetailsSetting(Object) (Line: 77)
Drupal\comment\Plugin\Validation\Constraint\CommentNameConstraintValidator-&gt;validate(Object, Object) (Line: 185)
Drupal\Core\TypedData\Validation\RecursiveContextualValidator-&gt;validateConstraints(Object, &#039;0000000002e747640000000001efe6ea&#039;, Array) (Line: 140)
Drupal\Core\TypedData\Validation\RecursiveContextualValidator-&gt;validateNode(Object, Array, 1) (Line: 99)
Drupal\Core\TypedData\Validation\RecursiveContextualValidator-&gt;validate(Object, NULL, NULL) (Line: 90)
Drupal\Core\TypedData\Validation\RecursiveValidator-&gt;validate(Object) (Line: 135)
Drupal\Core\TypedData\TypedData-&gt;validate() (Line: 381)
Drupal\Core\Entity\ContentEntityBase-&gt;validate() (Line: 29)
Drupal\rest\Plugin\rest\resource\EntityResource-&gt;validate(Object) (Line: 165)
Drupal\rest\Plugin\rest\resource\EntityResource-&gt;post(Object, Object)
call_user_func_array(Array, Array) (Line: 132)
Drupal\rest\RequestHandler-&gt;handle(Object, Object)
call_user_func_array(Array, Array) (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber-&gt;Drupal\Core\EventSubscriber\{closure}() (Line: 574)
Drupal\Core\Render\Renderer-&gt;executeInRenderContext(Object, Object) (Line: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber-&gt;wrapControllerExecutionInRenderContext(Array, Array) (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber-&gt;Drupal\Core\EventSubscriber\{closure}()
call_user_func_array(Object, Array) (Line: 139)
Symfony\Component\HttpKernel\HttpKernel-&gt;handleRaw(Object, 1) (Line: 62)
Symfony\Component\HttpKernel\HttpKernel-&gt;handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session-&gt;handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle-&gt;handle(Object, 1, 1) (Line: 99)
Drupal\page_cache\StackMiddleware\PageCache-&gt;pass(Object, 1, 1) (Line: 78)
Drupal\page_cache\StackMiddleware\PageCache-&gt;handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware-&gt;handle(Object, 1, 1) (Line: 50)
Drupal\Core\StackMiddleware\NegotiationMiddleware-&gt;handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel-&gt;handle(Object, 1, 1) (Line: 656)
Drupal\Core\DrupalKernel-&gt;handle(Object) (Line: 19)
</pre>"


Time: 7.5 seconds, Memory: 6.00Mb

There was 1 error:

1) Drupal\Tests\rest\Functional\EntityResource\Comment\CommentJsonCookieTest::testPostDxWithoutCriticalBaseFields
This test printed output: string(14) "This is PHP 7!"
string(2877) "The website encountered an unexpected error. Please try again later.<br /><em class="placeholder">Error</em>: Call to a member function get() on null in <em class="placeholder">Drupal\comment\Plugin\Validation\Constraint\CommentNameConstraintValidator-&gt;getAnonymousContactDetailsSetting()</em> (line <em class="placeholder">96</em> of <em class="placeholder">core/modules/comment/src/Plugin/Validation/Constraint/CommentNameConstraintValidator.php</em>). <pre class="backtrace">Drupal\comment\Plugin\Validation\Constraint\CommentNameConstraintValidator-&gt;getAnonymousContactDetailsSetting(Object) (Line: 77)
Drupal\comment\Plugin\Validation\Constraint\CommentNameConstraintValidator-&gt;validate(Object, Object) (Line: 185)
Drupal\Core\TypedData\Validation\RecursiveContextualValidator-&gt;validateConstraints(Object, &#039;0000000002e747640000000001efe6ea&#039;, Array) (Line: 140)
Drupal\Core\TypedData\Validation\RecursiveContextualValidator-&gt;validateNode(Object, Array, 1) (Line: 99)
Drupal\Core\TypedData\Validation\RecursiveContextualValidator-&gt;validate(Object, NULL, NULL) (Line: 90)
Drupal\Core\TypedData\Validation\RecursiveValidator-&gt;validate(Object) (Line: 135)
Drupal\Core\TypedData\TypedData-&gt;validate() (Line: 381)
Drupal\Core\Entity\ContentEntityBase-&gt;validate() (Line: 29)
Drupal\rest\Plugin\rest\resource\EntityResource-&gt;validate(Object) (Line: 165)
Drupal\rest\Plugin\rest\resource\EntityResource-&gt;post(Object, Object)
call_user_func_array(Array, Array) (Line: 132)
Drupal\rest\RequestHandler-&gt;handle(Object, Object)
call_user_func_array(Array, Array) (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber-&gt;Drupal\Core\EventSubscriber\{closure}() (Line: 574)
Drupal\Core\Render\Renderer-&gt;executeInRenderContext(Object, Object) (Line: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber-&gt;wrapControllerExecutionInRenderContext(Array, Array) (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber-&gt;Drupal\Core\EventSubscriber\{closure}()
call_user_func_array(Object, Array) (Line: 139)
Symfony\Component\HttpKernel\HttpKernel-&gt;handleRaw(Object, 1) (Line: 62)
Symfony\Component\HttpKernel\HttpKernel-&gt;handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session-&gt;handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle-&gt;handle(Object, 1, 1) (Line: 99)
Drupal\page_cache\StackMiddleware\PageCache-&gt;pass(Object, 1, 1) (Line: 78)
Drupal\page_cache\StackMiddleware\PageCache-&gt;handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware-&gt;handle(Object, 1, 1) (Line: 50)
Drupal\Core\StackMiddleware\NegotiationMiddleware-&gt;handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel-&gt;handle(Object, 1, 1) (Line: 656)
Drupal\Core\DrupalKernel-&gt;handle(Object) (Line: 19)
</pre>"

FAILURES!
Tests: 1, Assertions: 9, Errors: 1.
Wim Leers’s picture

#6.2 accuses \Drupal\Core\Test\HttpClientMiddleware\TestHttpClientMiddleware inappropriately. There's nothing it can do about that. Because it can only throw exceptions for those things that PHP itself threw exceptions for during the request. Any exceptions are transformed to X-Drupal-Assertion-<ID> headers. In this case:

X-Drupal-Assertion-0: a%3A3%3A%7Bi%3A0%3Bs%3A39%3A%22Call%20to%20a%20member%20function%20get%28%29%20on%20null%22%3Bi%3A1%3Bs%3A5%3A%22Error%22%3Bi%3A2%3Ba%3A3%3A%7Bs%3A8%3A%22function%22%3Bs%3A111%3A%22Drupal%5Ccomment%5CPlugin%5CValidation%5CConstraint%5CCommentNameConstraintValidator-%3EgetAnonymousContactDetailsSetting%28%29%22%3Bs%3A4%3A%22file%22%3Bs%3A113%3A%22%2FUsers%2Fwim.leers%2FWork%2Fd8%2Fcore%2Fmodules%2Fcomment%2Fsrc%2FPlugin%2FValidation%2FConstraint%2FCommentNameConstraintValidator.php%22%3Bs%3A4%3A%22line%22%3Bi%3A96%3B%7D%7D

… but that's only going to happen on PHP 7. And TestHttpClientMiddleware of course can only throw exceptions for those response headers it finds. So the difference in behavior I perceived in #6 is entirely attributable to PHP 7 vs PHP 5 (able to catch fatal errors vs not).

It could be argued that it's up to D8's error handler to ignore PHP 7 catchable fatal errors for consistency with PHP 5, but there are probably good reasons not do to that.

Wim Leers’s picture

Issue tags: +PHP 7.0 (duplicate), +php 7 fatal error
Wim Leers’s picture

The last submitted patch, 6: 2832013-prove-difference-between-php5-and-php7.patch, failed testing.

Status: Needs review » Needs work

The last submitted patch, 9: 2832013-9.patch, failed testing.

alexpott’s picture

+++ b/core/modules/rest/tests/src/Functional/EntityResource/Comment/CommentResourceTestBase.php
@@ -288,11 +288,16 @@ public function testPostDxWithoutCriticalBaseFields() {
+      if (version_compare(phpversion(), '7.0') < 0) {

Should this if have an else and fail if we get there - or should it not exist at all?

Wim Leers’s picture

Hm, this is interesting. Drupal CI's PHP 5.5 is apparently configured to serve a 500 response instead of the default 200 response for fatal errors. But, we honestly don't care too much about the status code. It's the fact that there's a fatal error … that we do care about.

So, this should do the trick.

Wim Leers’s picture

Version: 8.3.x-dev » 8.2.x-dev

This also applies to Drupal 8.2 BTW.

Also queuing #14 to be tested against 8.2.x, and also against PHP 5.5, 5.6 and 7.0.

michielnugter’s picture

I'm having a little trouble with the 2 different approaches for validating the error message. For php < 7.0 only parts of the error are validated. For php >= 7.0 the complete error message is validated. If even a single line is added to CommentNameConstraintValidator.php the test will pass in php < 7.0 and fail in php >= 7.0, to me for no good reason.

I changed it a little to use the same logic. I don't have php 7 or 5.6 running yet so the attached patch might fail, sorry for that.

The last submitted patch, 13: 2832013-12.patch, failed testing.

The last submitted patch, 14: 2832013-14.patch, failed testing.

Wim Leers’s picture

Hm, still failing on 5.5. It seems like Drupal CI's PHP 5.5 is doing some strange things…

(Ironic that the problem now "jumped" from 5.6 to 5.5…)

Status: Needs review » Needs work

The last submitted patch, 16: 2832013-16.patch, failed testing.

michielnugter’s picture

I can't really wrap my head around the exact problem as it's impossible to reproduce locally (on php 5.5).

As I saw discussed on IRC: it's the difference in the way the error is reported.

The basic variations are something like:
- Call to a member function get() on null
- Call to a member function get() on CommentNameConstraintValidator

How important is it to check on the CommentNameConstraintValidator? I removed that check form this patch, let's see if that fixes the problem.

Status: Needs review » Needs work

The last submitted patch, 21: 2832013-21.patch, failed testing.

catch’s picture

I think we should comment out the assertions to get HEAD back to passing on 5.6, then open another issue to uncomment them, but that is likely to require #2688999: Default all responses to 500 before any code is run so PHP will throw 500's on FATAL errors really.

catch’s picture

Here's a patch for that. The existing @todo is sufficient if this is going to move to a 422 eventually anyway.

xjm’s picture

#24 works for me to hotfix the test without rolling back the whole patch, so long as it's explicitly in scope for the followup.

I queued all the environments.

catch’s picture

The postgres fail is

Outside_in.Drupal\Tests\outside_in\FunctionalJavascript\OutsideInBlockFormTest

to save people looking.

Wim Leers’s picture

Assigned: Wim Leers » Unassigned
Status: Needs review » Reviewed & tested by the community

Yep, #24 is the rougher option that @dawehner proposed in #4. That is obviously guaranteed to work. I'd have preferred to strictly validate the fatal error, but it's really a nit. We can indeed comment its assertions, and the follow-up (#2820364: Entity + Field + Property validation constraints are processed in the incorrect order) A) definitely removes all that hackiness and B) is already in progress!

So, moving this to RTBC.


For future readers: the fail catch mentioned in #26 is a known current random fail: #2830485: \Drupal\Tests\outside_in\FunctionalJavascript\OutsideInBlockFormTest fails randomly.

alexpott’s picture

Status: Reviewed & tested by the community » Fixed

Committed and pushed f7aed20 to 8.3.x and d34d9dc to 8.2.x. Thanks!

It seems like we have all the followups planned - we could add @todos but the test fails are worse... moving on.

  • alexpott committed f7aed20 on 8.3.x
    Issue #2832013 by Wim Leers, michielnugter, catch:...

  • alexpott committed d34d9dc on 8.2.x
    Issue #2832013 by Wim Leers, michielnugter, catch:...
Wim Leers’s picture

Yep, all follow-ups planned!

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.

apaderno’s picture

Issue tags: -php 7 fatal error