mirror of
https://github.com/logos-storage/deluge.git
synced 2026-01-06 23:23:08 +00:00
Fix #1964 : Unhandled UnpicklingError with corrupt state file
This commit is contained in:
parent
b2eb5aeb8c
commit
16bbedaf2b
@ -652,7 +652,7 @@ class TorrentManager(component.Component):
|
||||
os.path.join(get_config_dir(), "state", "torrents.state"), "rb")
|
||||
state = cPickle.load(state_file)
|
||||
state_file.close()
|
||||
except (EOFError, IOError, Exception), e:
|
||||
except (EOFError, IOError, Exception, cPickle.UnpicklingError), e:
|
||||
log.warning("Unable to load state file: %s", e)
|
||||
|
||||
# Try to use an old state
|
||||
@ -741,8 +741,8 @@ class TorrentManager(component.Component):
|
||||
state_file.flush()
|
||||
os.fsync(state_file.fileno())
|
||||
state_file.close()
|
||||
except IOError:
|
||||
log.warning("Unable to save state file.")
|
||||
except IOError, e:
|
||||
log.warning("Unable to save state file: %s", e)
|
||||
return True
|
||||
|
||||
# We have to move the 'torrents.state.new' file to 'torrents.state'
|
||||
|
||||
@ -281,7 +281,7 @@ class FilesTab(Tab):
|
||||
state_file = open(os.path.join(config_location, filename), "rb")
|
||||
state = cPickle.load(state_file)
|
||||
state_file.close()
|
||||
except (EOFError, IOError, AttributeError), e:
|
||||
except (EOFError, IOError, AttributeError, cPickle.UnpicklingError), e:
|
||||
log.warning("Unable to load state file: %s", e)
|
||||
|
||||
if state == None:
|
||||
|
||||
@ -304,7 +304,7 @@ class ListView:
|
||||
state_file = open(os.path.join(config_location, filename), "rb")
|
||||
state = cPickle.load(state_file)
|
||||
state_file.close()
|
||||
except (EOFError, IOError), e:
|
||||
except (EOFError, IOError, cPickle.UnpicklingError), e:
|
||||
log.warning("Unable to load state file: %s", e)
|
||||
|
||||
# Keep the state in self.state so we can access it as we add new columns
|
||||
|
||||
@ -210,7 +210,7 @@ class PeersTab(Tab):
|
||||
state_file = open(os.path.join(config_location, filename), "rb")
|
||||
state = cPickle.load(state_file)
|
||||
state_file.close()
|
||||
except (EOFError, IOError, AttributeError), e:
|
||||
except (EOFError, IOError, AttributeError, cPickle.UnpicklingError), e:
|
||||
log.warning("Unable to load state file: %s", e)
|
||||
|
||||
if state == None:
|
||||
|
||||
@ -432,7 +432,7 @@ class TorrentDetails(component.Component):
|
||||
state_file = open(os.path.join(config_location, filename), "rb")
|
||||
state = cPickle.load(state_file)
|
||||
state_file.close()
|
||||
except (EOFError, IOError), e:
|
||||
except (EOFError, IOError, cPickle.UnpicklingError), e:
|
||||
log.warning("Unable to load state file: %s", e)
|
||||
|
||||
return state
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user