[#63] Fix HTTP transport by removing duplication of base transport #66
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.
Issue
#63
Explanation of bug
The
http.HTTPTransport
duplicated much of thehttp.baseTransport
's fields and methods.This resulted in a deadlock caused by a non-nil channel being waited on for a receive and never receiving anything because we have a nil handler. The handler is nil because the protocol is setting the message handler using
http.HTTPTransport.SetMessageHandler()
, which did not have the same outcome ashttp.HTTPTransport.baseTransport.SetMessageHandler()
, due to the duplicated fields and methods in the two structs.Solution
Removed the duplication of
http.baseTransport
fields and methods from thehttp.HTTPTransport
.I can now start up the server, locally, and observe the following:
Prior to the changes, this would have hung indefinitely (deadlock).