Release: 2.1.0.2 (Beta) 2024-11-29

Yes it was the test that was failing, apologies, I didn’t realise that that backup set did not have any changes since I updated. I manually made a change (dummy text file) and now I get warnings (not errors) about accessing the source file.
I created a new backup set to test, backing up 1 text file to and from /root (as I assume duplicati running as a service should be able to access this?) and I get same error.
I also updated to the latest canary just to be sure.

{
  "DeletedFiles": 0,
  "DeletedFolders": 0,
  "ModifiedFiles": 0,
  "ExaminedFiles": 1,
  "OpenedFiles": 0,
  "AddedFiles": 0,
  "SizeOfModifiedFiles": 0,
  "SizeOfAddedFiles": 0,
  "SizeOfExaminedFiles": 0,
  "SizeOfOpenedFiles": 0,
  "NotProcessedFiles": 0,
  "AddedFolders": 0,
  "TooLargeFiles": 0,
  "FilesWithError": 0,
  "ModifiedFolders": 0,
  "ModifiedSymlinks": 0,
  "AddedSymlinks": 0,
  "DeletedSymlinks": 0,
  "PartialBackup": false,
  "Dryrun": false,
  "MainOperation": "Backup",
  "CompactResults": null,
  "VacuumResults": null,
  "DeleteResults": null,
  "RepairResults": null,
  "TestResults": null,
  "ParsedResult": "Fatal",
  "Interrupted": false,
  "Version": "2.1.0.101 (2.1.0.101_canary_2024-12-06)",
  "EndTime": "2024-12-11T01:48:17.1861787Z",
  "BeginTime": "2024-12-11T01:47:27.0946256Z",
  "Duration": "00:00:50.0915531",
  "MessagesActualLength": 37,
  "WarningsActualLength": 1,
  "ErrorsActualLength": 2,
  "Messages": [
    "2024-12-11 11:47:27 +10 - [Information-Duplicati.Library.Main.Controller-StartingOperation]: The operation Backup has started",
    "2024-12-11 11:47:27 +10 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Started:  ()",
    "2024-12-11 11:47:27 +10 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Completed:  ()",
    "2024-12-11 11:47:27 +10 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Temporary: duplicati-20241211T013913Z.dlist.zip.aes",
    "2024-12-11 11:47:27 +10 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-SchedulingMissingFileForDelete]: scheduling missing file for deletion, currently listed as Uploading: duplicati-b9ffa0fa2d363438c94bb216bd6253192.dblock.zip.aes",
    "2024-12-11 11:47:27 +10 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Deleting: duplicati-b13df65f50f024d099ec4b80acee76cf9.dblock.zip.aes",
    "2024-12-11 11:47:27 +10 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Deleting: duplicati-b6aad3387362542b698977a34aa233c42.dblock.zip.aes",
    "2024-12-11 11:47:27 +10 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Deleting: duplicati-bdecbee6428064e419196249be022cfeb.dblock.zip.aes",
    "2024-12-11 11:47:27 +10 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Deleting: duplicati-b21aaffa580fb4af0b5ba0d97e391f4d2.dblock.zip.aes",
    "2024-12-11 11:47:27 +10 - [Information-Duplicati.Library.Main.Operation.FilelistProcessor-RemoteUnwantedMissingFile]: removing file listed as Deleting: duplicati-b1785b5a2f4aa4b0d85158a6357d72cc8.dblock.zip.aes",
    "2024-12-11 11:47:27 +10 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-b098951abeb2945ae9aa7075ce6479437.dblock.zip.aes (957 bytes)",
    "2024-12-11 11:47:27 +10 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Retrying: duplicati-b098951abeb2945ae9aa7075ce6479437.dblock.zip.aes (957 bytes)",
    "2024-12-11 11:47:37 +10 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Rename: duplicati-b098951abeb2945ae9aa7075ce6479437.dblock.zip.aes (957 bytes)",
    "2024-12-11 11:47:37 +10 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Rename: duplicati-b7fc3f67833384644824a5b4e0b7bf3ed.dblock.zip.aes (957 bytes)",
    "2024-12-11 11:47:37 +10 - [Information-Duplicati.Library.Main.Operation.Backup.BackendUploader-RenameRemoteTargetFile]: Renaming \"duplicati-b098951abeb2945ae9aa7075ce6479437.dblock.zip.aes\" to \"duplicati-b7fc3f67833384644824a5b4e0b7bf3ed.dblock.zip.aes\"",
    "2024-12-11 11:47:37 +10 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Started: duplicati-b7fc3f67833384644824a5b4e0b7bf3ed.dblock.zip.aes (957 bytes)",
    "2024-12-11 11:47:37 +10 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Retrying: duplicati-b7fc3f67833384644824a5b4e0b7bf3ed.dblock.zip.aes (957 bytes)",
    "2024-12-11 11:47:47 +10 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Rename: duplicati-b7fc3f67833384644824a5b4e0b7bf3ed.dblock.zip.aes (957 bytes)",
    "2024-12-11 11:47:47 +10 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Put - Rename: duplicati-b38083b0a412245d297f724d062e60252.dblock.zip.aes (957 bytes)",
    "2024-12-11 11:47:47 +10 - [Information-Duplicati.Library.Main.Operation.Backup.BackendUploader-RenameRemoteTargetFile]: Renaming \"duplicati-b7fc3f67833384644824a5b4e0b7bf3ed.dblock.zip.aes\" to \"duplicati-b38083b0a412245d297f724d062e60252.dblock.zip.aes\""
  ],
  "Warnings": [
    "2024-12-11 11:47:27 +10 - [Warning-Duplicati.Library.Main.Operation.Backup.FileBlockProcessor.FileEntry-PathProcessingFailed]: Failed to process path: /root/test.txt\nUnauthorizedAccessException: Access to the path '/root/test.txt' is denied."
  ],
  "Errors": [
    "2024-12-11 11:48:17 +10 - [Error-Duplicati.Library.Main.Operation.BackupHandler-FatalError]: Fatal error\nUnauthorizedAccessException: Access to the path '/root/TESTBACKUP/duplicati-b247060b388d14d67bb9138769b5e662d.dblock.zip.aes' is denied.",
    "2024-12-11 11:48:17 +10 - [Error-Duplicati.Library.Main.Controller-FailedOperation]: The operation Backup has failed with error: One or more errors occurred. (Access to the path '/root/TESTBACKUP/duplicati-b247060b388d14d67bb9138769b5e662d.dblock.zip.aes' is denied. (Access to the path '/root/TESTBACKUP/duplicati-b247060b388d14d67bb9138769b5e662d.dblock.zip.aes' is denied.) (One or more errors occurred. (Access to the path '/root/TESTBACKUP/duplicati-b247060b388d14d67bb9138769b5e662d.dblock.zip.aes' is denied.)))\nAggregateException: One or more errors occurred. (Access to the path '/root/TESTBACKUP/duplicati-b247060b388d14d67bb9138769b5e662d.dblock.zip.aes' is denied. (Access to the path '/root/TESTBACKUP/duplicati-b247060b388d14d67bb9138769b5e662d.dblock.zip.aes' is denied.) (One or more errors occurred. (Access to the path '/root/TESTBACKUP/duplicati-b247060b388d14d67bb9138769b5e662d.dblock.zip.aes' is denied.)))"
  ],
  "BackendStatistics": {
    "RemoteCalls": 7,
    "BytesUploaded": 0,
    "BytesDownloaded": 0,
    "FilesUploaded": 0,
    "FilesDownloaded": 0,
    "FilesDeleted": 0,
    "FoldersCreated": 0,
    "RetryAttempts": 5,
    "UnknownFileSize": 0,
    "UnknownFileCount": 0,
    "KnownFileCount": 0,
    "KnownFileSize": 0,
    "LastBackupDate": "0001-01-01T00:00:00",
    "BackupListCount": 0,
    "TotalQuotaSpace": 352638205952,
    "FreeQuotaSpace": 69327446016,
    "AssignedQuotaSpace": -1,
    "ReportedQuotaError": false,
    "ReportedQuotaWarning": false,
    "MainOperation": "Backup",
    "ParsedResult": "Success",
    "Interrupted": false,
    "Version": "2.1.0.101 (2.1.0.101_canary_2024-12-06)",
    "EndTime": "0001-01-01T00:00:00",
    "BeginTime": "2024-12-11T01:47:27.0946365Z",
    "Duration": "00:00:00",
    "MessagesActualLength": 0,
    "WarningsActualLength": 0,
    "ErrorsActualLength": 0,
    "Messages": null,
    "Warnings": null,
    "Errors": null
  }
}  

The fact it seemingly can’t read or write anywhere leads me to believe it could be something else (selinux?).

If that’s turned on, someone who knows it will have to help, but I’m surprised 2.0.8.1 does differently.

SElinux seems to have been the issue (I temporary set it to permissive) as all my backups now work. I wonder if anyone else running fedora/rhel has this issue with the new builds.

I have not seen other reports about missing read access. But there is another SELinux issue reported:

The reason for the other SELinux issue, is that the new builds will symlink into /usr/bin where the previous version would have a shell script invoking mono.

Could it be that the permission issue is related to either binaries being in the “wrong” place, or perhaps mono was granted extra permissions?

I have upgraded a few Windows machines, a Linux machine, and my Synology NAS (docker image) to this version. So far everything is working well!

I’m looking for the “howto upgrade”-guide but am unable to find it :roll_eyes: In case it’s documented somewhere a link would be much appreciated.

And will I need to “Recreate the DB” or will they be converted locally?

There is currently no upgrade guide, as it is meant to “just work”, despite the large changes under the surface. The only two things that seem to cause issues is the change to default honor advisory locking and the mandatory API password. Both are described on the Duplicati with Docker page.

No need, all databases are auto-upgraded when you run the new version. No manual intervention needed.

Thx a lot! I didn’t even think of “installing just over” :slight_smile:

Problem though:

  • Downloaded win64-gui-msi
  • I’m running the service-variant, therefore stopped the service, installed msi, started service…
  • and get a password question which wasn’t there before :thinking:

What’s the default password?

There is no default password, as that is almost as bad as no password.

You can either grab the signin token from the Windows Event log or use ServerUtil.
All the ways are described on this page:

Yes, makes sense :slight_smile: and works :+1:

Hello all,

Now using Duplicati 2.1.0.2 beta on Fedora 41. After the successful migration of all my backup jobs from v2.0.x, they would not run without errors and/or warnings. Digging in the system logs using journalctl --b --follow while running the jobs showed SELinux’ policies as being the issue. I had to follow the instructions given by setroubleshootd to be able to run the jobs.

  1. open, read and lock access to user files
  2. ability to connect to a remote (non-standard) SSH port for SFTP backups

All this was fixed by adding this custom policy:

module my-NETTPWorker 1.0;

require {
	type http_port_t;
	type user_home_t;
	type init_t;
	class tcp_socket name_connect;
	class file { lock open read };
}
allow init_t http_port_t:tcp_socket name_connect;
allow init_t user_home_t:file { open read };
allow init_t user_home_t:file lock;
  1. ability to follow symlinks

This was fixed by adding this custom policy:

module my-WorkerThreadIR 1.0;

require {
	type init_t;
	type user_home_t;
	class lnk_file read;
}
allow init_t user_home_t:lnk_file read;

Note: I have practically no understanding of SELinux policies; I have just followed the copy-and-paste instructions that were given to me.

Question: is this the right way to fix these SELinux-related problems (client-side), or should this be fixed on Duplicati’s end?

Thanks, kind regards,
FWieP

That is a good question. I am not proficient enough with SELinux to give advice on how to configure it “correctly”.

The steps 1 and 2 are required by Duplicati. It needs open+read access to make backups, and write access to restore files. The port requirement is destination dependent, but looks correct.

For 3, I am not sure what the issue is here, but Duplicati needs to read symlinks (and hardlinks) to be able to backup and understand those.

There is another issue registered with SELinux not liking the idea of having the entire Duplicati installation confined to a single folder, but it looks like you are clear of that.

1 Like

Hi guys,
when is 2.1.0.2 coming to hub.docker.com as duplicati/duplicati:LATEST ?
Id like my machine to auto-update the container, and not have to switch tags or even images to linuxserver/duplicati.
Thanks!

That will happen when we release a stable version. The logic is that latest points to the latest stable release, but since that has not yet materialized, it is not updated.

I still hope to get a stable release out before new year :fireworks:

https://hub.docker.com/r/duplicati/duplicati says

Available tags

  • beta - the most recent beta release
  • experimental - the most recent experimental release
  • canary - the most recent canary release
  • latest - an alias for beta

which actually used to be correct, as latest and 2.0.8.1_beta_2024-05-07 appear the same.
This might be one of those awkward transitional moments, and above text will switch at stable.
Linuxserver kept going with latest = beta. I guess we’ll see what they do when stable is out.

Although Docker has its own update methods, you’ve now got me wondering what Duplicati’s update notifier will think it’s on in terms of channel if you swap a stable Docker for a Beta one.

would be one guess, and if so then this update notifier is out of sync with one watching latest.

like ts678 said, the tags beta
and latest
on hub.docker.com are described as being the same, and this is not true atm then?

Thanks for the update.
I updated my server yesterday and just wanted to say it seems to work as expected.
I use encrypted FTP and all testing since the upgrade has been successful. I’ve even tried changed TLS from 1.2 to TLS 1.3 and this also seems to work which previously I had issues with.

The only thing I noticed was I wasn’t able to log into the web gui right away (running as a service) as it said the password (or nonce?) was incorrect. But, I just left it for a little bit and then it was ok. Not sure if I was putting it in wrong or the database was still updating, but all is working now.

Thanks.

I was not aware of that text. The code that decides what gets the “latest” tag is here:

That setting essentially chooses what folder to look in on the update server. For Docker it means that you may get a notification for an update that is not there, or miss a notification.

No, it changed when I rewrote the release build process. Going forward it will be “latest == stable”.

Thanks for the feedback :pray: most comments are about things that don’t work :slight_smile:

That sounds super weird. There is no nonce anymore, but it could perhaps be a browser cache issue?

The workaround might be to manually change the updater channel to Docker tag that you chose. Typically these Docker builds seem to track the non-Docker builds pretty well. LSIO is also good.

Probably.

Use of existing tabs when switching Duplicati versions is perhaps common (especially if there isn’t a convenient tray icon to open a new one), and can probably lead to mysterious mismatches such as old JavaScript trying to authenticate the wrong way, e.g. if it actually talked about a nonce there.

For example, in Edge I log into 2.0.8.1 TrayIcon, stop it, replace with 2.1.0.2 Server, try a login, get

Port 8300 is just my setup. Trying again repeats error message. Browser refresh button solves it.

1 Like

The text made super sense for me, because Duplicati has got the word “beta” in its logo.
Maybe with stable version numbers of 2.* Duplicati should lose that word? For new users it doesn’t generate trust, because if you’re looking for a reliable backup software you don’t want “beta” stuff.
(“Lose all your data to a corrupt backup? Well maybe you shouldn’t have used a software that was still beta.”)

The “beta” text is loaded based on what version you are running, so a canary build will show “canary” for example. The word disappears once you are running a stable build.

And I agree completely that the beta mark needs to go.