Comments (13)
Thank for the really detailed issue report!
from rabbitmq-stomp.
@martink2 please send me the dump you have, it would help uncover what may be tripping up the parser (that answers your 1st open question).
As for the 2nd one, this may be a bug, and now that we have an error message that correlates with connections being open, it should be much easier to reproduce.
@martink2 do you run a single node or multiple ones?
from rabbitmq-stomp.
@michaelklishin We can see the error on both single nodes and clusters.
Dump is send via email.
Thanks
Martin
from rabbitmq-stomp.
@martink2 can you post the output of netstat -tcp
when that happens? How many connections do you have on average?
What does sudo sysctl -a | grep
output on the server?
from rabbitmq-stomp.
More questions: do your clients use NAT?
from rabbitmq-stomp.
On average we have 11.000 connections.
for a failed connection from 10.97.168.128:54194
netstat -n -tcp | grep 10.97.168.128:54194 : No output
For what sysctl key would you like me to grep ?
As to the nat a few of our clients are behind a NAT but not the majority of them and it
does not show a higher chance of happening for NAT'ed vs direct connections.
But our clients use a lot of short lived connections so the ephemeral port range rolls
over very quick.
Thanks
Martin
from rabbitmq-stomp.
Yes, the ephemeral port range roll overs is what I'm investigating.
I'm after the net.ipv4.tcp_tw_recycle
and net.ipv4.tcp_tw_reuse
sysctl keys. In fact, anything net.ipv4
may be useful (assuming your clients use IPv4).
You can send me the output privately, [email protected]
.
from rabbitmq-stomp.
Some findings from today:
- clients rolling over
ip_local_port_range
and attempting to re-connect constantly (sequentially) do not leave connections behind
Will try with clients doing the same thing concurrently.
from rabbitmq-stomp.
OK, I believe I have a reliable way to reproduce this. The issue only has so much to do with high TCP connection churn and all that: the reader does not tell the processor to terminate in every case. Phew.
from rabbitmq-stomp.
I deployed the fixed code to our production node and it looks very good, thanks a lot
for the quick help. Any timeline for the 3.5.2 release of rabbitmq yet?
Martin
from rabbitmq-stomp.
We try to release a bugfix release once a month. 3.5.2 should be released around the first half of May.
from rabbitmq-stomp.
That said, we also have nightly builds.
from rabbitmq-stomp.
@martink2 thank you very much for giving it a try so quickly!
from rabbitmq-stomp.
Related Issues (20)
- Notify reductions, garbage_collection, recv_oct and send_oct in the core metrics HOT 2
- Can I send a message with mandatory=True? HOT 3
- Only one subscriber receives message from destination starting '/topic/' HOT 3
- Two subscriptions using a single durable queue HOT 6
- Convert optional AMQP 0-9-1 headers into STOMP x-headers HOT 1
- Using term_to_binary to generate queue names is not forward-compatible HOT 2
- Add support for consumer priority (x-priority header) HOT 3
- Unable to connect to the stomp server on Windows HOT 2
- Enable tcp_listen_options.keepalive for STOMP plugin HOT 1
- Support more TCP listener options
- Give names to temp_queues generated using reply-to header HOT 4
- Invalid use of dict:erase on a map
- Propagate x-queue-type when a queue is declared over STOMP HOT 2
- Cannot use hide_server_info via rabbitmq.conf HOT 2
- x-death header missing in STOMP response HOT 3
- Write-only permissions on STOMP queues HOT 3
- Consider dropping supervisor2 HOT 1
- Override default exchange configuration HOT 8
- Temporary destinations do not support client acknowledgment HOT 2
- (Build-system induced) server header change breaks Python tests HOT 1
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 rabbitmq-stomp.