Stop button not working in 2.1.0.120 + 2.1.0.125

Currently have 2.1.0.125 stuck mid-backup after ngax Terminate. Not sure what Canary broke it.

Release: 2.1.0.120 (Canary) 2025-06-24 was a discussion on stop function where I ran into this.

EDIT 1:

ngax lastPgEvent seems to agree that it’s partway through reading a file (actual size 306184192):

lastPgEvent : {“BackupID”:“2”,“TaskID”:31,“BackendAction”:“Get”,“BackendPath”:null,“BackendFileSize”:0,“BackendFileProgress”:0,“BackendSpeed”:-1,“BackendIsBlocking”:false,“CurrentFilename”:“C:\\backup source\\debian-9.9.0-amd64-netinst.iso”,“CurrentFilesize”:306184192,“CurrentFileoffset”:99614720,“CurrentFilecomplete”:true,“Phase”:“Backup_ProcessingFiles”,“OverallProgress”:0,“ProcessedFileCount”:3,“ProcessedFileSize”:41264224,“TotalFileCount”:4,“TotalFileSize”:347448416,“StillCounting”:false,“ActiveTransfers”:}

Job database is open, along with its -wal and -shmsuffix files. Fortunately I can still open the DB. Fileset is there, File is there and has a blockset, although its size is currently listed as 41264222 so uneven in binary. Last block is size 369758, which is odd. File size is very even in hex 0x12400000. There are 39 full size blocks in front, so those plus the oddly sized last block does get to 41264224.

It seems a little confused about the large file. A.txt and B.txt are old. Below are Verbose messages:

2025-08-05 07:25:13 -04 - [Verbose-Duplicati.Library.Main.Operation.Backup.FilePreFilterProcess.FileEntry-CheckFileForChanges]: Checking file for changes C:\backup source\debian-9.9.0-amd64-netinst.iso, new: True, timestamp changed: True, size changed: True, metadatachanged: True, 5/22/2019 9:53:25 PM vs 1/1/0001 12:00:00 AM
2025-08-05 07:25:25 -04 - [Verbose-Duplicati.Library.Main.Operation.Backup.FilePreFilterProcess.FileEntry-SkipCheckNoMetadataChange]: Skipped checking file, because no metadata was updated C:\backup source\duplicati-2.0.6.3_beta_2021-06-17.zip
2025-08-05 07:25:25 -04 - [Verbose-Duplicati.Library.Main.Operation.Backup.FilePreFilterProcess.FileEntry-SkipCheckNoMetadataChange]: Skipped checking file, because no metadata was updated C:\backup source\B.txt
2025-08-05 07:25:25 -04 - [Verbose-Duplicati.Library.Main.Operation.Backup.FilePreFilterProcess.FileEntry-SkipCheckNoMetadataChange]: Skipped checking file, because no metadata was updated C:\backup source\A.txt
2025-08-05 08:04:18 -04 - [Verbose-Duplicati.Library.Main.Controller-CancellationRequested]: Cancellation Requested

EDIT 2:

.124 can get into a similar hang from ngax Terminate. It did take about 4 tries.
For awhile I tried Terminate sort of mid-read through the file, and got a popup.
I then tried it earlier, and got hang with no popup and nothing new in profiling.

lastPgEvent : {“BackupID”:“3”,“TaskID”:6,“BackendAction”:“Get”,“BackendPath”:null,“BackendFileSize”:0,“BackendFileProgress”:0,“BackendSpeed”:-1,“BackendIsBlocking”:false,“CurrentFilename”:“C:\backup source\debian-9.9.0-amd64-netinst.iso”,“CurrentFilesize”:306184192,“CurrentFileoffset”:0,“CurrentFilecomplete”:true,“Phase”:“Backup_ProcessingFiles”,“OverallProgress”:0,“ProcessedFileCount”:1,“ProcessedFileSize”:39,“TotalFileCount”:2,“TotalFileSize”:306184231,“StillCounting”:false,“ActiveTransfers”:}

This topic is a bit split, but at least for the case you have here, would a reproduction step be:

  1. Create a non-trivial data set (say 50GB to get some processing time)
  2. Start the backup
  3. Wait a few seconds
  4. Click “Stop now”
  5. Backup hangs but server is responsive?

I don’t have exact steps, but generally I added a non-trivial file to a trivial file. Probably it would work directly to the larger file, but I haven’t tried. Timing also varies as mentioned. Button was ngax “Terminate”, and I haven’t tried ngclient to see if it can also fall into this.

So minimal recipe isn’t known, but it’s pretty easy to get there eventually.

Ok, I have created an issue for figuring out what causes this.