Bug #78903 [ReO->Csd]: Conflict in RTD key for closures results in crash

From: Date: Fri, 13 Dec 2019 12:11:42 +0000
Subject: Bug #78903 [ReO->Csd]: Conflict in RTD key for closures results in crash
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-224270@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=78903&edit=1

 ID:                 78903
 Updated by:         nikic@php.net
 Reported by:        chartjes at grumpy-learning dot com
 Summary:            Conflict in RTD key for closures results in crash
-Status:             Re-Opened
+Status:             Closed
 Type:               Bug
 Package:            Reproducible crash
 Operating System:   macOS 10.15.1
 PHP Version:        7.4.0
 Assigned To:        nikic
 Block user comment: N
 Private report:     N

 New Comment:

Fixed in https://github.com/php/php-src/commit/0f2cdbf214efd98b4bdaf5ca41728faf00e7c037.


Previous Comments:
------------------------------------------------------------------------
[2019-12-11 13:42:05] nikic@php.net

Reverted because it breaks ext/opcache/tests/bug65915.phpt.

------------------------------------------------------------------------
[2019-12-11 13:40:12] nikic@php.net

Automatic comment on behalf of nikita.ppv@gmail.com
Revision: http://git.php.net/?p=php-src.git;a=commit;h=502cd7b1f154cd58d53e1a7415b8900e76aa6cea
Log: Revert "Fixed bug #78903: Conflict in RTD key for closures results in crash"

------------------------------------------------------------------------
[2019-12-11 12:10:41] nikic@php.net

Tests run through now with one failure that also exists on 7.3:

1) OpenCFP\Test\Integration\Http\Controller\Admin\SpeakersControllerTest::indexActionWorksCorrectly

Warning: sprintf(): Too few arguments in
/home/nikic/repos/opencfp/vendor/codedungeon/phpunit-result-printer/src/ResultPrinter71.php on line
77

/home/nikic/repos/opencfp/tests/Helper/ResponseHelper.php:60
/home/nikic/repos/opencfp/tests/Integration/Http/Controller/Admin/SpeakersControllerTest.php:43

------------------------------------------------------------------------
[2019-12-11 12:08:22] nikic@php.net

Automatic comment on behalf of nikita.ppv@gmail.com
Revision: http://git.php.net/?p=php-src.git;a=commit;h=b55033fa18afd9bb60fc4537270266d808ec0868
Log: Fixed bug #78903: Conflict in RTD key for closures results in crash

------------------------------------------------------------------------
[2019-12-11 11:29:52] nikic@php.net

Initial analysis suggests that this is caused by an RTD key collision. While a closure is being
executed, the file that defines the closure is re-compiled and a colliding RTD key is generated,
replacing the original closure. This is a long-standing problem without an easy fix, but we can at
least mitigate this in a similar way we do for anon classes.

This likely also indicates a bug/inefficiency in Laravel, because it likely shouldn't be
loading the same file twice.

[0x7fac0481b5d0]
Illuminate\Database\Eloquent\Factory->load("/home/nikic/repos/opencfp/tests/../factories")
/home/nikic/repos/opencfp/vendor/illuminate/database/Eloquent/Factory.php:202 
[0x7fac0481b500] Illuminate\Database\Eloquent\Factory->construct(object[0x7fac0481b550],
"/home/nikic/repos/opencfp/tests/../factories")
/home/nikic/repos/opencfp/vendor/illuminate/database/Eloquent/Factory.php:54 
[0x7fac0481b310] factory(object[0x7fac0481b360]) /home/nikic/repos/opencfp/tests/helpers.php:28 
[0x7fac0481b280] Illuminate\Database\Eloquent\Factory->{closure}()
/home/nikic/repos/opencfp/factories/Common.php:36

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=78903


--
Edit this bug report at https://bugs.php.net/bug.php?id=78903&edit=1


Thread (13 messages)

« previous php.bugs (#224270) next »