summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge "rabbit: Avoid busy loop on epoll_wait with heartbeat+eventlet" into ↵mitaka-eolstable/mitakaJenkins2016-11-303-1/+80
|\ | | | | | | stable/mitaka
| * rabbit: Avoid busy loop on epoll_wait with heartbeat+eventletJohn Eckersberg2016-11-163-1/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calling threading.Event.wait() when using eventlet results in a busy loop calling epoll_wait, because the Python 2.x threading.Condition.wait() implementation busy-waits by calling sleep() with very small values (0.0005..0.05s). Because sleep() is monkey-patched by eventlet, this results in many very short timers being added to the eventlet hub, and forces eventlet to constantly epoll_wait looking for new data unecessarily. This utilizes a new Event from eventletutils which conditionalizes the event primitive depending on whether or not eventlet is being used. If it is, eventlet.event.Event is used instead of threading.Event. The eventlet.event.Event implementation does not suffer from the same busy-wait sleep problem. If eventlet is not used, the previous behavior is retained. For Newton backport, this bundles the Event from eventletutils directly in oslo.messaging under the _utils module. It is taken from: https://review.openstack.org/#/c/389739/ combined with the followup fix: https://review.openstack.org/#/c/394460/ Change-Id: I5c211092d282e724d1c87ce4d06b6c44b592e764 Depends-On: Id33c9f8c17102ba1fe24c12b053c336b6d265501 Closes-bug: #1518430 (cherry picked from commit a6c193f3eba62cdcbfe04d0fa93e95352bcfb1c3)
* | Merge "rabbit: on reconnect set socket timeout after channel is set" into ↵Jenkins2016-11-171-2/+1
|\ \ | |/ |/| | | stable/mitaka
| * rabbit: on reconnect set socket timeout after channel is setDmitry Mescheryakov2016-11-101-2/+1
| | | | | | | | | | | | | | | | | | Currently we set it before the channel and as a result nothing happens, only an error is logged at the debug level. Change-Id: Ifebdd957d403e47039c10f7e55c4e7ef08fba658 Closes-Bug: #1640773 (cherry picked from commit 9c25485adb661d44b7f3f0c676ac3705e5754796)
* | Updated from global requirementsOpenStack Proposal Bot2016-11-101-1/+1
|/ | | | Change-Id: I16b121d987f6a1948b18043b648498743a2f6689
* Fix consuming from unbound reply queuekbespalov2016-10-201-34/+38
| | | | | | | | | | | | | | | | | | | | | | | | Consumer declaration consist of the next steps: 1) declare an exchange 2) declare a queue 3) bind the queue to the exchange Due to reply exchanges are auto-delete, at the step 3 the exchange can be removed and consumer.declare() will raise `queue.bind 404 Exchange not found`. So, in this case the queue is exist and AMQPListener just call consumer.consume() on the queue and go to drain_events() despite on the fact that the queue is unbound. This change tries to redeclare queue/exchange proactively each times channel change and just before consuming messages. Co-Authored-By: Mehdi Abaakouk <sileht@redhat.com> Closes-Bug: #1609766 Change-Id: Id8b48df3d26675d72955d417ce7622b1e8aa6195 (cherry picked from commit 3f4ce9470b3f9e0502f61345a6943adad2dadac9)
* Merge "Fix consuming from missing queues" into stable/mitakaJenkins2016-08-302-4/+71
|\
| * Fix consuming from missing queuesKirill Bespalov2016-06-062-4/+71
| | | | | | | | | | | | | | | | | | | | Redeclare queues on 'Basic.consume: (404) no queue' exception and enable by default consumer declaration with nowait=False in order to wait for a broker response. Change-Id: I99f2bc858dbc7c18a2f328ee26f39105ed17cee3 Closes-Bug: #1581148 (cherry picked from commit 43cfc18fc9a307b44eebdd052203de8e44dbc814)
* | Adds exchange declaration on sender's sidedukhlov2016-08-307-72/+146
| | | | | | | | | | | | | | | | | | | | | | When you send message to exchange which is not exist current channel is closed and you need to reconnect. This is undesired. Also this patch separate sending fanout message and call/cast messages and don't raise exception if exchange doesn't exist for fanout messages. Change-Id: Ia556d0c1b219387892007925bb437664aaaccb69 (cherry picked from commit 89cc47e)
* | Updated from global requirementsOpenStack Proposal Bot2016-06-071-1/+1
|/ | | | Change-Id: Ic9bfe4ed5873ea41797dcc2fcbbc4c78cd2791b5
* Updated from global requirementsOpenStack Proposal Bot2016-04-181-1/+1
| | | | Change-Id: I52b5f0befe15c8cbfeabba43e966f0706181c3a8
* Merge "[Kafka] Ensure a topics before consume messages" into stable/mitakaJenkins2016-04-071-0/+3
|\
| * [Kafka] Ensure a topics before consume messagesIlya Tyaptin2016-04-071-0/+3
| | | | | | | | | | | | | | | | | | Currently we trying ot fetch messages from the topics even they have bot been created yet. This behaviour causes a KafkaConfigurationError which are raised in the kafka driver. Change-Id: I78cfd5ac24fbf37be5649232d0bc825319cf6402 Closes-bug: #1557521
* | Merge "Use only unique topics for the Kafka driver" into stable/mitakaJenkins2016-04-072-2/+22
|\ \ | |/
| * Use only unique topics for the Kafka driverIlya Tyaptin2016-04-072-2/+22
| | | | | | | | | | | | | | | | Consumer in Kafka driver should use only unique topic, otherwise a FetchDuplicate exception will be raised. Change-Id: I569ce446eaf05dbc3a7fd0b41a2307e940ab87fb Closes-bug: #1555081
* | Merge "[kafka] Use notification priority" into stable/mitakaJenkins2016-04-071-4/+6
|\ \ | |/
| * [kafka] Use notification priorityOleksii Zamiatin2016-04-071-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | Notification priority actually points to an endpoint method to be called and couldn't be ignored by the driver. Also reduced exchange because it shouldn't take part in final topic resolution. Closes-Bug #1546081 Change-Id: I4a7c367d91c2fefc6830f0ab3cdcbc0b605127b0
* | Make transport_url config option secretJuan Antonio Osorio Robles2016-04-072-0/+2
|/ | | | | | | | | | The transport_url may contain credentials to the message queue; For this reason, this option should be secret for it to not leak into the logs. Closes-Bug: #1567233 Change-Id: I49c641a2662976d7220e4222e3c4a4d2586b1336
* Fix Break in Windows platforms4.6.1Davanum Srinivas2016-03-281-2/+5
| | | | | | | | In Ibf6139ac2c22d9eeda7030fb87b7f1139d92332e, we added a TCP timeout that does not work on Windows (with python 2.7.9) Closes-Bug: #1562706 Change-Id: I2819225c2d3d3b418c977c03868db8d0c8022d5a
* Merge "Always delete exc_info tuple, even if reply fails" into stable/mitaka4.6.0Jenkins2016-03-251-7/+9
|\
| * Always delete exc_info tuple, even if reply failsJoshua Harlow2016-03-251-7/+9
| | | | | | | | | | | | | | | | | | | | Avoid any possible references to exc_info tuple by ensuring we delete it in a finally block, so that even if replying or logging fails somehow the prior exception is always deleted correctly. Change-Id: Id0e5099b9b38b1803bb4514f7cf3deae760d5ac3 (cherry picked from commit 0774b5cebaadd5587724d59e64ddbe30ce11f6a5)
* | Fail quickly if there on bad passwordDavanum Srinivas2016-03-252-4/+17
|/ | | | | | | | | | | | | | | Inspired by: https://bugs.launchpad.net/oslo.messaging/+bug/1508512/comments/1 Add authentication_failure_close capability on the client to tell the server that it can send us connection.close command indicating ACCESS_REFUSED as the reasona. If this capability is absent then authentication failures are reported in the legacy fashion: by abruptly closing the network connection. Partial-Bug: #1508512 Change-Id: Icf6108678256e6f922620837c71f8827fe8e8c52 (cherry picked from commit 97655c1fe633f6b1340ce899bb1ad65284926399)
* Updated from global requirementsOpenStack Proposal Bot2016-03-241-1/+1
| | | | Change-Id: Iab6a9f65d0aa8d5e89272734e98474874b07d78c
* Always set all socket timeoutsMehdi Abaakouk2016-03-232-28/+33
| | | | | | | | | | | | | | | | When exchange/queue are declared the timeout is the default (None) when it should be the no more than heartbeat timeout. Also we have to set TCP_USER_TIMEOUT to ensure our timeouts are respected. socket.settimeout() of python relies on select() that can be blocked because kernel doesn't return during a recv() because of TCP connection breakage. This change fixes that by always setting TCP_USER_TIMEOUT and python socket timeout each time the connection is establish. Change-Id: Ibf6139ac2c22d9eeda7030fb87b7f1139d92332e (cherry picked from commit 98bc5fc2fadce089b6f47421929651606e5e9ab6)
* Merge "Bump rabbit_transient_queues_ttl to 30 mins" into stable/mitaka4.5.1Jenkins2016-03-141-1/+1
|\
| * Bump rabbit_transient_queues_ttl to 30 minsDavanum Srinivas2016-03-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In I83a8d09dc0cdae24c12d7043ec810529a9ce57ab, we made reply and fanout queues expire instead of auto-delete and set the rabbit_transient_queues_ttl to 10 mins. In grenade, we seem to see the queues expiring just around the time the new side is coming up which causes havoc. There is no reason the rabbit_transient_queues_ttl should not be higher. So let's bump up the expiry to 30 mins. Closes-Bug: #1545002 Change-Id: I70a29b762198129fe0a3e904d9f2a7d4242b322c
* | Fix Notification listener blocking behaviorDavanum Srinivas2016-03-141-0/+2
|/ | | | | | | | | Add a sleep() to allow other threads (like the one collecting the stats) to run. Closes-Bug: #1555632 Change-Id: I6fcb63c10acd76f2815e23fbd303f08974feb993 (cherry picked from commit fb732971129444b5d0fb91be2340f91d7454fc4a)
* Update .gitreview for stable/mitakaDoug Hellmann2016-03-091-0/+1
| | | | Change-Id: I88479fd85da9d68970268a7b61f1bc31452ff6cb
* Merge "amqp: log time elapsed between receiving a message and replying"4.5.0Jenkins2016-02-251-2/+7
|\
| * amqp: log time elapsed between receiving a message and replyingJohn Eckersberg2016-02-251-2/+7
| | | | | | | | Change-Id: I1e64587cb76fe449fd0d60f78e830dc603574af5
* | Merge "[zmq] Matchmaker redis set instead of list"Jenkins2016-02-251-2/+1
|\ \
| * | [zmq] Matchmaker redis set instead of listozamiatin2016-02-251-2/+1
| | | | | | | | | | | | | | | | | | | | | No need to check element before push. Change-Id: Ic4b5ff829d0d94a35aaab1af8ff6991a0b5cebe6 Related-to: I25d623eb4bb0a827daa8a316a0ddcb4a473f8694
* | | Merge "Fix a minor syntax error in a log statement"Jenkins2016-02-251-1/+1
|\ \ \
| * | | Fix a minor syntax error in a log statementKenneth Giusti2016-02-241-1/+1
| | | | | | | | | | | | | | | | Change-Id: If6115045dbaf2229b1229d259787ecd207348603
* | | | Merge "Allow Notifier to have multiple topics"Jenkins2016-02-252-3/+40
|\ \ \ \
| * | | | Allow Notifier to have multiple topicsDavanum Srinivas2016-02-252-3/+40
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Looks like there is a disconnect between the __init__ parameter 'topic' in Notifier and what we need when we look up a driver. We should allow multiple topics to be specified as a new topics parameter and pass that along directly. Change-Id: Id89957411aa219cff92fafec2f448c81cb57b3ca
* | | | Merge "Use PortOpt on kafka_default_port"Jenkins2016-02-251-2/+2
|\ \ \ \ | |/ / / |/| | |
| * | | Use PortOpt on kafka_default_portEric Brown2016-02-241-2/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | The oslo.config lib includes a PortOpt to simply restrict the range of integers available for a port type option. This patch makes use of that. Change-Id: I8cda92d6c7555b6cb788627d072174ad608fb6de
* | | Merge "Improves poller's stop logic"Jenkins2016-02-242-66/+110
|\ \ \ | |/ / |/| |
| * | Improves poller's stop logicdukhlov2016-02-232-66/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch add sending cancel request to RabbitMQ and inform it to stop message sending to the poller. It makes listener stop/wait procedure more graceful Change-Id: Ibadb5f705f6ea4ef32969a69d1db68ada1f491e4
* | | Merge "Added duration to notify server/client"Jenkins2016-02-241-39/+51
|\ \ \ | |_|/ |/| |
| * | Added duration to notify server/clientYulia Portnova2016-02-241-39/+51
| | | | | | | | | | | | Change-Id: I4feeeec0c69305d92dce5baf60502a39ebe6b247
* | | Merge "Use more efficient mask_dict_password to mask password"Jenkins2016-02-241-1/+1
|\ \ \
| * | | Use more efficient mask_dict_password to mask passwordJaveme2016-02-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The mask_dict_password method is added from oslo_utils 3.4.0, and it's about five times faster than the mask_password method, so it's better to use mask_dict_password instead of mask_password. Change-Id: I6629ed1232f2e6f1c72b9f13b361e2f9e14b50a4
* | | | Improves loggingdukhlov2016-02-243-19/+19
|/ / / | | | | | | | | | | | | | | | | | | | | | This patch change log string formatting approach, moves it inside logging method to avoid formatting if it is not needed for given log level Change-Id: Ice73f2fc893701544cadc75bafd6833de0ae5d51
* | | Merge "Typos of 'recieve' instead of 'receive'"Jenkins2016-02-242-7/+5
|\ \ \
| * | | Typos of 'recieve' instead of 'receive'Eric Brown2016-02-232-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * i before e unless before c * Also updated the docstring on consume function Change-Id: Icfe35fc577d01434839d6774d02b933fc4cd1a08
* | | | Merge "Documents the mirror queue policy of RabbitMQ 3.0"Jenkins2016-02-241-5/+15
|\ \ \ \
| * | | | Documents the mirror queue policy of RabbitMQ 3.0Jian Wen2016-02-191-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DocImpact In RabbitMQ 3.0, queue mirroring is no longer controlled by the x-ha-policy argument when declaring a queue. If you just want to make sure that all queues (except those with auto-generated names) are mirrored across all nodes, run: rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-mode": "all"}' Change-Id: I905b42c9b853c686f50f28752b4ec09b006d2420 Closes-bug: #1547306
* | | | | Merge "Reduce number of rabbitmq consumer tag used"Jenkins2016-02-241-11/+23
|\ \ \ \ \ | |_|_|/ / |/| | | |