Mariadb failed to connect to the database after updating docker image

Steps to reproduce

  1. Get a working kubernetes cluster.
  2. Install Owncloud pod with docker image “10.0.10-debian-9-r113”
  3. Install mariadb pod
  4. Get owncloud working (setup persistence volumes, ingress, …)
  5. set maintenance mode
  6. scale deployment to 0
  7. update yaml to switch from docker image “10.0.10-debian-9-r113” to “latest”
  8. reset replicas to 1 (restarting pod)
  9. Check container log and see the error:

Expected behaviour

Owncloud upgrade to latest version and is working as before the upgrade.

Actual behaviour

Error in the logs:

    php TRACE [runProgram] RESULT: {"code":1,"stderr":"","stdout":"An unhandled exception has been thrown:
Doctrine\\DBAL\\DBALException: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [14] unable to open database file in /opt/bitnami/owncloud/lib/private/DB/Connection.php:62
Stack trace:
#0 /opt/bitnami/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(992): OC\\DB\\Connection->connect()
#1 /opt/bitnami/owncloud/lib/private/DB/Connection.php(207): Doctrine\\DBAL\\Connection->executeUpdate('PRAGMA read_unc...', Array, Array)
#2 /opt/bitnami/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(623): OC\\DB\\Connection->executeUpdate('PRAGMA read_unc...')
#3 /opt/bitnami/owncloud/lib/private/DB/Connection.php(144): Doctrine\\DBAL\\Connection->setTransactionIsolation(2)
#4 /opt/bitnami/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php(172): OC\\DB\\Connection->__construct(Array, Object(Doctrine\\DBAL\\Driver\\PDOSqlite\\Driver), Object(Doctrine\\DBAL\\Configuration), Object(Doctrine\\Common\\EventManager))
#5 /opt/bitnami/owncloud/lib/private/DB/ConnectionFactory.php(145): Doctrine\\DBAL\\DriverManager::getConnection(Array, Object(Doctrine\\DBAL\\Configuration), Object(Doctrine\\Common\\EventManager))
#6 /opt/bitnami/owncloud/lib/private/Server.php(532): OC\\DB\\ConnectionFactory->getConnection('sqlite3', Array)
#7 /opt/bitnami/owncloud/lib/composer/pimple/pimple/src/Pimple/Container.php(118): OC\\Server->OC\\{closure}(Object(OC\\Server))
#8 /opt/bitnami/owncloud/lib/private/AppFramework/Utility/SimpleContainer.php(108): Pimple\\Container->offsetGet('DatabaseConnect...')
#9 /opt/bitnami/owncloud/lib/private/ServerContainer.php(86): OC\\AppFramework\\Utility\\SimpleContainer->query('DatabaseConnect...')
#10 /opt/bitnami/owncloud/lib/private/Server.php(1220): OC\\ServerContainer->query('DatabaseConnect...')
#11 /opt/bitnami/owncloud/lib/private/Server.php(250): OC\\Server->getDataba seConnection()
#12 /opt/bitnami/owncloud/lib/composer/pimple/pimple/src/Pimple/Container.php(118): OC\\Server->OC\\{closure}(Object(OC\\Server))
#13 /opt/bitnami/owncloud/lib/private/AppFramework/Utility/SimpleContainer.php(108): Pimple\\Container->offsetGet('AccountMapper')
#14 /opt/bitnami/owncloud/lib/private/ServerContainer.php(86): OC\\AppFramework\\Utility\\SimpleContainer->query('AccountMapper')
#15 /opt/bitnami/owncloud/lib/private/Server.php(1066): OC\\ServerContainer->query('AccountMapper')
#16 /opt/bitnami/owncloud/lib/private/Server.php(256): OC\\Server->getAccountMapper()
#17 /opt/bitnami/owncloud/lib/composer/pimple/pimple/src/Pimple/Container.php(118): OC\\Server->OC\\{closure}(Object(OC\\Server))
#18 /opt/bitnami/owncloud/lib/private/AppFramework/Utility/SimpleContainer.php(108): Pimple\\Container->offsetGet('UserManager')
#19 /opt/bitnami/owncloud/lib/private/ServerContainer.php(86): OC\\AppFramework\\Utility\\SimpleContainer->query('UserManager')
#20 /opt/bitnami/owncloud/lib/private/Server.php(1059): OC\\ServerContainer->query('UserManager')
#21 /opt/bitnami/owncloud/lib/private/Server.php(316): OC\\Server->getUserManager()
#22 /opt/bitnami/owncloud/lib/composer/pimple/pimple/src/Pimple/Container.php(118): OC\\Server->OC\\{closure}(Object(OC\\Server))
#23 /opt/bitnami/owncloud/lib/private/AppFramework/Utility/SimpleContainer.php(108): Pimple\\Container->offsetGet('UserSession')
#24 /opt/bitnami/owncloud/lib/private/ServerContainer.php(86): OC\\AppFramework\\Utility\\SimpleContainer->query('UserSession')
#25 /opt/bitnami/owncloud/lib/private/Server.php(1083): OC\\ServerContainer->query('UserSession')
#26 /opt/bitnami/owncloud/lib/private/Server.php(1090): OC\\Server->getUserSession()
#27 /opt/bitnami/owncloud/lib/base.php(593): OC\\Server->getSession()
#28 /opt/bitnami/owncloud/lib/base.php(1005): OC::init()
#29 /opt/bitnami/owncloud/console.php(64): require_once('/opt/bitnami/ow...')
#30 /opt/bitnami/owncloud/occ(11): require_once('/opt/bitnami/ow...')
#31 {main}" "}
    Error executing 'postInstallation': Program exited with exit code 1
    nami TRACE Error: Error executing 'postInstallation': Program exited with exit code 1
    at runProgram (/opt/bitnami/nami/node_modules/nami-utils/lib/os/run-program.js:223:14)
    at Object.runProgram (/opt/bitnami/nami/node_modules/nami-utils/lib/os/index.js:63:12)
    at Object.$app.helpers.execute (/root/.nami/components/com.bitnami.php/helpers.js:69:14)
    at Object.<anonymous> (/opt/bitnami/nami/node_modules/lodash/index.js:51:276)
    at Object.$app.helpers.executeOcc (/root/.nami/components/com.bitnami.owncloud/helpers.js:60:22)
    at Object.$app.helpers.upgradeDatabase (/root/.nami/components/com.bitnami.owncloud/helpers.js:108:42)
    at Component.$app.postInstallation (/root/.nami/components/com.bitnami.owncloud/main.js:54:16)
    at Component.runStep (/opt/bitnami/nami/node_modules/nami-core/lib/components/component.js:159:12)
    at _.each.step (/opt/bitnami/nami/node_modules/nami-core/lib/components/component.js:236:32)
    at r (/opt/bitnami/nami/node_modules/lodash/index.js:5:348)

Server configuration

Operating system: Linux Ubuntu 18.03 64 bits.

Database: mariadb

ownCloud version: was to 10.0.x (doesn’t remeber exactly) and trying to upgrade to latest one.

Updated from an older ownCloud or fresh install: updated.

Where did you install ownCloud from: helm chart

Are you using external storage, if yes which one: persistence volume as a local node path on a single node.

Are you using encryption: no

Are you using an external user-backend, if yes which one: no

Client configuration

not relevant

ownCloud log (data/owncloud.log)

not sure it is relevant as these logs are logs from previous installation:

{"reqId":"cbf9708edeb2b675c9860319bfccaa98","level":3,"time":"2019-11-21T15:34:33+00:00","remoteAddr":"10.42.1.0","user":"--","app":"no app in context","method":"POST","url":"\/index.php","message":"User backend OC\\User\\Database is returning home: \/opt\/bitnami\/apache\/htdocs\/data\/admin for user: admin which differs from existing value: "}
{"reqId":"fafb4253-92f9-4124-bdfe-c6583bb0cec8","level":2,"time":"2019-11-21T15:34:48+00:00","remoteAddr":"10.42.0.0","user":"--","app":"core","method":"PROPFIND","url":"\/remote.php\/dav\/files\/admin\/","message":"Login failed: 'admin' (Remote IP: '10.42.0.0')"}
{"reqId":"7769fd4b-dd41-4b97-bb54-cb8ee164640c","level":2,"time":"2019-11-21T15:34:55+00:00","remoteAddr":"10.42.0.0","user":"--","app":"core","method":"PROPFIND","url":"\/remote.php\/dav\/files\/admin\/","message":"Login failed: 'admin' (Remote IP: '10.42.0.0')"}
{"reqId":"0645574146ad00c44ae6c13255900b57","level":3,"time":"2019-11-21T15:35:03+00:00","remoteAddr":"10.42.2.1","user":"--","app":"core","method":"GET","url":"\/cron.php","message":"Error while running background job (class: OCA\\DAV\\CardDAV\\SyncJob, arguments: ): {\"Exception\":\"Doctrine\\\\DBAL\\\\Exception\\\\DriverException\",\"Message\":\"An exception occurred while executing 'INSERT INTO \\\"oc_cards\\\" (\\\"carddata\\\", \\\"uri\\\", \\\"lastmodified\\\", \\\"addressbookid\\\", \\\"size\\\", \\\"etag\\\") VALUES(?, ?, ?, ?, ?, ?)' with params [\\\"BEGIN:VCARD\\\\r\\\\nVERSION:3.0\\\\r\\\\nPRODID:-\\\\\\\/\\\\\\\/Sabre\\\\\\\/\\\\\\\/Sabre VObject 4.1.6\\\\\\\/\\\\\\\/EN\\\\r\\\\nUID:admin\\\\r\\\\nFN:admin\\\\r\\\\nN:admin;;;;\\\\r\\\\nCLOUD:admin@owcloud.adisoft.be\\\\r\\\\nEND:VCARD\\\\r\\\\n\\\", \\\"Database:admin.vcf\\\", 1574350503, \\\"2\\\", 145, \\\"4678db3818072828f8f894d3b99a851e\\\"]:\\n\\nSQLSTATE[HY000]: General error: 5 database is locked\",\"Code\":0,\"Trace\":\"#0 \\\/opt\\\/bitnami\\\/apache\\\/htdocs\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/DBALException.php(128): Doctrine\\\\DBAL\\\\Driver\\\\AbstractSQLiteDriver->convertException('An exception oc...', Object(Doctrine\\\\DBAL\\\\Driver\\\\PDOException))\\n#1 \\\/opt\\\/bitnami\\\/apache\\\/htdocs\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Connection.php(1015): Doctrine\\\\DBAL\\\\DBALException::driverExceptionDuringQuery(Object(Doctrine\\\\DBAL\\\\Driver\\\\PDOSqlite\\\\Driver), Object(Doctrine\\\\DBAL\\\\Driver\\\\PDOException), 'INSERT INTO \\\"oc...', Array)\\n#2 \\\/opt\\\/bitnami\\\/apache\\\/htdocs\\\/lib\\\/private\\\/DB\\\/Connection.php(207): Doctrine\\\\DBAL\\\\Connection->executeUpdate('INSERT INTO \\\"oc...', Array, Array)\\n#3 \\\/opt\\\/bitnami\\\/apache\\\/htdocs\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Query\\\/QueryBuilder.php(208): OC\\\\DB\\\\Connection->executeUpdate('INSERT INTO \\\"oc...', Array, Array)\\n#4 \\\/opt\\\/bitnami\\\/apache\\\/htdocs\\\/lib\\\/private\\\/DB\\\/QueryBuilder\\\/QueryBuilder.php(141): Doctrine\\\\DBAL\\\\Query\\\\QueryBuilder->execute()\\n#5 \\\/bitnami\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/CardDAV\\\/CardDavBackend.php(538): OC\\\\DB\\\\QueryBuilder\\\\QueryBuilder->execute()\\n#6 \\\/bitnami\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/CardDAV\\\/SyncService.php(226): OCA\\\\DAV\\\\CardDAV\\\\CardDavBackend->createCard('2', 'Database:admin....', 'BEGIN:VCARD\\\\r\\\\nVE...')\\n#7 \\\/bitnami\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/CardDAV\\\/SyncService.php(266): OCA\\\\DAV\\\\CardDAV\\\\SyncService->updateUser(Object(OC\\\\User\\\\User))\\n#8 \\\/opt\\\/bitnami\\\/apache\\\/htdocs\\\/lib\\\/private\\\/User\\\/Manager.php(438): OCA\\\\DAV\\\\CardDAV\\\\SyncService->OCA\\\\DAV\\\\CardDAV\\\\{closure}(Object(OC\\\\User\\\\User))\\n#9 \\\/opt\\\/bitnami\\\/apache\\\/htdocs\\\/lib\\\/private\\\/User\\\/AccountMapper.php(231): OC\\\\User\\\\Manager->OC\\\\User\\\\{closure}(Object(OC\\\\User\\\\Account))\\n#10 \\\/opt\\\/bitnami\\\/apache\\\/htdocs\\\/lib\\\/private\\\/User\\\/Manager.php(439): OC\\\\User\\\\AccountMapper->callForAllUsers(Object(Closure), '', false)\\n#11 \\\/bitnami\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/CardDAV\\\/SyncService.php(270): OC\\\\User\\\\Manager->callForAllUsers(Object(Closure))\\n#12 \\\/bitnami\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/CardDAV\\\/SyncJob.php(38): OCA\\\\DAV\\\\CardDAV\\\\SyncService->syncInstance()\\n#13 \\\/opt\\\/bitnami\\\/apache\\\/htdocs\\\/lib\\\/private\\\/BackgroundJob\\\/Job.php(57): OCA\\\\DAV\\\\CardDAV\\\\SyncJob->run(NULL)\\n#14 \\\/opt\\\/bitnami\\\/apache\\\/htdocs\\\/lib\\\/private\\\/BackgroundJob\\\/TimedJob.php(53): OC\\\\BackgroundJob\\\\Job->execute(Object(OC\\\\BackgroundJob\\\\JobList), Object(OC\\\\Log))\\n#15 \\\/opt\\\/bitnami\\\/apache\\\/htdocs\\\/cron.php(142): OC\\\\BackgroundJob\\\\TimedJob->execute(Object(OC\\\\BackgroundJob\\\\JobList), Object(OC\\\\Log))\\n#16 {main}\",\"File\":\"\\\/opt\\\/bitnami\\\/apache\\\/htdocs\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Driver\\\/AbstractSQLiteDriver.php\",\"Line\":85}"}
{"reqId":"51523d9f-efc6-4845-a329-41f015df1d63","level":4,"time":"2019-11-21T15:40:01+00:00","remoteAddr":"10.42.1.0","user":"admin","app":"webdav","method":"PROPFIND","url":"\/remote.php\/dav\/files\/admin\/","message":"Exception: HTTP\/1.1 503 System in maintenance mode.: {\"Exception\":\"Sabre\\\\DAV\\\\Exception\\\\ServiceUnavailable\",\"Message\":\"System in maintenance mode.\",\"Code\":0,\"Trace\":\"#0 [internal function]: OCA\\\\DAV\\\\Connector\\\\Sabre\\\\MaintenancePlugin->checkMaintenanceMode(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#1 \\\/opt\\\/bitnami\\\/apache\\\/htdocs\\\/lib\\\/composer\\\/sabre\\\/event\\\/lib\\\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\\n#2 \\\/opt\\\/bitnami\\\/apache\\\/htdocs\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(466): Sabre\\\\Event\\\\EventEmitter->emit('beforeMethod', Array)\\n#3 \\\/opt\\\/bitnami\\\/apache\\\/htdocs\\\/lib\\\/composer\\\/sabre\\\/dav\\\/lib\\\/DAV\\\/Server.php(254): Sabre\\\\DAV\\\\Server->invokeMethod(Object(Sabre\\\\HTTP\\\\Request), Object(Sabre\\\\HTTP\\\\Response))\\n#4 \\\/bitnami\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/Server.php(298): Sabre\\\\DAV\\\\Server->exec()\\n#5 \\\/bitnami\\\/owncloud\\\/apps\\\/dav\\\/appinfo\\\/v2\\\/remote.php(31): OCA\\\\DAV\\\\Server->exec()\\n#6 \\\/opt\\\/bitnami\\\/apache\\\/htdocs\\\/remote.php(165): require_once('\\\/bitnami\\\/ownclo...')\\n#7 {main}\",\"File\":\"\\\/bitnami\\\/owncloud\\\/apps\\\/dav\\\/lib\\\/Connector\\\/Sabre\\\/MaintenancePlugin.php\",\"Line\":82}"}

Fell free to ask more information on my setup.
Thanks.

Edit

My situation seems similar to [SOLVED] Owncloud 9.1.4 to 10.0 upgrade errors. So I tried to chmod -R 777 ./* on the directory of the persistence volume. But still the same error.

I have ls -lha inside the data directory :

drwxrwxrwx 5 daemon daemon 4,0K nov.  21 15:40 .
drwxrwxrwx 6   1001   1001 4,0K nov.  21 16:18 ..
drwxrwxrwx 4 daemon daemon 4,0K nov.  21 15:34 admin
drwxrwxrwx 3 daemon daemon 4,0K nov.  21 15:34 avatars
drwxrwxrwx 2 daemon daemon 4,0K nov.  21 15:35 files_external
-rwxrwxrwx 1 daemon daemon  323 nov.  21 15:34 .htaccess
-rwxrwxrwx 1 daemon daemon  145 nov.  21 15:35 htaccesstest.txt
-rwxrwxrwx 1 daemon daemon    0 nov.  21 15:34 index.html
-rwxrwxrwx 1 daemon daemon    0 nov.  21 15:34 .ocdata
-rwxrwxrwx 1 daemon daemon 580K nov.  21 15:39 owncloud.db
-rwxrwxrwx 1 daemon daemon 6,5K nov.  21 15:40 owncloud.log

Edit-2

I’ve been running the script found at https://doc.owncloud.org/server/10.0/admin_manual/installation/installation_wizard.html#post-installation-steps and I now have a different error:

Cannot write into \"config\" directory!
This can usually be fixed by giving the webserver write access to the config directory

See https://doc.owncloud.org/server/10.3/go.php?to=admin-dir_permissions

Here is my ls -lha :

drwxr-x---  9     1001     1001 4,0K nov.  22 06:40 .
drwxr-xr-x 18 myuser   myuser   4,0K nov.  22 06:37 ..
drwxr-x--- 22 www-data www-data 4,0K nov.  21 14:55 apps
drwxr-x---  2 www-data www-data 4,0K nov.  22 06:31 apps-external
drwxr-x---  2 root     www-data 4,0K nov.  21 14:58 assets
drwxr-x---  2 root     www-data 4,0K nov.  21 15:05 conf
drwxrwxrwx  2 www-data www-data 4,0K nov.  22 06:31 config
drwxr-x---  5 www-data www-data 4,0K nov.  21 15:40 data
-rw-r-----  1 root     www-data    0 nov.  20 12:04 .initialized
-rw-r-----  1 root     www-data 6,5K nov.  21 16:18 owncloud.log
-rw-r-----  1 root     www-data    0 nov.  22 07:03 .restored
drwxr-x---  2 www-data www-data 4,0K nov.  22 06:40 updater

I already have chmod -R 777 the config directory. I tried to chown 1:1 ./config and chown 1001:1001 ./config but still the same error.

Hey,

if i’m understanding the following correctly your installation isn’t using MariaDB at all:

and when understanding this correctly:

the installation isn’t able to access the SQLite3 owncloud.db database file.