Opened at 2008-12-23T05:05:18Z
Closed at 2016-11-21T20:34:52Z
#561 closed defect (fixed)
cpu-watcher not resilient to corrupted pickles
Reported by: | zandr | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | undecided |
Component: | code-nodeadmin | Version: | 1.2.0 |
Keywords: | error cpu-watcher statistics easy reliability pickle | Cc: | |
Launchpad Bug: |
Description (last modified by daira)
I've seen a number of EOF errors trying to read the pickle, which seems like it should be pretty easy to trap.
This one, however, stumped me. First, I got:
amduser@prodtahoe1:~/prodnet/cpu-watcher$ tahoe start . STARTING /home/amduser/prodnet/cpu-watcher Failed to load application: '9' unknown (cpu-watcher.tac) node probably not started
Zooko helpfully suggested I try:
amduser@prodtahoe1:~/prodnet/cpu-watcher$ python -u cpu-watcher.tac Traceback (most recent call last): File "cpu-watcher.tac", line 227, in <module> CPUWatcher().setServiceParent(application) File "cpu-watcher.tac", line 106, in __init__ self.history = pickle.load(open("history.pickle", "rb")) File "/usr/lib/python2.5/pickle.py", line 1370, in load return Unpickler(file).load() File "/usr/lib/python2.5/pickle.py", line 858, in load dispatch[key](self) KeyError: '9'
Deleting the pickle solved the problem.
Change History (6)
comment:1 Changed at 2009-03-08T21:59:32Z by warner
- Component changed from unknown to code-nodeadmin
- Owner nobody deleted
comment:2 Changed at 2010-03-25T01:12:41Z by davidsarah
- Keywords error cpu-watcher statistics added
comment:3 Changed at 2010-10-09T14:46:15Z by zooko
- Keywords easy reliability added
comment:4 Changed at 2011-01-04T02:17:22Z by davidsarah
comment:5 Changed at 2014-01-17T23:27:22Z by daira
- Description modified (diff)
- Keywords pickle added
comment:6 Changed at 2016-11-21T20:34:52Z by rvs
- Resolution set to fixed
- Status changed from new to closed
This appears to be already fixed: all calls to pickle in cpu-watcher.tac are wrapped in try-except.
Note: See
TracTickets for help on using
tickets.
See also #1290 (replace all use of pickles with JSON).