Release: 2.0.9.100 (Canary) 2024-05-30

Fully updates Windows Server 2022, so Win10-core

I’ll see what I find comparing the installed files with the ZIP version

Hopefully this show what you need for comparing the folders/files

WinMerge.html.zip (13.9 KB)

Thanks for the diff!

It looks a bit strange.

The installed version seems to have the alphavss subfolder and some image files etc that are no longer in the packages. At the same time some files are different, like Duplicati.GUI.TrayIcon.exe which is supposed to be the exact same binary zipped or MSI packaged. At the very least, I suspect that some 2.0.8.1 files are left behind when installing the new version.

If you have an explanation for the changes, that would save some time, but otherwise I will try to set up a matching VM and experiment with reproducing.

Are you able to start Duplicati.Server.exe when unpacking the zip, or is it the same error message?

Can’t explain the differences, all I did was run the MSI installer over 2.0.8 with the FORSERVICE setting.

When I run it like the following, it just sits there and I need to Ctrl-C to kill it. No other processes get spawned, and there is nothing listening on port 8200:

C:\Users\administrator.STAR-ONE\Desktop\duplicati-2.0.9.100_canary_2024-05-30-win-x64-gui>Duplicati.Server.exe /localuser "--webservice-sslcertificatefile=C:\ProgramData\Duplicati\lisa.mydomain.com.pfx" "--webservice-sslcertificatepassword=12345"
^C

I found another issue with the upgrade from v2.0.8, it created a second installer entry:

I’m going to try uninstalling v2.0.9 and manually cleaning up the entry for v2.0.8 and the Program Files folder, then I will try my server install of the v2.0.9 MSI and see what happens.

So that fixed the install and now the service that was still there started as expected:

image

Currently it’s catching up on a missed backup so we’ll see how it looks after that.

Two more comments on the install - as this is a “for service” install, it would be nice if it didn’t add desktop icon or the tray tool - either make that part of “forservice” or give us separate parameters (or perhaps they already exist and I’m just not aware of them).

That probably explains a lot. Maybe I was cleaning up and figured there was no need to keep the “2” in the name and that somehow made it look like two different products that install to the same folder.

Ok, that makes a ton more sense. So it is an upgrade issue that causes all the problems :sweat_smile:

That is something I can debug fairly easily.

I can see that this part was removed from the new MSI because the wixl tool does not support the condition required to disable them. I will see if I can tweak it to add those conditions back in.

Alternative could be to install with something like this (tested):

msiexec /i file.msi FORSERVICE=true ADDLOCAL=ALL REMOVE=DuplicatiDesktopShortCutFeature,DuplicatiProgramMenuShortCutFeature,DuplicatiStartupShortCutFeature
1 Like

I can report that last night’s scheduled backup including using “duplicati_client.exe” to queue other backups jobs in the “after scripts” works as before. I will try a test file restore later today.

I am sure this is the reason behind the failed install, but I am unable to reproduce it.

I have set up a x64 machine from Windows Server 2022, fully updated.
Then I have installed 2.0.8.1, and I see “Duplicati 2” in the installed apps.

When I install 2.0.9.100, I see the name change to “Duplicati” in the installed apps.
I have not managed to get multiple listings in there.

I have also tried to keep the 2.0.8.1 version running, while updating.
This gave a number of errors, but ended up working just fine.

I have tried also with 2.0.6.1 and it gives me the same results.

@Taomyn do you have any hints/ideas/guesses as to how you could end up with two versions?

I’m not really sure. It’s quite an old installation data-wise although the server was rebuilt last year and Duplicati reinstalled clean in server mode, afterwards making sure re-point the systemprofile folders with hard links to the ProgramData folder before starting it up using the local system account.

I probably used the installer through my management software, Endpoint Central formerly Desktop Central, and definitely did the updates that way making sure that the service and tray icon were stopped - never with the built-in updater. It’s always worked until now so I’m not sure what could have happened.

I think the attached log was from one of the first updates I did, perhaps it can shed some light as it’s got a lot of debug messages.

174302_Duplicati v2c9.zip (24.0 KB)

I found this passage:

MSI (s) (E8:10) [10:37:43:054]: Doing action: INSTALL
MSI (s) (E8:10) [10:37:43:054]: Note: 1: 2262 2: ActionText 3: -2147287038 
Action start 10:37:43: INSTALL.
MSI (s) (E8:10) [10:37:43:055]: Running ExecuteSequence
MSI (s) (E8:10) [10:37:43:055]: Doing action: RemoveExistingProducts
MSI (s) (E8:10) [10:37:43:055]: Skipping RemoveExistingProducts action: current configuration is maintenance mode or an uninstall
Action start 10:37:43: RemoveExistingProducts.
MSI (s) (E8:10) [10:37:43:055]: Doing action: FindRelatedProducts
Action ended 10:37:43: RemoveExistingProducts. Return value 0.

Since there was already an installed product, I would expect this to do something for uninstalling.

I am no master of MSI internals, but the way I understand it, the property UpgradeCode should be the one determining if a product already exists, nothing else.

Looking at this, my guess is that Endpoint Central is doing something else, which may be totally valid, but different than normal msiexec. Can you get back to the previous situation with 2.0.8.1 being installed?

If so, I can make a new canary build that sets the Displayname property to Duplicati 2 in case this is the differentiator.

Yes, I have two other servers I can potentially upgrade the same way, but I can’t until this coming weekend, probably on Sunday - so no rush to produce a test build. I’ll make sure to capture the log file as well.

Question about the Linux versions: if Mono is no longer required for .NET does that mean after upgrading to v2.0.9 it can be removed from the OS? Or am I misunderstanding the changes to .NET8?

It means Duplicati won’t need it, but there may be something else needing it.

apt-cache rdepends mono-runtime gives duplicati and 132 other lines.
I recognize some of them as mono bits using the runtime, but others are not.

There doesn’t appear to be a build I can install for my Raspberry Pi4, the previous _all.deb worked fine, but I tried both x64 and arm64 and neither worked which I expected but tried them anyway.

Oh another question: what’s the difference between the cli and gui versions, is it simply there is no http frontend with the cli version?

That is the downside of not relying on the runtime being present in the OS, we need to ship for all variations. I would expect the arm64 version to run fine on RPi4.

Do you get any error messages?

The cli version is just without the Duplicati.GUI.TrayIcon.exe (aka duplicati) binary. With the cli version you get a smaller package and fewer dependencies compared to the gui version.

I think this RPI-4 is still 32bit, for “reasons”:

root@OTTO:/home/pi# uname -a
Linux OTTO.star-one.co.uk 6.1.21-v7l+ #1642 SMP Mon Apr  3 17:22:30 BST 2023 armv7l GNU/Linux

The only other RPI-4 I have I don’t want to test on right now, at least until I have tested it, and shows as:

pi@ziff:~ $ uname -a
Linux ziff.star-one.co.uk 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64 GNU/Linux

FYI I was able to upgrade a proper Debian 12 VM without issue - just waiting for it to run a backup, and it also popped up saying that the “mono” and some other packages are no longer needed and can be auto-removed. Will do that after the backups.

Thought I would try a quick test restore, single text file in the root folder, chose the option to rename the file and not overwrite, but it fails:

            {
  "RestoredFiles": 0,
  "SizeOfRestoredFiles": 0,
  "RestoredFolders": 0,
  "RestoredSymlinks": 0,
  "PatchedFiles": 0,
  "DeletedFiles": 0,
  "DeletedFolders": 0,
  "DeletedSymlinks": 0,
  "MainOperation": "Restore",
  "RecreateDatabaseResults": null,
  "ParsedResult": "Warning",
  "Interrupted": false,
  "Version": "2.0.9.100 (2.0.9.100_canary_2024-05-30)",
  "EndTime": "2024-06-24T09:44:21.6709851Z",
  "BeginTime": "2024-06-24T09:44:21.0362015Z",
  "Duration": "00:00:00.6347836",
  "MessagesActualLength": 7,
  "WarningsActualLength": 1,
  "ErrorsActualLength": 0,
  "Messages": [
    "2024-06-24 11:44:21 +02 - [Information-Duplicati.Library.Main.Controller-StartingOperation]: The operation Restore has started",
    "2024-06-24 11:44:21 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Started:  ()",
    "2024-06-24 11:44:21 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: List - Completed:  (482 bytes)",
    "2024-06-24 11:44:21 +02 - [Information-Duplicati.Library.Main.Database.LocalRestoreDatabase-SearchingBackup]: Searching backup 0 (21/06/2024 10:00:00) ...",
    "2024-06-24 11:44:21 +02 - [Information-Duplicati.Library.Main.Operation.RestoreHandler-RemoteFileCount]: 1 remote files are required to restore",
    "2024-06-24 11:44:21 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Get - Started: duplicati-b9e1c948b11ba46af96cdf16c441782c7.dblock.zip.aes (49.969 MB)",
    "2024-06-24 11:44:21 +02 - [Information-Duplicati.Library.Main.BasicResults-BackendEvent]: Backend event: Get - Completed: duplicati-b9e1c948b11ba46af96cdf16c441782c7.dblock.zip.aes (49.969 MB)"
  ],
  "Warnings": [
    "2024-06-24 11:44:21 +02 - [Warning-Duplicati.Library.Main.Operation.RestoreHandler-NoFilesRestored]: Restore completed without errors but no files were restored"
  ],
  "Errors": [],
  "BackendStatistics": {
    "RemoteCalls": 2,
    "BytesUploaded": 0,
    "BytesDownloaded": 52396381,
    "FilesUploaded": 0,
    "FilesDownloaded": 1,
    "FilesDeleted": 0,
    "FoldersCreated": 0,
    "RetryAttempts": 0,
    "UnknownFileSize": 0,
    "UnknownFileCount": 0,
    "KnownFileCount": 482,
    "KnownFileSize": 7453935386,
    "LastBackupDate": "2024-06-21T12:00:00+02:00",
    "BackupListCount": 28,
    "TotalQuotaSpace": 13194072424448,
    "FreeQuotaSpace": 2823176663040,
    "AssignedQuotaSpace": -1,
    "ReportedQuotaError": false,
    "ReportedQuotaWarning": false,
    "MainOperation": "Restore",
    "ParsedResult": "Success",
    "Interrupted": false,
    "Version": "2.0.9.100 (2.0.9.100_canary_2024-05-30)",
    "EndTime": "0001-01-01T00:00:00",
    "BeginTime": "2024-06-24T09:44:21.0362065Z",
    "Duration": "00:00:00",
    "MessagesActualLength": 0,
    "WarningsActualLength": 0,
    "ErrorsActualLength": 0,
    "Messages": null,
    "Warnings": null,
    "Errors": null
  }
}

Doesn’t seem to say why

Here is the explicit log:

24 Jun 2024 11:44: The operation Restore has completed
24 Jun 2024 11:44: Running Restore took 0:00:00:00.659
24 Jun 2024 11:44: ExecuteNonQuery: PRAGMA optimize took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: PRAGMA optimize
24 Jun 2024 11:44: RemoteOperationTerminate took 0:00:00:00.000
24 Jun 2024 11:44: Starting - RemoteOperationTerminate
24 Jun 2024 11:44: Restore completed without errors but no files were restored
24 Jun 2024 11:44: RestoreVerification took 0:00:00:00.000
24 Jun 2024 11:44: ExecuteReader: SELECT "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."ID", "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."TargetPath", "Blockset"."FullHash", "Blockset"."Length" FROM "Fileset-9655FF550C3B184CB5A96AC8BABD9608","Blockset" WHERE "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."BlocksetID" = "Blockset"."ID" AND "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."DataVerified" <= False took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteReader: SELECT "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."ID", "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."TargetPath", "Blockset"."FullHash", "Blockset"."Length" FROM "Fileset-9655FF550C3B184CB5A96AC8BABD9608","Blockset" WHERE "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."BlocksetID" = "Blockset"."ID" AND "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."DataVerified" <= False
24 Jun 2024 11:44: Starting - RestoreVerification
24 Jun 2024 11:44: Read metadata from file took 0:00:00:00.000
24 Jun 2024 11:44: Patching metadata with remote data: /root/f.txt
24 Jun 2024 11:44: Starting - Read metadata from file
24 Jun 2024 11:44: The metadata storage file has 1 entries and takes up 216 bytes
24 Jun 2024 11:44: ExecuteReader: SELECT "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."ID", "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."TargetPath", "Blockset"."FullHash", "Blockset"."Length" FROM "Fileset-9655FF550C3B184CB5A96AC8BABD9608","Blockset" WHERE "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."BlocksetID" = "Blockset"."ID" AND "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."DataVerified" <= False took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteReader: SELECT "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."ID", "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."TargetPath", "Blockset"."FullHash", "Blockset"."Length" FROM "Fileset-9655FF550C3B184CB5A96AC8BABD9608","Blockset" WHERE "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."BlocksetID" = "Blockset"."ID" AND "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."DataVerified" <= False
24 Jun 2024 11:44: CommitBlockMarker took 0:00:00:00.000
24 Jun 2024 11:44: Starting - CommitBlockMarker
24 Jun 2024 11:44: Recording metadata from remote data: /root/f.txt
24 Jun 2024 11:44: RemoteOperationGet took 0:00:00:00.464
24 Jun 2024 11:44: Backend event: Get - Completed: duplicati-b9e1c948b11ba46af96cdf16c441782c7.dblock.zip.aes (49.969 MB)
24 Jun 2024 11:44: Downloaded and decrypted 49.969 MB in 00:00:00.4639411, 107.706 MB/s
24 Jun 2024 11:44: Backend event: Get - Started: duplicati-b9e1c948b11ba46af96cdf16c441782c7.dblock.zip.aes (49.969 MB)
24 Jun 2024 11:44: Starting - RemoteOperationGet
24 Jun 2024 11:44: 1 remote files are required to restore
24 Jun 2024 11:44: GetMissingVolumes took 0:00:00:00.037
24 Jun 2024 11:44: Starting - GetMissingVolumes
24 Jun 2024 11:44: ScanForExistingSourceBlocksFast took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ScanForExistingSourceBlocksFast
24 Jun 2024 11:44: ScanForExistingTargetBlocks took 0:00:00:00.000
24 Jun 2024 11:44: CommitBlockMarker took 0:00:00:00.000
24 Jun 2024 11:44: Starting - CommitBlockMarker
24 Jun 2024 11:44: Target file exists and is correct version: /root/f.txt
24 Jun 2024 11:44: Starting - ScanForExistingTargetBlocks
24 Jun 2024 11:44: CreateDirectory took 0:00:00:00.000
24 Jun 2024 11:44: ExecuteReader: SELECT "TargetPath" FROM "Fileset-9655FF550C3B184CB5A96AC8BABD9608" WHERE "BlocksetID" == -100 took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteReader: SELECT "TargetPath" FROM "Fileset-9655FF550C3B184CB5A96AC8BABD9608" WHERE "BlocksetID" == -100
24 Jun 2024 11:44: Starting - CreateDirectory
24 Jun 2024 11:44: PrepareBlockList took 0:00:00:00.005
24 Jun 2024 11:44: CreateProgressTracker took 0:00:00:00.000
24 Jun 2024 11:44: ExecuteNonQuery: CREATE TEMPORARY TRIGGER "UpdateTotalStats_FileProgress-9383B14733BD4C4F8ACA7B6B05485690" AFTER UPDATE ON "FileProgress-9383B14733BD4C4F8ACA7B6B05485690" BEGIN UPDATE "TotalProgress-9383B14733BD4C4F8ACA7B6B05485690" SET "FilesFullyRestored" = "TotalProgress-9383B14733BD4C4F8ACA7B6B05485690"."FilesFullyRestored" + (CASE WHEN NEW."BlocksRestored" = NEW."TotalBlocks" THEN 1 ELSE 0 END) - (CASE WHEN OLD."BlocksRestored" = OLD."TotalBlocks" THEN 1 ELSE 0 END) , "FilesPartiallyRestored" = "TotalProgress-9383B14733BD4C4F8ACA7B6B05485690"."FilesPartiallyRestored" + (CASE WHEN NEW."BlocksRestored" BETWEEN 1 AND NEW."TotalBlocks" - 1 THEN 1 ELSE 0 END) - (CASE WHEN OLD."BlocksRestored" BETWEEN 1 AND OLD."TotalBlocks" - 1 THEN 1 ELSE 0 END) , "BlocksRestored" = "TotalProgress-9383B14733BD4C4F8ACA7B6B05485690"."BlocksRestored" + NEW."BlocksRestored" - OLD."BlocksRestored" , "SizeRestored" = "TotalProgress-9383B14733BD4C4F8ACA7B6B05485690"."SizeRestored" + NEW."SizeRestored" - OLD."SizeRestored" ; END took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: CREATE TEMPORARY TRIGGER "UpdateTotalStats_FileProgress-9383B14733BD4C4F8ACA7B6B05485690" AFTER UPDATE ON "FileProgress-9383B14733BD4C4F8ACA7B6B05485690" BEGIN UPDATE "TotalProgress-9383B14733BD4C4F8ACA7B6B05485690" SET "FilesFullyRestored" = "TotalProgress-9383B14733BD4C4F8ACA7B6B05485690"."FilesFullyRestored" + (CASE WHEN NEW."BlocksRestored" = NEW."TotalBlocks" THEN 1 ELSE 0 END) - (CASE WHEN OLD."BlocksRestored" = OLD."TotalBlocks" THEN 1 ELSE 0 END) , "FilesPartiallyRestored" = "TotalProgress-9383B14733BD4C4F8ACA7B6B05485690"."FilesPartiallyRestored" + (CASE WHEN NEW."BlocksRestored" BETWEEN 1 AND NEW."TotalBlocks" - 1 THEN 1 ELSE 0 END) - (CASE WHEN OLD."BlocksRestored" BETWEEN 1 AND OLD."TotalBlocks" - 1 THEN 1 ELSE 0 END) , "BlocksRestored" = "TotalProgress-9383B14733BD4C4F8ACA7B6B05485690"."BlocksRestored" + NEW."BlocksRestored" - OLD."BlocksRestored" , "SizeRestored" = "TotalProgress-9383B14733BD4C4F8ACA7B6B05485690"."SizeRestored" + NEW."SizeRestored" - OLD."SizeRestored" ; END
24 Jun 2024 11:44: ExecuteNonQuery: CREATE TEMPORARY TRIGGER "TrackRestoredBlocks_Blocks-9655FF550C3B184CB5A96AC8BABD9608" AFTER UPDATE OF "Restored" ON "Blocks-9655FF550C3B184CB5A96AC8BABD9608" WHEN OLD."Restored" != NEW."Restored" AND NEW."Metadata" = 0 BEGIN UPDATE "FileProgress-9383B14733BD4C4F8ACA7B6B05485690" SET "BlocksRestored" = "FileProgress-9383B14733BD4C4F8ACA7B6B05485690"."BlocksRestored" + (NEW."Restored" - OLD."Restored") , "SizeRestored" = "FileProgress-9383B14733BD4C4F8ACA7B6B05485690"."SizeRestored" + ((NEW."Restored" - OLD."Restored") * NEW.Size) WHERE "FileProgress-9383B14733BD4C4F8ACA7B6B05485690"."FileId" = NEW."FileID" ; END took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: CREATE TEMPORARY TRIGGER "TrackRestoredBlocks_Blocks-9655FF550C3B184CB5A96AC8BABD9608" AFTER UPDATE OF "Restored" ON "Blocks-9655FF550C3B184CB5A96AC8BABD9608" WHEN OLD."Restored" != NEW."Restored" AND NEW."Metadata" = 0 BEGIN UPDATE "FileProgress-9383B14733BD4C4F8ACA7B6B05485690" SET "BlocksRestored" = "FileProgress-9383B14733BD4C4F8ACA7B6B05485690"."BlocksRestored" + (NEW."Restored" - OLD."Restored") , "SizeRestored" = "FileProgress-9383B14733BD4C4F8ACA7B6B05485690"."SizeRestored" + ((NEW."Restored" - OLD."Restored") * NEW.Size) WHERE "FileProgress-9383B14733BD4C4F8ACA7B6B05485690"."FileId" = NEW."FileID" ; END
24 Jun 2024 11:44: ExecuteNonQuery: INSERT INTO "TotalProgress-9383B14733BD4C4F8ACA7B6B05485690" ( "TotalFiles", "TotalBlocks", "TotalSize" , "FilesFullyRestored", "FilesPartiallyRestored", "BlocksRestored", "SizeRestored" ) SELECT IFNULL(COUNT("P"."FileId"), 0), IFNULL(SUM("P"."TotalBlocks"), 0), IFNULL(SUM("P"."TotalSize"), 0) , IFNULL(COUNT(CASE WHEN "P"."BlocksRestored" = "P"."TotalBlocks" THEN 1 ELSE NULL END), 0) , IFNULL(COUNT(CASE WHEN "P"."BlocksRestored" BETWEEN 1 AND "P"."TotalBlocks" - 1 THEN 1 ELSE NULL END), 0) , IFNULL(SUM("P"."BlocksRestored"), 0), IFNULL(SUM("P"."SizeRestored"), 0) FROM "FileProgress-9383B14733BD4C4F8ACA7B6B05485690" "P" took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: INSERT INTO "TotalProgress-9383B14733BD4C4F8ACA7B6B05485690" ( "TotalFiles", "TotalBlocks", "TotalSize" , "FilesFullyRestored", "FilesPartiallyRestored", "BlocksRestored", "SizeRestored" ) SELECT IFNULL(COUNT("P"."FileId"), 0), IFNULL(SUM("P"."TotalBlocks"), 0), IFNULL(SUM("P"."TotalSize"), 0) , IFNULL(COUNT(CASE WHEN "P"."BlocksRestored" = "P"."TotalBlocks" THEN 1 ELSE NULL END), 0) , IFNULL(COUNT(CASE WHEN "P"."BlocksRestored" BETWEEN 1 AND "P"."TotalBlocks" - 1 THEN 1 ELSE NULL END), 0) , IFNULL(SUM("P"."BlocksRestored"), 0), IFNULL(SUM("P"."SizeRestored"), 0) FROM "FileProgress-9383B14733BD4C4F8ACA7B6B05485690" "P"
24 Jun 2024 11:44: ExecuteNonQuery: INSERT INTO "FileProgress-9383B14733BD4C4F8ACA7B6B05485690" ("FileId", "TotalBlocks", "TotalSize", "BlocksRestored", "SizeRestored") SELECT "F"."ID", IFNULL(COUNT("B"."ID"), 0), IFNULL(SUM("B"."Size"), 0) , IFNULL(COUNT(CASE "B"."Restored" WHEN 1 THEN "B"."ID" ELSE NULL END), 0) , IFNULL(SUM(CASE "B"."Restored" WHEN 1 THEN "B"."Size" ELSE 0 END), 0) FROM "Fileset-9655FF550C3B184CB5A96AC8BABD9608" "F" LEFT JOIN "Blocks-9655FF550C3B184CB5A96AC8BABD9608" "B" ON "B"."FileID" = "F"."ID" WHERE "B"."Metadata" IS NOT 1 GROUP BY "F"."ID" took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: INSERT INTO "FileProgress-9383B14733BD4C4F8ACA7B6B05485690" ("FileId", "TotalBlocks", "TotalSize", "BlocksRestored", "SizeRestored") SELECT "F"."ID", IFNULL(COUNT("B"."ID"), 0), IFNULL(SUM("B"."Size"), 0) , IFNULL(COUNT(CASE "B"."Restored" WHEN 1 THEN "B"."ID" ELSE NULL END), 0) , IFNULL(SUM(CASE "B"."Restored" WHEN 1 THEN "B"."Size" ELSE 0 END), 0) FROM "Fileset-9655FF550C3B184CB5A96AC8BABD9608" "F" LEFT JOIN "Blocks-9655FF550C3B184CB5A96AC8BABD9608" "B" ON "B"."FileID" = "F"."ID" WHERE "B"."Metadata" IS NOT 1 GROUP BY "F"."ID"
24 Jun 2024 11:44: ExecuteNonQuery: CREATE TEMPORARY TABLE "TotalProgress-9383B14733BD4C4F8ACA7B6B05485690" ( "TotalFiles" INTEGER NOT NULL, "TotalBlocks" INTEGER NOT NULL, "TotalSize" INTEGER NOT NULL , "FilesFullyRestored" INTEGER NOT NULL, "FilesPartiallyRestored" INTEGER NOT NULL , "BlocksRestored" INTEGER NOT NULL, "SizeRestored" INTEGER NOT NULL ) took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: CREATE TEMPORARY TABLE "TotalProgress-9383B14733BD4C4F8ACA7B6B05485690" ( "TotalFiles" INTEGER NOT NULL, "TotalBlocks" INTEGER NOT NULL, "TotalSize" INTEGER NOT NULL , "FilesFullyRestored" INTEGER NOT NULL, "FilesPartiallyRestored" INTEGER NOT NULL , "BlocksRestored" INTEGER NOT NULL, "SizeRestored" INTEGER NOT NULL )
24 Jun 2024 11:44: ExecuteNonQuery: DROP TABLE IF EXISTS "TotalProgress-9383B14733BD4C4F8ACA7B6B05485690" took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: DROP TABLE IF EXISTS "TotalProgress-9383B14733BD4C4F8ACA7B6B05485690"
24 Jun 2024 11:44: ExecuteNonQuery: CREATE TEMPORARY TABLE "FileProgress-9383B14733BD4C4F8ACA7B6B05485690" ( "FileId" INTEGER PRIMARY KEY , "TotalBlocks" INTEGER NOT NULL, "TotalSize" INTEGER NOT NULL , "BlocksRestored" INTEGER NOT NULL, "SizeRestored" INTEGER NOT NULL ) took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: CREATE TEMPORARY TABLE "FileProgress-9383B14733BD4C4F8ACA7B6B05485690" ( "FileId" INTEGER PRIMARY KEY , "TotalBlocks" INTEGER NOT NULL, "TotalSize" INTEGER NOT NULL , "BlocksRestored" INTEGER NOT NULL, "SizeRestored" INTEGER NOT NULL )
24 Jun 2024 11:44: ExecuteNonQuery: DROP TABLE IF EXISTS "FileProgress-9383B14733BD4C4F8ACA7B6B05485690" took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: DROP TABLE IF EXISTS "FileProgress-9383B14733BD4C4F8ACA7B6B05485690"
24 Jun 2024 11:44: Starting - CreateProgressTracker
24 Jun 2024 11:44: FindMissingBlocks took 0:00:00:00.000
24 Jun 2024 11:44: Restore list contains 2 blocks with a total size of 4.191 KB
24 Jun 2024 11:44: ExecuteScalarInt64: SELECT SUM("Size") FROM "Blocks-9655FF550C3B184CB5A96AC8BABD9608" took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteScalarInt64: SELECT SUM("Size") FROM "Blocks-9655FF550C3B184CB5A96AC8BABD9608"
24 Jun 2024 11:44: Starting - FindMissingBlocks
24 Jun 2024 11:44: SetTargetPaths took 0:00:00:00.000
24 Jun 2024 11:44: ExecuteNonQuery: UPDATE "Fileset-9655FF550C3B184CB5A96AC8BABD9608" SET "Targetpath" = "Path" took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: UPDATE "Fileset-9655FF550C3B184CB5A96AC8BABD9608" SET "Targetpath" = "Path"
24 Jun 2024 11:44: Starting - SetTargetPaths
24 Jun 2024 11:44: PrepareRestoreFileList took 0:00:00:00.004
24 Jun 2024 11:44: Needs to restore 1 files (4.007 KB)
24 Jun 2024 11:44: ExecuteReader: SELECT COUNT(DISTINCT "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."Path"), SUM("Blockset"."Length") FROM "Fileset-9655FF550C3B184CB5A96AC8BABD9608", "Blockset" WHERE "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."BlocksetID" = "Blockset"."ID" took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteReader: SELECT COUNT(DISTINCT "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."Path"), SUM("Blockset"."Length") FROM "Fileset-9655FF550C3B184CB5A96AC8BABD9608", "Blockset" WHERE "Fileset-9655FF550C3B184CB5A96AC8BABD9608"."BlocksetID" = "Blockset"."ID"
24 Jun 2024 11:44: CommitPrepareFileset took 0:00:00:00.000
24 Jun 2024 11:44: Starting - CommitPrepareFileset
24 Jun 2024 11:44: ExecuteNonQuery: DROP TABLE IF EXISTS "Filenames-9655FF550C3B184CB5A96AC8BABD9608" took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: DROP TABLE IF EXISTS "Filenames-9655FF550C3B184CB5A96AC8BABD9608"
24 Jun 2024 11:44: ExecuteNonQuery: CREATE TEMPORARY TABLE "Filenames-9655FF550C3B184CB5A96AC8BABD9608" ("Path" TEXT NOT NULL) took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: CREATE TEMPORARY TABLE "Filenames-9655FF550C3B184CB5A96AC8BABD9608" ("Path" TEXT NOT NULL)
24 Jun 2024 11:44: ExecuteNonQuery: CREATE INDEX "Blocks-9655FF550C3B184CB5A96AC8BABD9608_FileIdIndexIndex" ON "Blocks-9655FF550C3B184CB5A96AC8BABD9608" ("FileId", "Index") took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: CREATE INDEX "Blocks-9655FF550C3B184CB5A96AC8BABD9608_FileIdIndexIndex" ON "Blocks-9655FF550C3B184CB5A96AC8BABD9608" ("FileId", "Index")
24 Jun 2024 11:44: ExecuteNonQuery: CREATE INDEX "Blocks-9655FF550C3B184CB5A96AC8BABD9608_HashSizeIndex" ON "Blocks-9655FF550C3B184CB5A96AC8BABD9608" ("Hash", "Size") took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: CREATE INDEX "Blocks-9655FF550C3B184CB5A96AC8BABD9608_HashSizeIndex" ON "Blocks-9655FF550C3B184CB5A96AC8BABD9608" ("Hash", "Size")
24 Jun 2024 11:44: ExecuteNonQuery: CREATE INDEX "Fileset-9655FF550C3B184CB5A96AC8BABD9608_Index" ON "Fileset-9655FF550C3B184CB5A96AC8BABD9608" ("TargetPath") took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: CREATE INDEX "Fileset-9655FF550C3B184CB5A96AC8BABD9608_Index" ON "Fileset-9655FF550C3B184CB5A96AC8BABD9608" ("TargetPath")
24 Jun 2024 11:44: ExecuteNonQuery: CREATE TEMPORARY TABLE "Blocks-9655FF550C3B184CB5A96AC8BABD9608" ("ID" INTEGER PRIMARY KEY, "FileID" INTEGER NOT NULL, "Index" INTEGER NOT NULL, "Hash" TEXT NOT NULL, "Size" INTEGER NOT NULL, "Restored" BOOLEAN NOT NULL, "Metadata" BOOLEAN NOT NULL) took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: CREATE TEMPORARY TABLE "Blocks-9655FF550C3B184CB5A96AC8BABD9608" ("ID" INTEGER PRIMARY KEY, "FileID" INTEGER NOT NULL, "Index" INTEGER NOT NULL, "Hash" TEXT NOT NULL, "Size" INTEGER NOT NULL, "Restored" BOOLEAN NOT NULL, "Metadata" BOOLEAN NOT NULL)
24 Jun 2024 11:44: ExecuteNonQuery: CREATE TEMPORARY TABLE "Fileset-9655FF550C3B184CB5A96AC8BABD9608" ("ID" INTEGER PRIMARY KEY, "Path" TEXT NOT NULL, "BlocksetID" INTEGER NOT NULL, "MetadataID" INTEGER NOT NULL, "TargetPath" TEXT NULL, "DataVerified" BOOLEAN NOT NULL) took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: CREATE TEMPORARY TABLE "Fileset-9655FF550C3B184CB5A96AC8BABD9608" ("ID" INTEGER PRIMARY KEY, "Path" TEXT NOT NULL, "BlocksetID" INTEGER NOT NULL, "MetadataID" INTEGER NOT NULL, "TargetPath" TEXT NULL, "DataVerified" BOOLEAN NOT NULL)
24 Jun 2024 11:44: ExecuteNonQuery: DROP TABLE IF EXISTS "Blocks-9655FF550C3B184CB5A96AC8BABD9608" took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: DROP TABLE IF EXISTS "Blocks-9655FF550C3B184CB5A96AC8BABD9608"
24 Jun 2024 11:44: ExecuteNonQuery: DROP TABLE IF EXISTS "Fileset-9655FF550C3B184CB5A96AC8BABD9608" took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteNonQuery: DROP TABLE IF EXISTS "Fileset-9655FF550C3B184CB5A96AC8BABD9608"
24 Jun 2024 11:44: Searching backup 0 (21/06/2024 10:00:00) ...
24 Jun 2024 11:44: ExecuteReader: SELECT "ID", "Timestamp" FROM "Fileset" ORDER BY "Timestamp" DESC took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteReader: SELECT "ID", "Timestamp" FROM "Fileset" ORDER BY "Timestamp" DESC
24 Jun 2024 11:44: ExecuteScalarInt64: SELECT "Timestamp" FROM "Fileset" WHERE "ID" = 503 took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteScalarInt64: SELECT "Timestamp" FROM "Fileset" WHERE "ID" = 503
24 Jun 2024 11:44: ExecuteReader: SELECT "ID" FROM "Fileset" WHERE "Timestamp" <= 1718964000 ORDER BY "Timestamp" DESC took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteReader: SELECT "ID" FROM "Fileset" WHERE "Timestamp" <= 1718964000 ORDER BY "Timestamp" DESC
24 Jun 2024 11:44: ExecuteReader: SELECT "ID", "Timestamp" FROM "Fileset" ORDER BY "Timestamp" DESC took 0:00:00:00.000
24 Jun 2024 11:44: Starting - ExecuteReader: SELECT "ID", "Timestamp" FROM "Fileset" ORDER BY "Timestamp" DESC

Yes, then you need an Armv7 package. I thought it was considered legacy, but it looks like it will stay in .NET for some time.

I can add the armv7 packages to the next build. For now I have added some quick builds here: