[OpenSIPS-Devel] [OpenSIPS/opensips] 62ce85: enable rabbitmq heartbeat to solve processes hang ...
Răzvan Crainea
razvan at opensips.org
Fri Nov 1 16:19:35 CET 2013
Branch: refs/heads/master
Home: https://github.com/OpenSIPS/opensips
Commit: 62ce85fc187c5d962aab436d3f9eb033ef6be953
https://github.com/OpenSIPS/opensips/commit/62ce85fc187c5d962aab436d3f9eb033ef6be953
Author: franklyfox <franklyfox at outlook.com>
Date: 2013-10-01 (Tue, 01 Oct 2013)
Changed paths:
M modules/event_rabbitmq/event_rabbitmq.c
M modules/event_rabbitmq/event_rabbitmq.h
M modules/event_rabbitmq/rabbitmq_send.c
M modules/event_rabbitmq/rabbitmq_send.h
Log Message:
-----------
enable rabbitmq heartbeat to solve processes hang by amqp socket
Commit: 8c216598b192335501d8462ab1dada2e22b4d5ae
https://github.com/OpenSIPS/opensips/commit/8c216598b192335501d8462ab1dada2e22b4d5ae
Author: franklyfox <franklyfox at outlook.com>
Date: 2013-10-04 (Fri, 04 Oct 2013)
Changed paths:
M modules/event_rabbitmq/event_rabbitmq.c
Log Message:
-----------
enable rabbitmq heartbeat to solve issues of hanging SIP processing because of a broken amqp socket
This implementation enabled the rabbitmq's client side's heartbeat negotiation.
Issue:
Because of TCP's nature, it takes very long time for a TCP peer to make the decision of closing a local socket when the connection actually is broken. The event_rabbitmq module didn't handle the situation which causes the Opensips1.9 stop processing UDP packets until the O.S decides to close the local socket. One of the consequence is that UAC cannot register to the registrar during this time period.
Issue Reproduce:
1. Block an existing amqp connection from the rabbitmq-server that event_rabbitmq module connects to.
2. From the event_rabbitmq side, the UDP receive-buffer that Opensips uses should be full.
Solution:
If the module, even_rabbitmq/rabbitmq-client, doesn't get a heartbeat message from the rabbitmq-server within X seconds, the rabbitmq-client will kill the local socket connection actively.
Added a modparam:
modparam("event_rabbitmq", "heartbeat", [X seconds]
Commit: a6090ec150cb5ce8f16e4def9302b6987b2cd522
https://github.com/OpenSIPS/opensips/commit/a6090ec150cb5ce8f16e4def9302b6987b2cd522
Author: Răzvan Crainea <razvan at opensips.org>
Date: 2013-11-01 (Fri, 01 Nov 2013)
Changed paths:
M modules/event_rabbitmq/event_rabbitmq.c
M modules/event_rabbitmq/event_rabbitmq.h
M modules/event_rabbitmq/rabbitmq_send.c
M modules/event_rabbitmq/rabbitmq_send.h
Log Message:
-----------
Merge pull request #100 from franklyfox/1.9_rabbitmq_heartbeat
enable rabbitmq heartbeat to solve issues of hanging SIP processing because of a broken amqp socket
Compare: https://github.com/OpenSIPS/opensips/compare/34df519c373a...a6090ec150cb
More information about the Devel
mailing list