Comments (5)
I will take a closer look at the trace, but in general under spinUpSockerWatchers, the nc.wg.Wait() is there to make sure the readLoop and flusher from the old connection are torn down before the new ones get spun up.
from nats.go.
I understand what the waitgroup is for. You can easily run into situations where it may not complete because the readLoop and flushers have moved to the new connection/buffered writer. It doesn't always happen but it can.
The stack just shows the situation when something similar happens with the parser state.
There is a lot of code checking for the state of the connection, closed, reconnecting, etc... but for most of the routines they will see connected or closed because of the locking and how they are driven.
from nats.go.
I looked briefly, and I think doReconnect() can only proceed at replacing the nc.bw and the connection itself after it is known that readLoop and flusher are shutdown. Will look at moving that logic gate to before reconnect begins in earnest.
from nats.go.
I found a bug here from the last commit which may cause you issues. I am working on this problem (this thread), and found it as I was moving the shutdown logic to before we began processing a reconnect.
https://github.com/apcera/nats/blob/master/nats.go#L1438
from nats.go.
I have it fixed, just an FYI..
from nats.go.
Related Issues (20)
- Panic when creating jet stream consumer on wildcard stream HOT 8
- Add checks for empty response in JetStream API calls HOT 2
- Object store publishes chunks without using domain in subject HOT 4
- add new encoder interface with less allocations HOT 4
- Memory leak in readMIMEHeader HOT 3
- add `FetchContext` FetchOpt
- Add `KeysWithFilter` methods to KV interface HOT 3
- panic: interface conversion: jetstream.Consumer is nil, not *jetstream.pullConsumer HOT 1
- jetstream.PublishMsgAsync panic
- Using Fetch() with and OrderedConsumer and a delivery policy of DeliverLastPerSubjectPolicy returns incorrect results HOT 1
- Publish RetryAttempt and RetryWait not working as expected HOT 8
- Client logs unmarshal errors HOT 9
- Make JS Consumer deletion on Unsubscribe() / Drain() optional HOT 1
- JetStream ConsumerContext `Drain` function not waiting for in flight requests to be done processing HOT 6
- NEW NATS API Drain for durable consumer HOT 14
- Micro does not register service with Nats. HOT 1
- `PublishAsync` Retry Mechanism Not Working as Expected HOT 1
- Failed to create OrderedConsumer HOT 2
- packets lost: subscribe to more topics and get message packets quickly. The first message packet of some topics is lost. HOT 4
- How to get the number of active user subscriptions for the current topic, not consumers
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 nats.go.