Last passing PHP7 + Mysql / postgres that passed is https://dispatcher.drupalci.org/job/php7_mysql5.5/778/consoleFull
First fail is https://dispatcher.drupalci.org/job/php7_mysql5.5/779/consoleFull
Fatal error: Declaration of PDOStatement::fetch($how = NULL, $orientation = NULL, $offset = NULL) must be compatible with Drupal\Core\Database\StatementInterface::fetch($mode = NULL, $cursor_orientation = NULL, $cursor_offset = NULL) in /var/www/html/core/lib/Drupal/Core/Database/Statement.php on line 21
This code has not changed since 2015
The one difference I could spot in the output that might cause this is:
PHP 7.0.6-dev (cli) (built: Mar 28 2016 22:54:02) ( NTS ) - The failing tests
PHP 7.0.6-dev (cli) (built: Mar 27 2016 22:53:45) ( NTS ) - The passing tests
Maybe something has changed on PHP7 - looked at the recent git log of php and couldn't find anything.
Comments
Comment #2
alexpott@catch found https://github.com/php/php-src/commit/ee9a78a033696ff9546fb1dbfecd28f204...
This might be something we can fix.
Comment #3
alexpottComment #4
alexpottComment #5
alexpottMissed a bit.
Comment #6
catchTo save people looking, here's the new fail:
Comment #7
catchI think this is probably a bad PHP7 commit, left a comment on https://github.com/php/php-src/commit/ee9a78a033696ff9546fb1dbfecd28f204...
However agreed with @alexpott it's potentially fixable.
Here's a patch (after a few iterations that didn't work) that stops the PDO error. I had to implement the method in Statement so that this gets compared to the interface instead of the one from PDO.
After that, there are lots of new fun fails, but it's not every test.
Comment #8
catchMinus some cruft.
Comment #11
catchOK that explains the PHP7 error, now just to fix obvious breakage in my actual patch.
This isn't committable yet, just want to get a green run.
The reason sqlite didn't fail is because StatementPrefetch already overrides PDOStatement::fetch() and sqlite extends from that.
Comment #12
catchMinimal change now. We could rename the function params on StatementPrefetch to match in a follow-up.
Comment #13
alexpottHmmm fun....
Is how this is documented...
Apparently PHP7 has been fixed so maybe this is not a problem anymore... I guess we'll see in tonights builds.
Comment #14
wim leersIndeed, they reported 2 hours ago that they pushed fixes.
Comment #15
catchMoving to 'postponed' so it's clear we just need a new test run.
Comment #17
daffie commentedThose bugs are long gone.