Commit Graph
2987 Commits
Author SHA1 Message Date
Kenneth Skovhede 6d63f86610 Avoid stack traces for missing sources 2025-07-10 18:01:44 +02:00
Kenneth SkovhedeandGitHub 9b3cbbaa63 Merge pull request #6406 from duplicati/feature/faster-status-update
Faster progress update
2025-07-08 17:00:18 +02:00
Kenneth Skovhede 32f0283097 Fix bugreport create
The new SQLite library does not like to do VACUUM within a transaction. This PR updates it to run VACUUM outside the transaction.
2025-07-08 14:37:49 +02:00
Kenneth Skovhede e14c8bb6c7 Faster progress update
The default is to report progress every second.
In some cases the report output is stuck at the "Starting backup..." phase.

This PR adds a new `Starting_Operation` enum to indicate that we do not yet know which operation is starting.

Then an additional trigger is added to flush the progress when the pahse changes. This means that as soon as we know which operation is active, this will be flushed to the UI.
2025-07-08 14:20:06 +02:00
Kenneth SkovhedeandGitHub eb2bb571cf Merge pull request #6402 from carljohnsen/performance/list-root
Performance/List roots takes long time
2025-07-07 18:09:22 +02:00
Carl Johnsen 0a04d3e77e Moved filtering of common roots from the SQL query to C# 2025-07-07 17:09:29 +02:00
Kenneth Skovhede cb89572ef8 Setting DBNull.Value for null values 2025-07-07 17:04:07 +02:00
Kenneth Skovhede ae861b83ba Updated texts for index file replace option 2025-07-07 16:23:08 +02:00
Kenneth Skovhede b955822773 Better capture of rethrown exception 2025-07-04 16:14:04 +02:00
Kenneth Skovhede 6502017c57 Merge remote-tracking branch 'origin/master' into feature/vanara-vss-backup 2025-07-03 17:09:30 +02:00
Kenneth SkovhedeandGitHub 5ff613b5da Merge pull request #6360 from carljohnsen/performance/mssqlite-async
Performance/Asynchronous database backend
2025-07-03 11:07:26 +02:00
Kenneth SkovhedeandGitHub 29f5eb79e5 Merge branch 'master' into feature/vanara-vss-backup 2025-07-01 16:35:57 +02:00
Kenneth Skovhede 98deb8c576 Update support for VSS
This updates VSS to default use Vanara in favor of AlphaVSS which is no longer maintained.

The build for Vanara requires targeting `net8.0-windows7.0`, which will cause significant build overhead and complexity for cross platform builds.
To counter this, the setup is to have a single project, `Duplicati.Library.WindowsModules`, that is targeting `net8.0-windows7.0`.
The output from this project is then hoisted into the TrayIcon project for Windows builds so the files are available when debugging on Windows.
A top-level dummy executable project is added to ensure the project always builds.
The built modules are then loaded with reflection when requested.

With the use of Vanara there is now also support for using BackupRead to read files without making a VSS snapshot.
With BackupRead, it is possible to read locked files, but it still requires the SeBackupPrivilege as VSS does as well.

Unfortunately, the `vssapi.dll` file is not shipped for Arm64 on Windows, so even with Vanara this will not work, and only WMIC is supported on Arm64.
A workaround is to run Duplicati with x64 emulation if more advanced VSS features are needed (HyperV and MSSQL support).

This PR also updates options and filters out unsupported options for each operating system, so options that are not supported by the current OS are not reported and will give warnings if they are used, as opposed to just being ignored.

The release builder project has been updated to exclude the unused project, and purge unwanted outputs.
2025-07-01 16:32:19 +02:00
Kenneth Skovhede 3719935b1d No exempt throttle backends
This PR removes the default value of `file` as a throttle exempt backend, so all backends are  subject to throttle by default.

This change makes the option easier to work with as the empty string could not be used to undo the default value, and fixing this would make the options be applied inconsistently.

Also fixed two errors in the help text for the option.
2025-06-24 16:13:59 +02:00
Carl Johnsen bb87e94ffa Post merge master fixes 2025-06-24 14:38:58 +02:00
Carl Johnsen e55c36081f Merge branch 'master' into performance/mssqlite-async 2025-06-24 14:24:09 +02:00
Carl Johnsen f9111a9dde Made RestoreHandler call the DisposeAsync instead of Dispose on the LocalRestoreDatabase 2025-06-24 12:05:15 +02:00
Carl Johnsen 8c9f129b8a Removed unused parameter 2025-06-24 12:04:49 +02:00
Carl Johnsen 79b63ee4b2 Fixed race condition on creating and disposing SqliteCommands from multiple threads sharing the same SqliteConnection 2025-06-24 12:04:31 +02:00
Kenneth SkovhedeandGitHub 86acc32c1c Merge pull request #6361 from duplicati/feature/handle-transitive-folders
Transitive virtual folders
2025-06-24 07:41:51 +02:00
Kenneth Skovhede b7a0053e5b Rewrote function to return minimal unique prefixes instead 2025-06-23 17:40:28 +02:00
Carl Johnsen a3d2ffbcd0 Removed whitespace 2025-06-23 10:27:35 +02:00
Carl Johnsen 6ee76a29d3 Made the callback on a put command to the backend be a function returning an awaitable Task rather than an Action. 2025-06-23 10:27:09 +02:00
Kenneth Skovhede 6912d89b99 Remove fixed index files from output
This removes index files that were succesfully repaired from the output, so the now-missing files are not reported as failures.

This fixes #6336
2025-06-20 16:40:21 +02:00
Kenneth Skovhede 67e431a715 Implemented new query to get root paths and their transitive virtual folders 2025-06-20 11:13:12 +02:00
Carl Johnsen 6460e33787 Added missing double quotes to the SQL queries in LocalRepairDatabase.FixEmptyMetadatasets() 2025-06-19 13:23:39 +02:00
Carl Johnsen 0a047a37e3 SQL query inside GetEmptyMetadataBlocksetId had not only moved files, but had also changed 2025-06-19 13:20:44 +02:00
Carl Johnsen f6ac30e831 Merge remote-tracking branch 'upstream/master' into performance/mssqlite-async 2025-06-19 12:17:30 +02:00
Carl Johnsen 2412800c0c Removed the sqlite page cache option. It should be set through the environment variable, or some other way of providing a custom database configurotion 2025-06-19 11:41:39 +02:00
Carl Johnsen 31c5441bdb Forwarded cancellation tokens, added some missing .ConfigureAwait() and added some missing docstrings 2025-06-19 11:04:09 +02:00
Carl Johnsen 7e979a4e9b Found some methods in LocalBackupDatabase that didn't accept a cancellation token 2025-06-19 11:01:12 +02:00
Carl Johnsen 0f0da82f28 Removed whitespace 2025-06-19 10:59:22 +02:00
Carl Johnsen 32efa4b845 Updated all of the handler calls to database methods to forward their cancellation token 2025-06-19 09:47:33 +02:00
Carl Johnsen 7c425c4649 Added some extra overloads to the async database extension methods 2025-06-19 08:08:17 +02:00
Carl Johnsen b9952281ed ReusableTransaction.RollbackAsync now also accepts cancellation tokens 2025-06-19 08:07:48 +02:00
Carl Johnsen 4f7760f092 Made the LocalTestDatabase methods accep a cancellation token 2025-06-19 08:04:20 +02:00
Carl Johnsen 488d531bd5 Made the LocalRestoreDatabase methods accept a cancellation token 2025-06-19 07:54:53 +02:00
Carl Johnsen 04c52010fe Made the LocalRepairDatabase methods accept a cancellation token 2025-06-19 07:26:54 +02:00
Carl Johnsen 1c103c18b8 Made the LocalRecreateDatabase methods accept a cancellation token 2025-06-19 07:15:28 +02:00
Carl Johnsen 736b52c2fb Made the LocalPurgeDatabase methods accept a cancellation token 2025-06-19 07:00:14 +02:00
Carl Johnsen 3ea8733a4d Made the LocalListDatabase methods accept a cancellation token 2025-06-19 06:54:24 +02:00
Kenneth SkovhedeandGitHub fa36b705cb Merge pull request #6356 from duplicati/feature/correct-version-number
Return version numbers, and not ids
2025-06-18 21:16:46 +02:00
Carl Johnsen 28ca30f617 Made the LocalListChangesDatabase methods accept a cancellation token 2025-06-18 16:28:23 +02:00
Carl Johnsen 42877ebf96 Made the LocalListBrokenFilesDatabase methods accept a cancellation token 2025-06-18 16:23:10 +02:00
Carl Johnsen 936742b586 Made the LocalListAffectedDatabase methods accept a cancellation token 2025-06-18 16:11:10 +02:00
Carl Johnsen c496d0bf8c Made the LocalDeleteDatabase methods accept a cancellation token 2025-06-18 16:07:46 +02:00
Carl Johnsen ccce18bb00 Made the LocalBugReportDatabase methods accept a cancellation token 2025-06-18 16:02:05 +02:00
Carl Johnsen 8039cbb0f6 Made the LocalBackupDatabase methods accept a cancellation token 2025-06-18 16:00:20 +02:00
Carl Johnsen 3b3a7801b8 Made the LocalDatabase methods accept a cancellation token 2025-06-18 15:36:10 +02:00
Carl Johnsen 87dc978425 Made the ChangeStatistics methods accept a cancellation token 2025-06-18 14:37:13 +02:00