Add a warning when the transaction isolation level is not READ_COMMITED (#24915)

This commit is contained in:
Joas Schilling 2016-05-31 16:11:51 +02:00 committed by Thomas Müller
parent 95cdbd45b8
commit 9070fd2c03
2 changed files with 22 additions and 0 deletions

View File

@ -100,6 +100,19 @@ $externalBackends = (count($backends) > 1) ? true : false;
$template->assign('encryptionReady', \OC::$server->getEncryptionManager()->isReady());
$template->assign('externalBackendsEnabled', $externalBackends);
/** @var \Doctrine\DBAL\Connection $connection */
$connection = \OC::$server->getDatabaseConnection();
try {
if ($connection->getDatabasePlatform() instanceof \Doctrine\DBAL\Platforms\SqlitePlatform) {
$template->assign('invalidTransactionIsolationLevel', false);
} else {
$template->assign('invalidTransactionIsolationLevel', $connection->getTransactionIsolation() !== \Doctrine\DBAL\Connection::TRANSACTION_READ_COMMITTED);
}
} catch (\Doctrine\DBAL\DBALException $e) {
// ignore
$template->assign('invalidTransactionIsolationLevel', false);
}
$encryptionModules = \OC::$server->getEncryptionManager()->getEncryptionModules();
$defaultEncryptionModuleId = \OC::$server->getEncryptionManager()->getDefaultEncryptionModuleId();

View File

@ -97,6 +97,15 @@ if (!$_['isAnnotationsWorking']) {
<?php
}
// Is the Transaction isolation level READ_COMMITED?
if ($_['invalidTransactionIsolationLevel']) {
?>
<li>
<?php p($l->t('Your database does not run with "READ COMMITED" transaction isolation level. This can cause problems when multiple actions are executed in parallel.')); ?>
</li>
<?php
}
// Windows Warning
if ($_['WindowsWarning']) {
?>