1 | <html><head> |
---|
2 | <meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Exception</title></head><body><style type="text/css"> |
---|
3 | p.error { |
---|
4 | color: black; |
---|
5 | font-family: Verdana, Arial, helvetica, sans-serif; |
---|
6 | font-weight: bold; |
---|
7 | font-size: large; |
---|
8 | margin: 0.25em; |
---|
9 | } |
---|
10 | |
---|
11 | div { |
---|
12 | font-family: Verdana, Arial, helvetica, sans-serif; |
---|
13 | } |
---|
14 | |
---|
15 | strong.variableClass { |
---|
16 | font-size: small; |
---|
17 | } |
---|
18 | |
---|
19 | div.stackTrace { |
---|
20 | } |
---|
21 | |
---|
22 | div.frame { |
---|
23 | padding: 0.25em; |
---|
24 | background: white; |
---|
25 | border-bottom: thin black dotted; |
---|
26 | } |
---|
27 | |
---|
28 | div.firstFrame { |
---|
29 | padding: 0.25em; |
---|
30 | background: white; |
---|
31 | border-top: thin black dotted; |
---|
32 | border-bottom: thin black dotted; |
---|
33 | } |
---|
34 | |
---|
35 | div.location { |
---|
36 | font-size: small; |
---|
37 | } |
---|
38 | |
---|
39 | div.snippet { |
---|
40 | background: #FFFFDD; |
---|
41 | padding: 0.25em; |
---|
42 | } |
---|
43 | |
---|
44 | div.snippetHighlightLine { |
---|
45 | color: red; |
---|
46 | } |
---|
47 | |
---|
48 | span.lineno { |
---|
49 | font-size: small; |
---|
50 | } |
---|
51 | |
---|
52 | pre.code { |
---|
53 | margin: 0px; |
---|
54 | padding: 0px; |
---|
55 | display: inline; |
---|
56 | font-size: small; |
---|
57 | font-family: "Courier New", courier, monotype; |
---|
58 | } |
---|
59 | |
---|
60 | span.function { |
---|
61 | font-weight: bold; |
---|
62 | font-family: "Courier New", courier, monotype; |
---|
63 | } |
---|
64 | |
---|
65 | table.variables { |
---|
66 | border-collapse: collapse; |
---|
67 | width: 100%; |
---|
68 | } |
---|
69 | |
---|
70 | td.varName { |
---|
71 | width: 1in; |
---|
72 | vertical-align: top; |
---|
73 | font-style: italic; |
---|
74 | font-size: small; |
---|
75 | padding-right: 0.25em; |
---|
76 | } |
---|
77 | |
---|
78 | td.varValue { |
---|
79 | padding-left: 0.25em; |
---|
80 | padding-right: 0.25em; |
---|
81 | font-size: small; |
---|
82 | } |
---|
83 | |
---|
84 | div.variables { |
---|
85 | margin-top: 0.5em; |
---|
86 | } |
---|
87 | |
---|
88 | div.dict { |
---|
89 | background: #cccc99; |
---|
90 | padding: 2px; |
---|
91 | float: left; |
---|
92 | } |
---|
93 | |
---|
94 | td.dictKey { |
---|
95 | background: #ffff99; |
---|
96 | font-weight: bold; |
---|
97 | } |
---|
98 | |
---|
99 | td.dictValue { |
---|
100 | background: #ffff99; |
---|
101 | } |
---|
102 | |
---|
103 | div.list { |
---|
104 | background: #7777cc; |
---|
105 | padding: 2px; |
---|
106 | float: left; |
---|
107 | } |
---|
108 | |
---|
109 | div.listItem { |
---|
110 | background: #9999ff; |
---|
111 | } |
---|
112 | |
---|
113 | div.instance { |
---|
114 | width: 100%; |
---|
115 | background: #efefef; |
---|
116 | padding: 2px; |
---|
117 | float: left; |
---|
118 | } |
---|
119 | |
---|
120 | span.instanceName { |
---|
121 | font-size: small; |
---|
122 | display: block; |
---|
123 | } |
---|
124 | |
---|
125 | span.instanceRepr { |
---|
126 | font-family: "Courier New", courier, monotype; |
---|
127 | } |
---|
128 | |
---|
129 | div.function { |
---|
130 | background: orange; |
---|
131 | font-weight: bold; |
---|
132 | float: left; |
---|
133 | } |
---|
134 | </style><a href="#tracebackEnd"><p class="error"><type 'exceptions.AttributeError'>: MutableFileNode instance has no attribute '_writekey'</p></a><div class="stackTrace"><div class="firstFrame"><div class="location">/usr/lib/python2.5/site-packages/twisted/internet/defer.py, line 328 in <span class="function">_runCallbacks</span></div><div class="snippet"><div class="snippetLine"><span class="lineno">326</span><pre class="code"> self._runningCallbacks = True |
---|
135 | </pre></div><div class="snippetLine"><span class="lineno">327</span><pre class="code"> try: |
---|
136 | </pre></div><div class="snippetHighlightLine"><span class="lineno">328</span><pre class="code"> self.result = callback(self.result, *args, **kw) |
---|
137 | </pre></div><div class="snippetLine"><span class="lineno">329</span><pre class="code"> finally: |
---|
138 | </pre></div></div><div class="variables"><strong class="variableClass">Locals</strong></div><table class="variables"><tbody><tr class="varRow"><td class="varName">callback</td><td class="varValue"><bound |
---|
139 | method MutableCheckAndRepairer._maybe_repair of |
---|
140 | <allmydata.mutable.checker.MutableCheckAndRepairer instance at |
---|
141 | 0x90a4c8c>></td></tr><tr class="varRow"><td class="varName">self</td><td class="varValue"><Deferred at 0x95332cc current result: None></td></tr><tr class="varRow"><td class="varName">args</td><td class="varValue">()</td></tr><tr class="varRow"><td class="varName">kw</td><td class="varValue">{}</td></tr></tbody></table></div><div class="frame"><div class="location">/usr/lib/python2.5/site-packages/allmydata/mutable/checker.py, line 301 in <span class="function">_maybe_repair</span></div><div class="snippet"><div class="snippetLine"><span class="lineno">299</span><pre class="code"> return |
---|
142 | </pre></div><div class="snippetLine"><span class="lineno">300</span><pre class="code"> self.cr_results.repair_attempted = True |
---|
143 | </pre></div><div class="snippetHighlightLine"><span class="lineno">301</span><pre class="code"> d = self._node.repair(self.results) |
---|
144 | </pre></div><div class="snippetLine"><span class="lineno">302</span><pre class="code"> def _repair_finished(repair_results): |
---|
145 | </pre></div></div><div class="variables"><strong class="variableClass">Locals</strong></div><table class="variables"><tbody><tr class="varRow"><td class="varName">self</td><td class="varValue"><allmydata.mutable.checker.MutableCheckAndRepairer instance at 0x90a4c8c></td></tr></tbody></table></div><div class="frame"><div class="location">/usr/lib/python2.5/site-packages/allmydata/mutable/filenode.py, line 263 in <span class="function">repair</span></div><div class="snippet"><div class="snippetLine"><span class="lineno">261</span><pre class="code"> assert ICheckResults(check_results) |
---|
146 | </pre></div><div class="snippetLine"><span class="lineno">262</span><pre class="code"> r = Repairer(self, check_results) |
---|
147 | </pre></div><div class="snippetHighlightLine"><span class="lineno">263</span><pre class="code"> d = r.start(force) |
---|
148 | </pre></div><div class="snippetLine"><span class="lineno">264</span><pre class="code"> return d |
---|
149 | </pre></div></div><div class="variables"><strong class="variableClass">Locals</strong></div><table class="variables"><tbody><tr class="varRow"><td class="varName">check_results</td><td class="varValue"><allmydata.check_results.CheckResults instance at 0x90a696c></td></tr><tr class="varRow"><td class="varName">r</td><td class="varValue"><allmydata.mutable.repairer.Repairer instance at 0x94a3f8c></td></tr><tr class="varRow"><td class="varName">force</td><td class="varValue">False</td></tr><tr class="varRow"><td class="varName">self</td><td class="varValue"><MutableFileNode 8c5feac RO j6huo2ln></td></tr></tbody></table><div class="variables"><strong class="variableClass">Globals</strong></div><table class="variables"><tbody><tr class="varRow"><td class="varName">ICheckResults</td><td class="varValue"><InterfaceClass allmydata.interfaces.ICheckResults></td></tr><tr class="varRow"><td class="varName">Repairer</td><td class="varValue"><class allmydata.mutable.repairer.Repairer at 0xb62ac02c></td></tr></tbody></table></div><div class="frame"><div class="location">/usr/lib/python2.5/site-packages/allmydata/mutable/repairer.py, line 89 in <span class="function">start</span></div><div class="snippet"><div class="snippetLine"><span class="lineno">87</span><pre class="code"> # say, added an smap.get_privkey() method. |
---|
150 | </pre></div><div class="snippetLine"><span class="lineno">88</span><pre class="code"></pre></div><div class="snippetHighlightLine"><span class="lineno">89</span><pre class="code"> assert self.node.get_writekey() # repair currently requires a writecap |
---|
151 | </pre></div><div class="snippetLine"><span class="lineno">90</span><pre class="code"></pre></div></div><div class="variables"><strong class="variableClass">Locals</strong></div><table class="variables"><tbody><tr class="varRow"><td class="varName">self</td><td class="varValue"><allmydata.mutable.repairer.Repairer instance at 0x94a3f8c></td></tr><tr class="varRow"><td class="varName">smap</td><td class="varValue"><allmydata.mutable.servermap.ServerMap instance at 0x90a1e0c></td></tr></tbody></table></div><div class="frame"><div class="location">/usr/lib/python2.5/site-packages/allmydata/mutable/filenode.py, line 172 in <span class="function">get_writekey</span></div><div class="snippet"><div class="snippetLine"><span class="lineno">170</span><pre class="code"></pre></div><div class="snippetLine"><span class="lineno">171</span><pre class="code"> def get_writekey(self): |
---|
152 | </pre></div><div class="snippetHighlightLine"><span class="lineno">172</span><pre class="code"> return self._writekey |
---|
153 | </pre></div><div class="snippetLine"><span class="lineno">173</span><pre class="code"> def get_readkey(self): |
---|
154 | </pre></div></div><div class="variables"><strong class="variableClass">Locals</strong></div><table class="variables"><tbody><tr class="varRow"><td class="varName">self</td><td class="varValue"><MutableFileNode 8c5feac RO j6huo2ln></td></tr></tbody></table></div></div><a name="tracebackEnd"><p class="error"><type 'exceptions.AttributeError'>: MutableFileNode instance has no attribute '_writekey'</p></a></body></html> |
---|