Database locked error. Recent upgrade to Nextcloud 19.0.2

[details=“Support intro”]
Nextcloud version (eg, 18.0.2): 19.0.2
Operating system and version (eg, Ubuntu 20.04): Debian 10.5 “buster”
Apache or nginx version (eg, Apache 2.4.25): apache2 2.4.38-3+deb10u3
PHP version (eg, 7.1): PHP 7.3.19-1~deb10u1

The issue you are facing:

I recently upgraded to Nextcloud 19.0.2. All of this is on Debian 10.5 “buster”.

I run a script occasionally that “ages” files so that I have up to three backups, with different extensions. It simply deletes the oldest version, then renames file in order to age them. The result is up to four changes in very quick order, all in the same directory.

I just did this in a directory covered by Nextcloud. It went to sync, and produced an error that the database (sqlite3 3.27.2-3) was locked. lsof indicates that the database is opened by user apache2, which sounds right. Restarting apache does not get rid of the lock error.

I now have four copies of this in nextcloud-error.log.

[Sun Aug 30 14:31:56.270527 2020] [php7:error] [pid 62987] [client 192.168.10.1:50050] PHP Fatal error:  Uncaught PDOException: SQLSTATE[HY000]: General error: 5 database is locked in /var/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:117\nStack trace:\n#0 /var/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(117): PDOStatement->execute(Array)\n#1 /var/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1056): Doctrine\\DBAL\\Driver\\PDOStatement->execute(Array)\n#2 /var/www/nextcloud/lib/private/DB/Connection.php(214): Doctrine\\DBAL\\Connection->executeUpdate('UPDATE "oc_file...', Array, Array)\n#3 /var/www/nextcloud/lib/private/Lock/DBLockingProvider.php(229): OC\\DB\\Connection->executeUpdate('UPDATE "oc_file...', Array)\n#4 /var/www/nextcloud/lib/private/Lock/AbstractLockingProvider.php(126): OC\\Lock\\DBLockingProvider->releaseLock('files/23d9b3887...', 2)\n#5 /var/www/nextcloud/lib/private/Lock/DBLockingProvider.php(295): OC\\Lock\\AbstractLockingProvider->releaseAll()\n#6 [internal function]: OC\\Lock\\DBLockingProvider->releaseAll()\n#7 {main}\n\n in /var/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLiteDriver.php on line 25

Is this the first time you’ve seen this error? (Y/N):

Yes.

The output of your Nextcloud log in Admin > Logging:

		Time
Fatal	webdav	Doctrine\DBAL\Exception\LockWaitTimeoutException: An exception occurred while executing 'UPDATE "oc_file_locks" SET "lock" = 0 WHERE "key" = ? AND "lock" = -1' with params ["files\/c36b545fd9039ae62dc12eb0e72a8267"]: SQLSTATE[HY000]: General error: 5 database is locked		2020-08-30T14:46:15-0600
Fatal	webdav	Doctrine\DBAL\Exception\LockWaitTimeoutException: An exception occurred while executing 'UPDATE "oc_file_locks" SET "lock" = 0 WHERE "key" = ? AND "lock" = -1' with params ["files\/ca0a54b234aa1d05baa0b4afd21f2941"]: SQLSTATE[HY000]: General error: 5 database is locked		2020-08-30T14:46:15-0600
Fatal	webdav	Doctrine\DBAL\Exception\LockWaitTimeoutException: An exception occurred while executing 'UPDATE "oc_file_locks" SET "lock" = 0 WHERE "key" = ? AND "lock" = -1' with params ["files\/5510307f1e2f716cb1eaaec49d49ca73"]: SQLSTATE[HY000]: General error: 5 database is locked		2020-08-30T14:31:56-0600

The output of your config.php file in /path/to/nextcloud (make sure you remove any identifiable information!):

# cat /var/www/nextcloud/config/config.php
<?php
$CONFIG = array (
  'instanceid' => 'redacted',
  'passwordsalt' => 'redacted',
  'secret' => 'redacted',
  'trusted_domains' => 
  array (
    0 => 'nextcloud',
    1 => 'nextcloud.localdomain',
    2 => 'localhost',
    3 => 'localhost.localdomain',
    4 => '<redacted>',
    5 => 'dzur',
    6 => 'dzur.localdomain',
  ),
  'datadirectory' => '/var/local/nc.data',
  'overwrite.cli.url' => 'https://dzur.localdomain/nextcloud',
  'dbtype' => 'sqlite3',
  'version' => '19.0.2.2',
  'installed' => true,
  'mail_from_address' => 'nextcloud',
  'mail_smtpmode' => 'smtp',
  'mail_domain' => 'dzur.localdomain',
  'maintenance' => false,
  'theme' => '',
  'loglevel' => 2,
  'mail_smtphost' => 'localhost',
  'updater.release.channel' => 'stable',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'app_install_overwrite' => 
  array (
    0 => 'calendar',
  ),
  'updater.secret' => 'redacted',
);

The output of your Apache/nginx/system log in /var/log/____:

root@dzur:/var/log/apache2# cat nextcloud-error.log
[Sun Aug 30 00:00:12.314117 2020] [ssl:warn] [pid 56292] AH01906: nextcloud.localdomain:443:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Sun Aug 30 00:00:12.314206 2020] [ssl:warn] [pid 56292] AH01909: nextcloud.localdomain:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 30 08:18:50.418294 2020] [access_compat:error] [pid 62987] [client 192.168.10.1:45954] AH01797: client denied by server configuration: /var/www/nextcloud/config
[Sun Aug 30 08:18:50.418510 2020] [access_compat:error] [pid 62988] [client 192.168.10.1:57432] AH01797: client denied by server configuration: /var/www/nextcloud/config
[Sun Aug 30 14:31:56.270527 2020] [php7:error] [pid 62987] [client 192.168.10.1:50050] PHP Fatal error:  Uncaught PDOException: SQLSTATE[HY000]: General error: 5 database is locked in /var/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:117\nStack trace:\n#0 /var/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(117): PDOStatement->execute(Array)\n#1 /var/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1056): Doctrine\\DBAL\\Driver\\PDOStatement->execute(Array)\n#2 /var/www/nextcloud/lib/private/DB/Connection.php(214): Doctrine\\DBAL\\Connection->executeUpdate('UPDATE "oc_file...', Array, Array)\n#3 /var/www/nextcloud/lib/private/Lock/DBLockingProvider.php(229): OC\\DB\\Connection->executeUpdate('UPDATE "oc_file...', Array)\n#4 /var/www/nextcloud/lib/private/Lock/AbstractLockingProvider.php(126): OC\\Lock\\DBLockingProvider->releaseLock('files/23d9b3887...', 2)\n#5 /var/www/nextcloud/lib/private/Lock/DBLockingProvider.php(295): OC\\Lock\\AbstractLockingProvider->releaseAll()\n#6 [internal function]: OC\\Lock\\DBLockingProvider->releaseAll()\n#7 {main}\n\n in /var/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLiteDriver.php on line 25
[Sun Aug 30 14:46:15.755612 2020] [php7:error] [pid 67593] [client 192.168.10.1:50366] PHP Fatal error:  Uncaught PDOException: SQLSTATE[HY000]: General error: 5 database is locked in /var/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:117\nStack trace:\n#0 /var/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(117): PDOStatement->execute(Array)\n#1 /var/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1056): Doctrine\\DBAL\\Driver\\PDOStatement->execute(Array)\n#2 /var/www/nextcloud/lib/private/DB/Connection.php(214): Doctrine\\DBAL\\Connection->executeUpdate('UPDATE "oc_file...', Array, Array)\n#3 /var/www/nextcloud/lib/private/Lock/DBLockingProvider.php(229): OC\\DB\\Connection->executeUpdate('UPDATE "oc_file...', Array)\n#4 /var/www/nextcloud/lib/private/Lock/AbstractLockingProvider.php(126): OC\\Lock\\DBLockingProvider->releaseLock('files/446e5e807...', 2)\n#5 /var/www/nextcloud/lib/private/Lock/DBLockingProvider.php(295): OC\\Lock\\AbstractLockingProvider->releaseAll()\n#6 [internal function]: OC\\Lock\\DBLockingProvider->releaseAll()\n#7 {main}\n\n in /var/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLiteDriver.php on line 25
[Sun Aug 30 14:46:15.832861 2020] [php7:error] [pid 62987] [client 192.168.10.1:50368] PHP Fatal error:  Uncaught PDOException: SQLSTATE[HY000]: General error: 5 database is locked in /var/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:117\nStack trace:\n#0 /var/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php(117): PDOStatement->execute(Array)\n#1 /var/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1056): Doctrine\\DBAL\\Driver\\PDOStatement->execute(Array)\n#2 /var/www/nextcloud/lib/private/DB/Connection.php(214): Doctrine\\DBAL\\Connection->executeUpdate('UPDATE "oc_file...', Array, Array)\n#3 /var/www/nextcloud/lib/private/Lock/DBLockingProvider.php(229): OC\\DB\\Connection->executeUpdate('UPDATE "oc_file...', Array)\n#4 /var/www/nextcloud/lib/private/Lock/AbstractLockingProvider.php(126): OC\\Lock\\DBLockingProvider->releaseLock('files/e8045c8c6...', 2)\n#5 /var/www/nextcloud/lib/private/Lock/DBLockingProvider.php(295): OC\\Lock\\AbstractLockingProvider->releaseAll()\n#6 [internal function]: OC\\Lock\\DBLockingProvider->releaseAll()\n#7 {main}\n\n in /var/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLiteDriver.php on line 25
[Sun Aug 30 14:54:38.482254 2020] [ssl:warn] [pid 67763] AH01906: nextcloud.localdomain:443:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Sun Aug 30 14:54:38.482376 2020] [ssl:warn] [pid 67763] AH01909: nextcloud.localdomain:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 30 14:54:38.676771 2020] [ssl:warn] [pid 67764] AH01906: nextcloud.localdomain:443:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Sun Aug 30 14:54:38.676828 2020] [ssl:warn] [pid 67764] AH01909: nextcloud.localdomain:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 30 14:58:29.269484 2020] [ssl:warn] [pid 67796] AH01906: nextcloud.localdomain:443:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Sun Aug 30 14:58:29.269598 2020] [ssl:warn] [pid 67796] AH01909: nextcloud.localdomain:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 30 14:58:29.450289 2020] [ssl:warn] [pid 67797] AH01906: nextcloud.localdomain:443:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Sun Aug 30 14:58:29.450348 2020] [ssl:warn] [pid 67797] AH01909: nextcloud.localdomain:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 30 14:58:58.923500 2020] [ssl:warn] [pid 67824] AH01906: nextcloud.localdomain:443:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Sun Aug 30 14:58:58.923613 2020] [ssl:warn] [pid 67824] AH01909: nextcloud.localdomain:443:0 server certificate does NOT include an ID which matches the server name
[Sun Aug 30 14:58:59.073633 2020] [ssl:warn] [pid 67825] AH01906: nextcloud.localdomain:443:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
[Sun Aug 30 14:58:59.073698 2020] [ssl:warn] [pid 67825] AH01909: nextcloud.localdomain:443:0 server certificate does NOT include an ID which matches the server name
root@dzur:/var/log/apache2#

Something cleared up this issue. I have no idea whether it was something I did or something in Nextcloud that cleaned it up.