-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
IPNS: context deadline exceeded #7244
Comments
@ligi there are a number of IPNS related improvements in the 0.5 release. However, IPNS Publishing (like IPFS Providing) on the DHT will still not be as fast as indicated by testing until more of the network upgrades (for posterity this issue was filed on day one of the release). Even on day one of the release publishing IPNS records should still be faster than in 0.4.23 and earlier though. |
@aschmahmann thanks for the info - advocating the migration to 0.5.0 even more then ;-) |
@ligi at first glance it doesn't look like there is, but that seems like something you should be able to do. Thanks for the bug report 😄. |
My pleasure - thanks for your work! |
Upgraded to 0.5.0 and facing the same issue when running publish using http api
|
Dear Friends, I'm facing the same issue than @santhoshtr However I'm wondering if at some point the server will try again by itself to publish the IPNS update. Let's say that this local server at some point is exposed to its peers through a public IP address. What happened then ??? The ultimate concern is the way I need to handle this issue in my DApp. Warning or errors as the update is available locally. Currently as the update is available locally I consider it as warning (bit will it be published to remote peers later ??) Hope its clear. Thanks |
When I encounter this problem, the daemon logs a "error when determining the last published IPNS record" (using
|
@sinkuu the error returned isn't actually from What is happening instead is that the Publish part has been hard coded to have a 1 minute timeout https://github.com/ipfs/go-ipfs/blob/36789eaa88a7277c06a22b7955f128409c705746/namesys/publisher.go#L277-L278 and that seems unfortunate since the user should be able to let the query go longer than that if they want. |
It would be really helpful if that timeout was configurable, either globally or as a command option - we'd be able to shave a few minutes off an interop test run as they spend a long time doing nothing while they wait for the timeouts to expire. |
Let's remove that timeout for now. |
For anyone coming to this issue in between v0.5.0 and v0.5.1 here's the summary: Sometime IPNS publishing takes over a minute and times out giving you the error "context deadline exceeded", this one minute timeout has been removed and will be part of the next patch release. Note: As of today (about a week after the release) IPNS publishes normally finish in less than a minute (I get about 30 seconds). However, there are DHT lookups that take longer than a minute. Trying again frequently works. As more of the network adopts v0.5.0 the network will improve and lookup times for IPNS should improve. |
Hot on the heels of 0.5.0 is 0.5.1 with some important but small bug fixes. This release: 1. Removes the 1 minute timeout for IPNS publishes (fixes #7244). 2. Backport a DHT fix to reduce CPU usage for canceled requests. 3. Fixes some timer leaks in the QUIC transport ([#2515](quic-go/quic-go#2515)). Full changelog: - github.com/ipfs/go-ipfs: - IPNS timeout patch from master ([#7276](#7276)) - github.com/libp2p/go-libp2p-core (v0.5.2 -> v0.5.3): - feat: add a function to tell if a context subscribes to query events ([libp2p/go-libp2p-core#147](libp2p/go-libp2p-core#147)) - github.com/libp2p/go-libp2p-kad-dht (v0.7.10 -> v0.7.11): - fix: optimize for the case where we're not subscribing to query events ([libp2p/go-libp2p-kad-dht#624](libp2p/go-libp2p-kad-dht#624)) - fix: don't spin when the event channel is closed ([libp2p/go-libp2p-kad-dht#622](libp2p/go-libp2p-kad-dht#622)) - github.com/libp2p/go-libp2p-routing-helpers (v0.2.2 -> v0.2.3): - fix: avoid subscribing to query events unless necessary ([libp2p/go-libp2p-routing-helpers#43](libp2p/go-libp2p-routing-helpers#43)) - github.com/lucas-clemente/quic-go (v0.15.5 -> v0.15.7): - reset the PTO when dropping a packet number space - move deadlineTimer declaration out of the Read loop - stop the deadline timer in Stream.Read and Write - fix buffer use after it was released when sending an INVALID_TOKEN error - create the session timer at the beginning of the run loop - stop the timer when the session's run loop returns
The timeout is configurable:
|
The This is not the timeout I'm referring to, I'm talking about the one Adin mentions:
Sorry if that's wasn't clear. |
This timeout has been removed in 0.5.1. |
Hot on the heels of 0.5.0 is 0.5.1 with some important but small bug fixes. This release: 1. Removes the 1 minute timeout for IPNS publishes (fixes ipfs#7244). 2. Backport a DHT fix to reduce CPU usage for canceled requests. 3. Fixes some timer leaks in the QUIC transport ([ipfs#2515](quic-go/quic-go#2515)). Full changelog: - github.com/ipfs/go-ipfs: - IPNS timeout patch from master ([ipfs#7276](ipfs#7276)) - github.com/libp2p/go-libp2p-core (v0.5.2 -> v0.5.3): - feat: add a function to tell if a context subscribes to query events ([libp2p/go-libp2p-core#147](libp2p/go-libp2p-core#147)) - github.com/libp2p/go-libp2p-kad-dht (v0.7.10 -> v0.7.11): - fix: optimize for the case where we're not subscribing to query events ([libp2p/go-libp2p-kad-dht#624](libp2p/go-libp2p-kad-dht#624)) - fix: don't spin when the event channel is closed ([libp2p/go-libp2p-kad-dht#622](libp2p/go-libp2p-kad-dht#622)) - github.com/libp2p/go-libp2p-routing-helpers (v0.2.2 -> v0.2.3): - fix: avoid subscribing to query events unless necessary ([libp2p/go-libp2p-routing-helpers#43](libp2p/go-libp2p-routing-helpers#43)) - github.com/lucas-clemente/quic-go (v0.15.5 -> v0.15.7): - reset the PTO when dropping a packet number space - move deadlineTimer declaration out of the Read loop - stop the deadline timer in Stream.Read and Write - fix buffer use after it was released when sending an INVALID_TOKEN error - create the session timer at the beginning of the run loop - stop the timer when the session's run loop returns
Hot on the heels of 0.5.0 is 0.5.1 with some important but small bug fixes. This release: 1. Removes the 1 minute timeout for IPNS publishes (fixes ipfs#7244). 2. Backport a DHT fix to reduce CPU usage for canceled requests. 3. Fixes some timer leaks in the QUIC transport ([ipfs#2515](quic-go/quic-go#2515)). Full changelog: - github.com/ipfs/go-ipfs: - IPNS timeout patch from master ([ipfs#7276](ipfs#7276)) - github.com/libp2p/go-libp2p-core (v0.5.2 -> v0.5.3): - feat: add a function to tell if a context subscribes to query events ([libp2p/go-libp2p-core#147](libp2p/go-libp2p-core#147)) - github.com/libp2p/go-libp2p-kad-dht (v0.7.10 -> v0.7.11): - fix: optimize for the case where we're not subscribing to query events ([libp2p/go-libp2p-kad-dht#624](libp2p/go-libp2p-kad-dht#624)) - fix: don't spin when the event channel is closed ([libp2p/go-libp2p-kad-dht#622](libp2p/go-libp2p-kad-dht#622)) - github.com/libp2p/go-libp2p-routing-helpers (v0.2.2 -> v0.2.3): - fix: avoid subscribing to query events unless necessary ([libp2p/go-libp2p-routing-helpers#43](libp2p/go-libp2p-routing-helpers#43)) - github.com/lucas-clemente/quic-go (v0.15.5 -> v0.15.7): - reset the PTO when dropping a packet number space - move deadlineTimer declaration out of the Read loop - stop the deadline timer in Stream.Read and Write - fix buffer use after it was released when sending an INVALID_TOKEN error - create the session timer at the beginning of the run loop - stop the timer when the session's run loop returns
Hot on the heels of 0.5.0 is 0.5.1 with some important but small bug fixes. This release: 1. Removes the 1 minute timeout for IPNS publishes (fixes ipfs#7244). 2. Backport a DHT fix to reduce CPU usage for canceled requests. 3. Fixes some timer leaks in the QUIC transport ([ipfs#2515](quic-go/quic-go#2515)). Full changelog: - github.com/ipfs/go-ipfs: - IPNS timeout patch from master ([ipfs#7276](ipfs#7276)) - github.com/libp2p/go-libp2p-core (v0.5.2 -> v0.5.3): - feat: add a function to tell if a context subscribes to query events ([libp2p/go-libp2p-core#147](libp2p/go-libp2p-core#147)) - github.com/libp2p/go-libp2p-kad-dht (v0.7.10 -> v0.7.11): - fix: optimize for the case where we're not subscribing to query events ([libp2p/go-libp2p-kad-dht#624](libp2p/go-libp2p-kad-dht#624)) - fix: don't spin when the event channel is closed ([libp2p/go-libp2p-kad-dht#622](libp2p/go-libp2p-kad-dht#622)) - github.com/libp2p/go-libp2p-routing-helpers (v0.2.2 -> v0.2.3): - fix: avoid subscribing to query events unless necessary ([libp2p/go-libp2p-routing-helpers#43](libp2p/go-libp2p-routing-helpers#43)) - github.com/lucas-clemente/quic-go (v0.15.5 -> v0.15.7): - reset the PTO when dropping a packet number space - move deadlineTimer declaration out of the Read loop - stop the deadline timer in Stream.Read and Write - fix buffer use after it was released when sending an INVALID_TOKEN error - create the session timer at the beginning of the run loop - stop the timer when the session's run loop returns
Hot on the heels of 0.5.0 is 0.5.1 with some important but small bug fixes. This release: 1. Removes the 1 minute timeout for IPNS publishes (fixes ipfs#7244). 2. Backport a DHT fix to reduce CPU usage for canceled requests. 3. Fixes some timer leaks in the QUIC transport ([ipfs#2515](quic-go/quic-go#2515)). Full changelog: - github.com/ipfs/go-ipfs: - IPNS timeout patch from master ([ipfs#7276](ipfs#7276)) - github.com/libp2p/go-libp2p-core (v0.5.2 -> v0.5.3): - feat: add a function to tell if a context subscribes to query events ([libp2p/go-libp2p-core#147](libp2p/go-libp2p-core#147)) - github.com/libp2p/go-libp2p-kad-dht (v0.7.10 -> v0.7.11): - fix: optimize for the case where we're not subscribing to query events ([libp2p/go-libp2p-kad-dht#624](libp2p/go-libp2p-kad-dht#624)) - fix: don't spin when the event channel is closed ([libp2p/go-libp2p-kad-dht#622](libp2p/go-libp2p-kad-dht#622)) - github.com/libp2p/go-libp2p-routing-helpers (v0.2.2 -> v0.2.3): - fix: avoid subscribing to query events unless necessary ([libp2p/go-libp2p-routing-helpers#43](libp2p/go-libp2p-routing-helpers#43)) - github.com/lucas-clemente/quic-go (v0.15.5 -> v0.15.7): - reset the PTO when dropping a packet number space - move deadlineTimer declaration out of the Read loop - stop the deadline timer in Stream.Read and Write - fix buffer use after it was released when sending an INVALID_TOKEN error - create the session timer at the beginning of the run loop - stop the timer when the session's run loop returns
Hot on the heels of 0.5.0 is 0.5.1 with some important but small bug fixes. This release: 1. Removes the 1 minute timeout for IPNS publishes (fixes ipfs#7244). 2. Backport a DHT fix to reduce CPU usage for canceled requests. 3. Fixes some timer leaks in the QUIC transport ([ipfs#2515](quic-go/quic-go#2515)). Full changelog: - github.com/ipfs/go-ipfs: - IPNS timeout patch from master ([ipfs#7276](ipfs#7276)) - github.com/libp2p/go-libp2p-core (v0.5.2 -> v0.5.3): - feat: add a function to tell if a context subscribes to query events ([libp2p/go-libp2p-core#147](libp2p/go-libp2p-core#147)) - github.com/libp2p/go-libp2p-kad-dht (v0.7.10 -> v0.7.11): - fix: optimize for the case where we're not subscribing to query events ([libp2p/go-libp2p-kad-dht#624](libp2p/go-libp2p-kad-dht#624)) - fix: don't spin when the event channel is closed ([libp2p/go-libp2p-kad-dht#622](libp2p/go-libp2p-kad-dht#622)) - github.com/libp2p/go-libp2p-routing-helpers (v0.2.2 -> v0.2.3): - fix: avoid subscribing to query events unless necessary ([libp2p/go-libp2p-routing-helpers#43](libp2p/go-libp2p-routing-helpers#43)) - github.com/lucas-clemente/quic-go (v0.15.5 -> v0.15.7): - reset the PTO when dropping a packet number space - move deadlineTimer declaration out of the Read loop - stop the deadline timer in Stream.Read and Write - fix buffer use after it was released when sending an INVALID_TOKEN error - create the session timer at the beginning of the run loop - stop the timer when the session's run loop returns
Hot on the heels of 0.5.0 is 0.5.1 with some important but small bug fixes. This release: 1. Removes the 1 minute timeout for IPNS publishes (fixes ipfs#7244). 2. Backport a DHT fix to reduce CPU usage for canceled requests. 3. Fixes some timer leaks in the QUIC transport ([ipfs#2515](quic-go/quic-go#2515)). Full changelog: - github.com/ipfs/go-ipfs: - IPNS timeout patch from master ([ipfs#7276](ipfs#7276)) - github.com/libp2p/go-libp2p-core (v0.5.2 -> v0.5.3): - feat: add a function to tell if a context subscribes to query events ([libp2p/go-libp2p-core#147](libp2p/go-libp2p-core#147)) - github.com/libp2p/go-libp2p-kad-dht (v0.7.10 -> v0.7.11): - fix: optimize for the case where we're not subscribing to query events ([libp2p/go-libp2p-kad-dht#624](libp2p/go-libp2p-kad-dht#624)) - fix: don't spin when the event channel is closed ([libp2p/go-libp2p-kad-dht#622](libp2p/go-libp2p-kad-dht#622)) - github.com/libp2p/go-libp2p-routing-helpers (v0.2.2 -> v0.2.3): - fix: avoid subscribing to query events unless necessary ([libp2p/go-libp2p-routing-helpers#43](libp2p/go-libp2p-routing-helpers#43)) - github.com/lucas-clemente/quic-go (v0.15.5 -> v0.15.7): - reset the PTO when dropping a packet number space - move deadlineTimer declaration out of the Read loop - stop the deadline timer in Stream.Read and Write - fix buffer use after it was released when sending an INVALID_TOKEN error - create the session timer at the beginning of the run loop - stop the timer when the session's run loop returns
When I visit such an address |
I was excited to read that 0.5 speeds up IPNS. So I wanted to give it a spin. Unfortunately I get an error now:
running this version:
The text was updated successfully, but these errors were encountered: