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


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

I think a better solution is to not crash. Can you reopen with a crash report?

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.

Note: See TracTickets for help on using tickets.