Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ipfs refs times out #1050

Closed
jbenet opened this issue Apr 10, 2015 · 5 comments
Closed

ipfs refs times out #1050

jbenet opened this issue Apr 10, 2015 · 5 comments
Assignees
Labels
exp/novice Someone with a little familiarity can pick up kind/bug A bug in existing code (including security flaws) topic/commands Topic commands

Comments

@jbenet
Copy link
Member

jbenet commented Apr 10, 2015

ipfs refs -r <ref> sometimes times out for me, and returns a 0 error code!!! it should return an error code...

@jbenet jbenet added kind/bug A bug in existing code (including security flaws) topic/commands Topic commands difficulty: easy labels Apr 10, 2015
@whyrusleeping
Copy link
Member

does it time out for blocks that you know are available somewhere?

@jbenet
Copy link
Member Author

jbenet commented Apr 11, 2015

Yes.


Sent from Mailbox

On Sat, Apr 11, 2015 at 12:02 PM, Jeromy Johnson notifications@github.com
wrote:

does it time out for blocks that you know are available somewhere?

Reply to this email directly or view it on GitHub:
#1050 (comment)

@whyrusleeping whyrusleeping mentioned this issue May 4, 2015
22 tasks
@cryptix cryptix self-assigned this May 4, 2015
@jbenet jbenet mentioned this issue May 4, 2015
36 tasks
@cryptix
Copy link
Contributor

cryptix commented May 10, 2015

I looked into this twice and honestly, I couldn't make heads or tails of it. There is really now structured way of handling contexts right now and you can still find context.TODO() in some places, I think.

The problem I had tracking this down betters is, that we are passing up errors plainly without wrapping them. I.e.

_, err := coreStuff.It(...)
if err != nil {
  return err
}

// instead of 
_, err := coreStuff.It(...)
if err != nil {
  return errgo.Wrap(err, "we failed to Stuff.It ")
}

Without this, the timeout cancelations end up as plain context: deadline exceeded at the receiving end of the commands lib leaving you without a trace about which step in the command actually timed out.

I had good experiences with errgo, like that from juju or gopkg.in to make errors more expressive. With some discussion of corse, I'd like to start introducing it in the next sprint. Having a general pattern for error handing would help us in general I think. This is still alpha software after all and proper error traces would also help us with big reports from users.

@whyrusleeping
Copy link
Member

most likely, something is happening that just causes the channel of keys to be closed prematurely. we need a way of signalling that a channelmarshaler has failed.

@jbenet jbenet added status/in-progress In progress and removed sprint labels May 11, 2015
@whyrusleeping whyrusleeping mentioned this issue May 11, 2015
30 tasks
@jbenet jbenet mentioned this issue May 19, 2015
52 tasks
@whyrusleeping
Copy link
Member

this has been addressed

@RichardLitt RichardLitt added the exp/novice Someone with a little familiarity can pick up label Feb 2, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
exp/novice Someone with a little familiarity can pick up kind/bug A bug in existing code (including security flaws) topic/commands Topic commands
Projects
None yet
Development

No branches or pull requests

5 participants