While working on #1120020: SQLite database locking errors cause fatal errors i found some erroneous static calls to PDO nonstatic methods (which will afaict thwrow exceptions in all cases, so setting critical).
Also some parent methods were called where i could not make sense of it.
Most fixes seem quite straightforward, others need some review.

sqlite\Connection::rollback() looks like a forgotten dup of its parent.
if we're at it, we should re-case all occurences of rollback to rollBack.

This surely needs review from someone that is deeper into DB, so i'm putting this into one issue instead of opening a handful.

Comments

geek-merlin’s picture

Status: Active » Needs review
StatusFileSize
new4.14 KB

Status: Needs review » Needs work

The last submitted patch, 0001-Issue-1764454-by-axel.rutz-Fixed-Erroneous-static-PD.patch, failed testing.

geek-merlin’s picture

found an omission, rerolled and of course made do-not-test

aspilicious’s picture

Why do not test? o_O

JimmyAx’s picture

Status: Needs work » Needs review
webchick’s picture

I'm not sure either. Here's a re-upload of alex's patch. Please do not credit me on commit.

Also, we are currently over thresholds. Is this actually a critical bug, worth stopping other D8 features from being committed until we solve it?

Status: Needs review » Needs work

The last submitted patch, 0001-Issue-1764454-by-axel.rutz-Fixed-Erroneous-static-PD.patch, failed testing.

webchick’s picture

Priority: Critical » Normal
Status: Needs work » Needs review

Well I guess that's why. ;)

I'm going to pre-emptively reduce this in priority to "normal." If this is wrong, please re-adjust, and clarify using the guidelines at Priority levels of issues.

damien tournoud’s picture

Status: Needs review » Needs work

Most of those are actually valid. They are not static calls, but direct calls to a method at one point in the inheritance tree (which PHP allows us to do).

For example: DatabaseConnection::commit() (sub-class of PDO) returns an exception, because we can't allow people to mess up the transaction stack by committing themselves. When DatabaseConnection_mysql (sub-class of DatabaseConnection) needs to do the actual commit, it calls PDO::commit() directly.

damien tournoud’s picture

Issue summary: View changes

added critical

Version: 8.0.x-dev » 8.1.x-dev

Drupal 8.0.6 was released on April 6 and is the final bugfix release for the Drupal 8.0.x series. Drupal 8.0.x will not receive any further development aside from security fixes. Drupal 8.1.0-rc1 is now available and sites should prepare to update to 8.1.0.

Bug reports should be targeted against the 8.1.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

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

Drupal 8.1.9 was released on September 7 and is the final bugfix release for the Drupal 8.1.x series. Drupal 8.1.x will not receive any further development aside from security fixes. Drupal 8.2.0-rc1 is now available and sites should prepare to upgrade to 8.2.0.

Bug reports should be targeted against the 8.2.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

daffie’s picture

Issue summary: View changes
Status: Needs work » Closed (fixed)

The problem from the IS are already fixed in D8.

I created a new issue for renaming the Drupal\Core\Database\Connection::rollback() method to Drupal\Core\Database\Connection::rollBack(). See #2801899: Rename Drupal\Core\Database\Connection::rollback() to Drupal\Core\Database\Connection::rollBack().

Added in that issue that commit credits should be given to @axel.rutz.