| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
|
|
|
|
| |
Signed-off-by: Varun Patil <varunpatil@ucla.edu>
|
|
|
|
| |
Signed-off-by: Robin Appelman <robin@icewind.nl>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We are checking whether the DB connection is alive once every 30 seconds. But when we are lacking the last check time, we are skipping the check and reconnect logic. This is causing the reconnect logic to never fire in those cases.
It seems to me that "those cases", are actually always the case, as upon initialization, we are not using the proper connection name to store the time.
In the `connect()` logic, when `$this->_conn` is null, `$this->getConnectionName()` is returning `replica`, so `$this->lastConnectionCheck` will be equal to `['replica' => time()];`
https://github.com/nextcloud/server/blob/60711ea4cfde6f53d0b18bcd7e166a34a43056a5/lib/private/DB/Connection.php#L215-L221
https://github.com/nextcloud/server/blob/60711ea4cfde6f53d0b18bcd7e166a34a43056a5/lib/private/DB/Connection.php#L891-L893
https://github.com/nextcloud/3rdparty/blob/2b6d7bf65ff242ea050e736925f752a38d8da220/doctrine/dbal/src/Connections/PrimaryReadReplicaConnection.php#L136-L139
Then, if the connection name ends up as being 'primary', the reconnect logic is skipped:
https://github.com/nextcloud/server/blob/60711ea4cfde6f53d0b18bcd7e166a34a43056a5/lib/private/DB/Connection.php#L874-L880
Follow-up of https://github.com/nextcloud/server/pull/41819
Signed-off-by: Louis Chemineau <louis@chmn.me>
|
|
|
|
| |
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
|
|
|
|
| |
Signed-off-by: provokateurin <kate@provokateurin.de>
|
|
|
|
| |
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
|
|
|
|
| |
Signed-off-by: Robin Appelman <robin@icewind.nl>
|
|
|
|
| |
Signed-off-by: Robin Appelman <robin@icewind.nl>
|
|
|
|
| |
Signed-off-by: Robin Appelman <robin@icewind.nl>
|
|
|
|
| |
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
|
|
|
|
| |
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
|
|
|
|
|
|
| |
including the stack trace of the current database transaction
Signed-off-by: Robin Appelman <robin@icewind.nl>
|
|
|
|
| |
Signed-off-by: Joas Schilling <coding@schilljs.com>
|
|
|
|
|
|
| |
`IExpressionBuilder::and()` without parameters
Signed-off-by: Joas Schilling <coding@schilljs.com>
|
|
|
|
|
|
| |
removed upstream platforms
Signed-off-by: Joas Schilling <coding@schilljs.com>
|
|
|
|
| |
Signed-off-by: Joas Schilling <coding@schilljs.com>
|
|
|
|
|
|
| |
deprecated
Signed-off-by: Joas Schilling <coding@schilljs.com>
|
|\
| |
| | |
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
|
| |
| |
| |
| | |
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
|
| |\
| | |
| | |
| | |
| | | |
nextcloud/enh/set-nest-transactions-with-savepoints
set Doctrine to use nest transactions with savepoints
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Using nested transactions without savepoints is actually deprecated by Doctrine:
https://www.doctrine-project.org/projects/doctrine-dbal/en/current/reference/transactions.html#transaction-nesting
Without savepoints, a nested transaction can be rollbacked but not
handled properly in the "real" transaction, leading to the following
error:
Transaction commit failed because the transaction has been marked for rollback only.
Ref
https://github.com/nextcloud/server/pull/36528#issuecomment-1639913965
(and possibly) https://github.com/nextcloud/server/issues/38902#issuecomment-1598075391
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
|
| | |
| | |
| | | |
Signed-off-by: Josh <josh.t.richards@gmail.com>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Robin Appelman <robin@icewind.nl>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Robin Appelman <robin@icewind.nl>
|
| | |
| | |
| | | |
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
|
| |/
| |
| |
| | |
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
|
| |\
| | |
| | | |
fix(db): Let dirty writes cool off
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We can assume that after a few seconds a read will be clean again.
This is helpful for false warnings in long running processes.
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
|
| | |
| | |
| | |
| | | |
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
|
| |/
| |
| |
| | |
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
|
| |
| |
| |
| | |
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
|
| |
| |
| |
| | |
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
|
| |\
| | |
| | | |
fix(db): Do not log transacted reads as dirty read
|
| | |
| | |
| | |
| | | |
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
|
| |/
| |
| |
| | |
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
|
| |
| |
| |
| | |
Signed-off-by: Julius Härtl <jus@bitgrid.net>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
replicas if reads go to other tables
Signed-off-by: Julius Härtl <jus@bitgrid.net>
debug: error log
Signed-off-by: Julius Härtl <jus@bitgrid.net>
|
| |
| |
| |
| | |
Signed-off-by: Julius Härtl <jus@bitgrid.net>
|
| |
| |
| |
| | |
Signed-off-by: Julius Härtl <jus@bitgrid.net>
|
| |
| |
| |
| |
| | |
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
|
| |
| |
| |
| | |
Signed-off-by: Joas Schilling <coding@schilljs.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Postgres 10 is the minimum in the meantime
and doctrine/dbal fixed this in 2.6.0 already
ref https://github.com/doctrine/dbal/pull/2614
Signed-off-by: Joas Schilling <coding@schilljs.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- I installed current master and exported the schema as SQL
- Then I went to this branch, removed the content of the run() method (so made it no-op)
- I installed again and exported the schema as SQL
- The files are exactly the same, so whatever we tried to fix was fixed since 2015 in doctrine dbal
Signed-off-by: Joas Schilling <coding@schilljs.com>
|
| |
| |
| |
| | |
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
|
|/
|
|
| |
Signed-off-by: Andrew Summers <18727110+summersab@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
| |
This seems to be a left over after abstracting DBAL. Nowadays,
IQueryBuilder::executeStatement() only throws a \OCP\DB\Exception, where
previously original DBAL exceptions where thrown. These are now wrapped,
the orignal classes are now mapped to a reason.
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
|
|
|
|
| |
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
|
|
|
|
| |
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
|