fix: surface plugin port-forward startup errors#22
Merged
Conversation
Arthas session creation could wait for the full creation timeout when port-forward startup failed before becoming ready. Watch the port-forward goroutine while waiting for readiness and return its actual error immediately. Make Close safe after readiness observes an early exit by storing the final error on the forwarder.
The Go diagnostics plugin used the same port-forward readiness pattern as Arthas, so early ForwardPorts failures could be hidden until the session creation timeout. Watch the forwarding goroutine while waiting for readiness and store the final error on the forwarder so startup failures are returned immediately.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Arthas and Go diagnostics session creation could wait for the full creation timeout when Kubernetes port-forward startup failed before becoming ready.
Their readiness waits only watched the ready channel and request timeout, so early
ForwardPortsfailures were masked ascontext deadline exceeded.Watch the port-forward goroutine during readiness and return its actual error immediately. Store the final error on each forwarder so cleanup remains safe after early exits.