Opened at 2009-01-12T18:43:08Z
Closed at 2010-02-23T06:32:43Z
#577 closed defect (fixed)
I want results to stick around until I explicitly tell them to go away (not: "unknown/expired handle")
Reported by: | zooko | Owned by: | kevan |
---|---|---|---|
Priority: | major | Milestone: | 1.6.1 |
Component: | code-frontend | Version: | 1.2.0 |
Keywords: | usability wui reliability memory repair verify ophandle easy reviewed | Cc: | |
Launchpad Bug: |
Description ¶
I ran a deep-verify operation, and when I hit "reload" to find out how it was going, I got:
unknown/expired handle 'xejkkdqay2ygimef2huncyxyci'
Fortunately in this case the operation I was performing was side-effect free, so this only costs my time. But what if it had been a side-effecting operation such as a deep repair? Then it would be impossible for me to find out what happened.
I know that I originally agreed to this time-out mechanism, but now I'm dissatisfied with it. What about adding a button to the form which says "Free up these results" and then storing the results until that button is pressed or the node is restarted?
Change History (17)
comment:1 Changed at 2009-01-12T20:19:14Z by zooko
- Summary changed from unknown/expired handle to I want results to stick around until I explicitly tell them to go away (not: "unknown/expired handle"P
comment:2 Changed at 2009-01-12T20:26:15Z by zooko
As an interim measure -- even if we don't go to a "keep this until I tell you to let go of it" design -- could we please set the timeouts to approximately one hundred times as long as they currently are? Maybe 100 hours for uncollected results and 1000 minutes for collected results?
comment:3 Changed at 2010-01-15T02:36:41Z by davidsarah
- Keywords usability added
- Summary changed from I want results to stick around until I explicitly tell them to go away (not: "unknown/expired handle"P to I want results to stick around until I explicitly tell them to go away (not: "unknown/expired handle")
comment:4 Changed at 2010-02-11T04:26:30Z by davidsarah
- Keywords wui added
comment:5 Changed at 2010-02-14T23:47:02Z by davidsarah
- Keywords reliability memory repair verify added
- Milestone changed from undecided to 1.7.0
#949 was a duplicate:
I just ran an important deep-check-and-repair, and when I came back to see what had happened I got "unknown/expired handle". This information is gone for good -- since the repair part repaired the files now there is now way for me to tell what their state was before the repair, which was information that I very much wanted to know.
I propose that operation handles be infinite duration by default, and people who want to save a few KB of virtual memory at the cost of risking losing information can configure their node to expire operation handles.
comment:6 Changed at 2010-02-14T23:48:56Z by davidsarah
- Keywords ophandle added
comment:7 Changed at 2010-02-15T19:55:38Z by davidsarah
- Keywords easy added
- Milestone changed from 1.7.0 to 1.6.1
Increasing the timeout would be very easy.
comment:9 Changed at 2010-02-20T22:17:12Z by kevan
- Keywords review-needed added
I'm attaching four patches that fix this.
- 577behavior.darcspatch.txt is the easy fix to the problem identified in this ticket.
- 577docs.darcspatch.txt updates webapi.txt to use the new expiration values.
- 577testmodifications.darcspatch.txt modifies the OphandleTable class to use a provided twisted.internet.task.Clock for callLater calls instead of the reactor, if such a clock is provided. It also changes some code in other classes to relay the provided clock to the OphandleTable?. To effectively test this fix, I needed a deterministic way to simulate the passage of large periods of time (since it is very probably unacceptable to have the test suite take 100 hours to run), and I gather that using twisted.internet.task.Clock is the way to do that. That said, I'm by no means a twisted expert, so if there's an easier way of doing that that I missed, please let me know.
- 577tests.darcspatch.txt adds tests for my changes.
I'm happy with where these are, so I'll add the review-needed keyword.
Changed at 2010-02-20T22:18:08Z by kevan
comment:10 follow-up: ↓ 11 Changed at 2010-02-21T00:28:02Z by davidsarah
- Keywords review-needed removed
100 hours and 1000 minutes require some mental arithmetic to grasp how long they are. How about 4 days and 1 day respectively (96 hours and 1440 minutes)?
In webapi.txt: "operations which have finished" -> "operations that have finished".
Nitpick: single blank line between test methods.
comment:11 in reply to: ↑ 10 Changed at 2010-02-21T01:44:50Z by kevan
Replying to davidsarah:
100 hours and 1000 minutes require some mental arithmetic to grasp how long they are. How about 4 days and 1 day respectively (96 hours and 1440 minutes)?
That's much nicer to think about (and read). I updated my patches to use those.
In webapi.txt: "operations which have finished" -> "operations that have finished".
Fixed.
Nitpick: single blank line between test methods.
Fixed.
Thanks for the feedback.
Changed at 2010-02-21T01:46:41Z by kevan
Changed at 2010-02-21T01:46:59Z by kevan
Changed at 2010-02-21T01:47:11Z by kevan
comment:12 Changed at 2010-02-22T05:05:49Z by zooko
- Keywords review-needed added
What's the status of this ticket? I think it is review-needed and that David-Sarah or someone should look at the latest versions of Kevan's patches.
comment:13 Changed at 2010-02-23T06:32:43Z by davidsarah
- Keywords reviewed added; review-needed removed
- Resolution set to fixed
- Status changed from new to closed
Reviewed and fixed in e9b59a4949d3237a, 09177a6e19af6e8f, bcdc78bd446f28e2, 81ad52d6ebf05f4f.
Making the Subject of this ticket a bit more specific -- I'm about to open another ticket with a different aspect of this problem.