Backup sqlite database on Azure App Service with mounted file storage not working #1391

Closed
opened 2026-02-05 00:48:13 +03:00 by OVERLORD · 3 comments
Owner

Originally created by @yggdrasil-tynor on GitHub (Oct 20, 2022).

Subject of the issue

Backup sqlite database on Azure App Service with mounted file storage not working. On older version it used to work fine even though it was a mounted storage.

Deployment environment

Your environment (Generated via diagnostics page)

  • Vaultwarden version: v1.26.0
  • Web-vault version: v2022.10.0
  • Running within Docker: true (Base: Alpine)
  • Environment settings overridden: true
  • Uses a reverse proxy: true
  • IP Header check: true (X-Forwarded-For)
  • Internet access: true
  • Internet access via a proxy: false
  • DNS Check: true
  • Time Check: true
  • Domain Configuration Check: true
  • HTTPS Check: true
  • Database type: SQLite
  • Database version: 3.35.4
  • Clients used:
  • Reverse proxy and version:
  • Other relevant information:

Config (Generated via diagnostics page)

Show Running Config

Environment settings which are overridden: SIGNUPS_ALLOWED, INVITATIONS_ALLOWED, ADMIN_TOKEN, SMTP_HOST, SMTP_PORT, SMTP_FROM, SMTP_USERNAME, SMTP_PASSWORD

{
  "_duo_akey": "***",
  "_enable_duo": true,
  "_enable_email_2fa": true,
  "_enable_smtp": true,
  "_enable_yubico": false,
  "_icon_service_csp": "",
  "_icon_service_url": "",
  "_ip_header_enabled": true,
  "admin_ratelimit_max_burst": 3,
  "admin_ratelimit_seconds": 300,
  "admin_token": "***",
  "allowed_iframe_ancestors": "",
  "attachments_folder": "data/attachments",
  "authenticator_disable_time_drift": false,
  "data_folder": "data",
  "database_conn_init": "",
  "database_max_conns": 10,
  "database_timeout": 30,
  "database_url": "****/**.*******",
  "db_connection_retries": 15,
  "disable_2fa_remember": false,
  "disable_admin_token": false,
  "disable_icon_download": false,
  "domain": "*****://*********.***.*****",
  "domain_origin": "*****://*********.***.*****",
  "domain_path": "",
  "domain_set": true,
  "duo_host": "api-335543ce.duosecurity.com",
  "duo_ikey": "DIT440YCKE3L1U8SIE7O",
  "duo_skey": "***",
  "email_attempts_limit": 3,
  "email_expiration_time": 600,
  "email_token_size": 6,
  "emergency_access_allowed": true,
  "emergency_notification_reminder_schedule": "0 5 * * * *",
  "emergency_request_timeout_schedule": "0 5 * * * *",
  "enable_db_wal": true,
  "extended_logging": true,
  "helo_name": null,
  "hibp_api_key": "***",
  "icon_blacklist_non_global_ips": true,
  "icon_blacklist_regex": null,
  "icon_cache_folder": "data/icon_cache",
  "icon_cache_negttl": 259200,
  "icon_cache_ttl": 2592000,
  "icon_download_timeout": 10,
  "icon_redirect_code": 302,
  "icon_service": "internal",
  "incomplete_2fa_schedule": "30 * * * * *",
  "incomplete_2fa_time_limit": 3,
  "invitation_expiration_hours": 120,
  "invitation_org_name": "Yggdrasil Bitwarden",
  "invitations_allowed": true,
  "ip_header": "X-Forwarded-For",
  "job_poll_interval_ms": 30000,
  "log_file": null,
  "log_level": "Info",
  "log_timestamp_format": "%Y-%m-%d %H:%M:%S.%3f",
  "login_ratelimit_max_burst": 10,
  "login_ratelimit_seconds": 60,
  "org_attachment_limit": null,
  "org_creation_users": "***@***.**,***@***.**,***@***.**",
  "password_hints_allowed": true,
  "password_iterations": 100000,
  "reload_templates": false,
  "require_device_email": false,
  "rsa_key_filename": "data/rsa_key",
  "send_purge_schedule": "0 5 * * * *",
  "sends_allowed": true,
  "sends_folder": "data/sends",
  "show_password_hint": false,
  "signups_allowed": false,
  "signups_domains_whitelist": "@***.**",
  "signups_verify": false,
  "signups_verify_resend_limit": 6,
  "signups_verify_resend_time": 3600,
  "smtp_accept_invalid_certs": false,
  "smtp_accept_invalid_hostnames": false,
  "smtp_auth_mechanism": null,
  "smtp_debug": false,
  "smtp_explicit_tls": null,
  "smtp_from": "**************@***.**",
  "smtp_from_name": "Yggdrasil Bitwarden",
  "smtp_host": "****.*********.***",
  "smtp_password": "***",
  "smtp_port": 587,
  "smtp_security": "starttls",
  "smtp_ssl": true,
  "smtp_timeout": 15,
  "smtp_username": "**************@***.**",
  "templates_folder": "data/templates",
  "tmp_folder": "data/tmp",
  "trash_auto_delete_days": null,
  "trash_purge_schedule": "0 5 0 * * *",
  "use_syslog": false,
  "user_attachment_limit": null,
  "web_vault_enabled": true,
  "web_vault_folder": "web-vault/",
  "websocket_address": "0.0.0.0",
  "websocket_enabled": false,
  "websocket_port": 3012,
  "yubico_client_id": null,
  "yubico_secret_key": null,
  "yubico_server": null
}
  • Other relevant details:

2022-10-20T12:14:27.697090235Z [2022-10-20 12:14:27.687][request][INFO] POST /admin/config/backup_db

2022-10-20T12:14:33.100690180Z [2022-10-20 12:14:33.099][error][ERROR] Db.
2022-10-20T12:14:33.100739282Z [CAUSE] DatabaseError(
2022-10-20T12:14:33.100746982Z __Unknown,
2022-10-20T12:14:33.100751083Z "database is locked",
2022-10-20T12:14:33.100755483Z )
2022-10-20T12:14:33.100759483Z [2022-10-20 12:14:33.099][response][INFO] (backup_db) POST /admin/config/backup_db => 400 Bad Request

Steps to reproduce

Click backup database in the admin page

Expected behaviour

Backup sqlite should work (it used to)

Actual behaviour

See error in log

Troubleshooting data

Originally created by @yggdrasil-tynor on GitHub (Oct 20, 2022). ### Subject of the issue Backup sqlite database on Azure App Service with mounted file storage not working. **On older version it used to work fine even though it was a mounted storage.** ### Deployment environment ### Your environment (Generated via diagnostics page) * Vaultwarden version: v1.26.0 * Web-vault version: v2022.10.0 * Running within Docker: true (Base: Alpine) * Environment settings overridden: true * Uses a reverse proxy: true * IP Header check: true (X-Forwarded-For) * Internet access: true * Internet access via a proxy: false * DNS Check: true * Time Check: true * Domain Configuration Check: true * HTTPS Check: true * Database type: SQLite * Database version: 3.35.4 * Clients used: * Reverse proxy and version: * Other relevant information: ### Config (Generated via diagnostics page) <details><summary>Show Running Config</summary> **Environment settings which are overridden:** SIGNUPS_ALLOWED, INVITATIONS_ALLOWED, ADMIN_TOKEN, SMTP_HOST, SMTP_PORT, SMTP_FROM, SMTP_USERNAME, SMTP_PASSWORD ```json { "_duo_akey": "***", "_enable_duo": true, "_enable_email_2fa": true, "_enable_smtp": true, "_enable_yubico": false, "_icon_service_csp": "", "_icon_service_url": "", "_ip_header_enabled": true, "admin_ratelimit_max_burst": 3, "admin_ratelimit_seconds": 300, "admin_token": "***", "allowed_iframe_ancestors": "", "attachments_folder": "data/attachments", "authenticator_disable_time_drift": false, "data_folder": "data", "database_conn_init": "", "database_max_conns": 10, "database_timeout": 30, "database_url": "****/**.*******", "db_connection_retries": 15, "disable_2fa_remember": false, "disable_admin_token": false, "disable_icon_download": false, "domain": "*****://*********.***.*****", "domain_origin": "*****://*********.***.*****", "domain_path": "", "domain_set": true, "duo_host": "api-335543ce.duosecurity.com", "duo_ikey": "DIT440YCKE3L1U8SIE7O", "duo_skey": "***", "email_attempts_limit": 3, "email_expiration_time": 600, "email_token_size": 6, "emergency_access_allowed": true, "emergency_notification_reminder_schedule": "0 5 * * * *", "emergency_request_timeout_schedule": "0 5 * * * *", "enable_db_wal": true, "extended_logging": true, "helo_name": null, "hibp_api_key": "***", "icon_blacklist_non_global_ips": true, "icon_blacklist_regex": null, "icon_cache_folder": "data/icon_cache", "icon_cache_negttl": 259200, "icon_cache_ttl": 2592000, "icon_download_timeout": 10, "icon_redirect_code": 302, "icon_service": "internal", "incomplete_2fa_schedule": "30 * * * * *", "incomplete_2fa_time_limit": 3, "invitation_expiration_hours": 120, "invitation_org_name": "Yggdrasil Bitwarden", "invitations_allowed": true, "ip_header": "X-Forwarded-For", "job_poll_interval_ms": 30000, "log_file": null, "log_level": "Info", "log_timestamp_format": "%Y-%m-%d %H:%M:%S.%3f", "login_ratelimit_max_burst": 10, "login_ratelimit_seconds": 60, "org_attachment_limit": null, "org_creation_users": "***@***.**,***@***.**,***@***.**", "password_hints_allowed": true, "password_iterations": 100000, "reload_templates": false, "require_device_email": false, "rsa_key_filename": "data/rsa_key", "send_purge_schedule": "0 5 * * * *", "sends_allowed": true, "sends_folder": "data/sends", "show_password_hint": false, "signups_allowed": false, "signups_domains_whitelist": "@***.**", "signups_verify": false, "signups_verify_resend_limit": 6, "signups_verify_resend_time": 3600, "smtp_accept_invalid_certs": false, "smtp_accept_invalid_hostnames": false, "smtp_auth_mechanism": null, "smtp_debug": false, "smtp_explicit_tls": null, "smtp_from": "**************@***.**", "smtp_from_name": "Yggdrasil Bitwarden", "smtp_host": "****.*********.***", "smtp_password": "***", "smtp_port": 587, "smtp_security": "starttls", "smtp_ssl": true, "smtp_timeout": 15, "smtp_username": "**************@***.**", "templates_folder": "data/templates", "tmp_folder": "data/tmp", "trash_auto_delete_days": null, "trash_purge_schedule": "0 5 0 * * *", "use_syslog": false, "user_attachment_limit": null, "web_vault_enabled": true, "web_vault_folder": "web-vault/", "websocket_address": "0.0.0.0", "websocket_enabled": false, "websocket_port": 3012, "yubico_client_id": null, "yubico_secret_key": null, "yubico_server": null } ``` </details> * Other relevant details: > 2022-10-20T12:14:27.697090235Z [2022-10-20 12:14:27.687][request][INFO] POST /admin/config/backup_db > > 2022-10-20T12:14:33.100690180Z [2022-10-20 12:14:33.099][error][ERROR] Db. > 2022-10-20T12:14:33.100739282Z [CAUSE] DatabaseError( > 2022-10-20T12:14:33.100746982Z __Unknown, > 2022-10-20T12:14:33.100751083Z "database is locked", > 2022-10-20T12:14:33.100755483Z ) > 2022-10-20T12:14:33.100759483Z [2022-10-20 12:14:33.099][response][INFO] (backup_db) POST /admin/config/backup_db => 400 Bad Request ### Steps to reproduce <!-- Tell us how to reproduce this issue. What parameters did you set (differently from the defaults) and how did you start vaultwarden? --> Click backup database in the admin page ### Expected behaviour Backup sqlite should work (it used to) ### Actual behaviour See error in log ### Troubleshooting data <!-- Share any log files, screenshots, or other relevant troubleshooting data -->
Author
Owner

@BlackDex commented on GitHub (Oct 20, 2022):

I'm afraid that this is not something we can fix actually.
The Database is locked either because some other query is running, or the filesystem doesn't support locking that well.
Which as far as i understood is using CIFS/Samba which has some issues with locking.

Not sure if what happens if you stop Vaultwarden, start it again and try it right after the startup.

@BlackDex commented on GitHub (Oct 20, 2022): I'm afraid that this is not something we can fix actually. The Database is locked either because some other query is running, or the filesystem doesn't support locking that well. Which as far as i understood is using CIFS/Samba which has some issues with locking. Not sure if what happens if you stop Vaultwarden, start it again and try it right after the startup.
Author
Owner

@yggdrasil-tynor commented on GitHub (Oct 20, 2022):

But i'm 100% certain this used to work in some older versions. Perhaps it was when we used Blob for storing the DB file rathern than fileshares...?

@yggdrasil-tynor commented on GitHub (Oct 20, 2022): But i'm 100% certain this used to work in some older versions. Perhaps it was when we used Blob for storing the DB file rathern than fileshares...?
Author
Owner

@BlackDex commented on GitHub (Oct 20, 2022):

The specific database libraries haven't been changed in about 16 months time, so that is probably not the specific issue.
There were some small changed regarding connection handling, but depending in which version you were running before, i think that also is active for a while now.

@BlackDex commented on GitHub (Oct 20, 2022): The specific database libraries haven't been changed in about 16 months time, so that is probably not the specific issue. There were some small changed regarding connection handling, but depending in which version you were running before, i think that also is active for a while now.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/vaultwarden#1391