Bug #79798 [Fbk->Opn]: "Uncaught TypeError: Illegal offset type" with PHP 8.0-dev JIT on Windows
Edit report at https://bugs.php.net/bug.php?id=79798&edit=1
ID: 79798
Updated by: nikic@php.net
Reported by: sebastian@php.net
Summary: "Uncaught TypeError: Illegal offset type" with PHP
8.0-dev JIT on Windows
-Status: Feedback
+Status: Open
Type: Bug
Package: JIT
Operating System: Windows
PHP Version: 8.0Git-2020-07-06 (Git)
Block user comment: N
Private report: N
New Comment:
Ah, I missed the fact that this is a Windows only issue, so of course it doesn't reproduce for
me... Can't help then.
Previous Comments:
------------------------------------------------------------------------
[2020-10-16 05:08:09] sebastian@php.net
The php-token-stream library has been abandoned and is no longer used by PHPUnit /
php-code-coverage. That explains why the issue (if it were still around, which I do not know) does
not show up in CI.
------------------------------------------------------------------------
[2020-10-15 12:45:11] nikic@php.net
Is this still an issue? At least looking at your GH actions, the jit config seems to be passing.
------------------------------------------------------------------------
[2020-07-06 07:50:17] sebastian@php.net
Description:
------------
The error shown below is triggered while running the tests for PHPUnit 9.3 (master) with PHP 8.0-dev
and JIT (opcache.enable=1, opcache.enable_cli=1, opcache.optimization_level=-1, opcache.jit=1205,
opcache.jit_buffer_size=4096M) on Windows:
PHP Fatal error: Uncaught TypeError: Illegal offset type in
D:\a\phpunit\phpunit\vendor\phpunit\php-token-stream\src\Token\Stream.php:658
Stack trace:
#0 D:\a\phpunit\phpunit\vendor\phpunit\php-token-stream\src\Token\Stream.php(622):
PHP_Token_Stream->addFunctionToMap()
#1 D:\a\phpunit\phpunit\vendor\phpunit\php-token-stream\src\Token\Stream.php(175):
PHP_Token_Stream->parse()
#2 D:\a\phpunit\phpunit\vendor\phpunit\php-code-coverage\src\Node\File.php(478):
PHP_Token_Stream->getClasses()
#3 D:\a\phpunit\phpunit\vendor\phpunit\php-code-coverage\src\Node\File.php(354):
SebastianBergmann\CodeCoverage\Node\File->processClasses()
#4 D:\a\phpunit\phpunit\vendor\phpunit\php-code-coverage\src\Node\File.php(145):
SebastianBergmann\CodeCoverage\Node\File->calculateStatistics()
#5 D:\a\phpunit\phpunit\vendor\phpunit\php-code-coverage\src\Node\Directory.php(165):
SebastianBergmann\CodeCoverage\Node\File->__construct()
#6 D:\a\phpunit\phpunit\vendor\phpunit\php-code-coverage\src\Node\Builder.php(59):
SebastianBergmann\CodeCoverage\Node\Directory->addFile()
#7 D:\a\phpunit\phpunit\vendor\phpunit\php-code-coverage\src\Node\Builder.php(63):
SebastianBergmann\CodeCoverage\Node\Builder->addItems()
#8 D:\a\phpunit\phpunit\vendor\phpunit\php-code-coverage\src\Node\Builder.php(63):
SebastianBergmann\CodeCoverage\Node\Builder->addItems()
#9 D:\a\phpunit\phpunit\vendor\phpunit\php-code-coverage\src\Node\Builder.php(63):
SebastianBergmann\CodeCoverage\Node\Builder->addItems()
#10 D:\a\phpunit\phpunit\vendor\phpunit\php-code-coverage\src\Node\Builder.php(44):
SebastianBergmann\CodeCoverage\Node\Builder->addItems()
#11 D:\a\phpunit\phpunit\vendor\phpunit\php-code-coverage\src\CodeCoverage.php(147):
SebastianBergmann\CodeCoverage\Node\Builder->build()
#12 D:\a\phpunit\phpunit\vendor\phpunit\php-code-coverage\src\Report\Clover.php(55):
SebastianBergmann\CodeCoverage\CodeCoverage->getReport()
#13 D:\a\phpunit\phpunit\src\TextUI\TestRunner.php(706):
SebastianBergmann\CodeCoverage\Report\Clover->process()
#14 D:\a\phpunit\phpunit\src\TextUI\Command.php(134): PHPUnit\TextUI\TestRunner->run()
#15 D:\a\phpunit\phpunit\src\TextUI\Command.php(94): PHPUnit\TextUI\Command->run()
#16 D:\a\phpunit\phpunit\phpunit(61): PHPUnit\TextUI\Command::main()
#17 {main}
thrown in D:\a\phpunit\phpunit\vendor\phpunit\php-token-stream\src\Token\Stream.php on line 658
This is the GitHub Action in question: https://github.com/sebastianbergmann/phpunit/runs/840483759?check_suite_focus=true
The code in question looks like this:
656 private function addFunctionToMap($name, $startLine, $endLine): void
656 {
657 for ($line = $startLine; $line <= $endLine; $line++) {
658 $this->lineToFunctionMap[$line] = $name;
659 }
660 }
https://github.com/sebastianbergmann/php-token-stream/blob/4.0.3/src/Token/Stream.php#L658
The error is not triggered with PHP 8.0-dev and JIT on Linux (or with any other PHP configuration
that is tested against in PHPUnit's CI pipeline).
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=79798&edit=1
Thread (6 messages)