Opened 14 years ago
Closed 14 years ago
#2095 closed Bug (invalid)
Crashing causes corrupt Transfers.plist
Reported by: | cybrian | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | None Set |
Component: | Mac Client | Version: | 1.61 |
Severity: | Major | Keywords: | transfers.plist corrupt |
Cc: |
Description
If Transmission crashes (which it does about once or twice a month, probably due to my 628 concurrent transfers), 9 out of 10 times Transfers.plist becomes corrupted, causing all of these transfers to disappear. I then must manually add them all. A workaround is to turn off the "adding transfer" window when this happens, go to
~/Library/Application Support/Transmission/Torrents
and drag all of the torrents to the Transmission window, turning the "adding transfer" window back on afterwards, but this is annoying. Another workaround would be for me to set up a cron job backing up Transfers.plist every day or so, but it would also be annoying. I don't know much about programming, but perhaps this would be solved if Transmission used a temporary file, rather than directly editing Transfers.plist.
I'm setting the Version to 1.61, since that's the version I am using, but I know that it started way back.
Change History (4)
comment:1 Changed 14 years ago by livings124
- Resolution set to invalid
- Status changed from new to closed
comment:2 Changed 14 years ago by cybrian
- Resolution invalid deleted
- Status changed from closed to reopened
The problem here is that any form of crashing, even when I use Force Quit or if I have a power outage, seems to be able to cause this problem. If Transmission is closed nicely it never occurs, but I'd say 9 out of 10 times that it's killed either by crashing or otherwise, Transfers.plist is corrupt. I'm reopening this since the problem isn't the crash itself, but if you still feel it's invalid, feel free to close it once more.
comment:3 Changed 14 years ago by charles
- Component changed from Transmission to Mac Client
comment:4 Changed 14 years ago by livings124
- Resolution set to invalid
- Status changed from reopened to closed
The torrent history is saved using writeToFile:atomically: with atomically set to YES.
If YES, the array is written to an auxiliary file, and then the auxiliary file is renamed to path. If NO, the array is written directly to path. The YES option guarantees that path, if it exists at all, won’t be corrupted even if the system should crash during writing.
I'm not sure what else can be done.
I think a better solution is to not crash. Can you reopen with a crash report?