Comments (6)
I think we do still handle it. The recv() loop should cause the session to shutdown I believe
from yamux.
I think that's wrong though, isn't it? It should error ErrRemoteGoAway. Here is a test of the expected behavior(currently failing/deadlock):
func TestGoAwayClient(t *testing.T) {
client, server := testClientServer()
defer client.Close()
defer server.Close()
go func(){
if err := client.GoAway(); err != nil {
t.Fatalf("err: %v", err)
}
}()
_, err := server.Accept()
if err != ErrRemoteGoAway {
t.Fatalf("err: %v", err)
}
}
from yamux.
@armon I've submitted a PR. It would be great if you could have a look. It works but sometimes client2.GoAway()[0] fails (with shutdown error) for reasons I don't know though I don't think it's due the PR changes either.
[0] https://github.com/hashicorp/yamux/pull/18/files#diff-7f24d50c1e949c023a423eec758d017bR374
from yamux.
@armon is this ticket still valid ?
from yamux.
@marco-m I'm not sure. I'm not close enough anymore. Would require somebody to spend some time digging into this.
from yamux.
@armon thanks for answering!
from yamux.
Related Issues (20)
- TestPing failed on Windows HOT 1
- yamux: Invalid protocol version: 123
- Protocol Version Error HOT 1
- Should we close the session when streams receive window exceeded ? HOT 1
- Is Session.Accept Result Really Compatible With net.Conn? HOT 2
- What is Disconnect Flow
- [bug] TestGoAway failed
- Add link to who using yamux
- 请问,是否支持UDP协议?
- Download speeds have reduced and upload speeds gone up with the latest version of yamux
- Concurrent calls to Stream.Read can return different data HOT 2
- Config should take a Logger interface HOT 3
- SESSION关闭后r.Session().NumStreams()依然可以获取通道数?是不是有问题
- How can I change the "initialStreamWindow" gracefully? HOT 1
- Data lost when closing Session HOT 2
- Weird question HOT 2
- "context canceled" error when using with http.ReverseProxy
- at stream read/write wrap underlying error to returned error
- stream recvWindow decremented incorretly HOT 4
- Panic when sending large data HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yamux.