BTW we discover and fix a bug here... ::processRootRollback() above already voids the item, so calling ::voidStackItem() on it fails, since it's removed from the stack.
The fact that nobody complained (this is a missing offset error just after the warning) probably tells a lot about whether this code path occurs in real world...
In our testing ATM, we do not get to ::voidStackItem() because in testTransactionWithDdlStatement() the warning is transformed into an exception (in PHPUnit 9), and then caught and never returning to code execution.
BTW we discover and fix a bug here...
::processRootRollback()
above already voids the item, so calling::voidStackItem()
on it fails, since it's removed from the stack.The fact that nobody complained (this is a missing offset error just after the warning) probably tells a lot about whether this code path occurs in real world...
In our testing ATM, we do not get to
::voidStackItem()
because intestTransactionWithDdlStatement()
the warning is transformed into an exception (in PHPUnit 9), and then caught and never returning to code execution.By removing the trigger_error for PHPUnit 10 we could see the bug and fix here.