summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Cancel consumer if queue down" into stable/steinstable/steinZuul2022-07-083-31/+65
|\
| * Cancel consumer if queue downshenjiatong2021-04-153-31/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, we have switched to use default exchanges to avoid excessive amounts of exchange not found messages. But it does not actually solve the problem because reply_* queue is already gone and agent will not receive callbacks. after some debugging, I found under some circumstances seems rabbitmq consumer does not receive basic cancel signal when queue is already gone. This might due to rabbitmq try to restart consumer when queue is down (for example when split brain). In such cases, it might be better to fail early. by reading the code, seems like x-cancel-on-ha-failover is not dedicated to mirror queues only, https://github.com/rabbitmq/rabbitmq-server/blob/master/src/rabbit_channel.erl#L1894, https://github.com/rabbitmq/rabbitmq-server/blob/master/src/rabbit_channel.erl#L1926. By failing early, in my own test setup, I could solve a certain case of exchange not found problem. Change-Id: I2ae53340783e4044dab58035bc0992dc08145b53 Related-bug: #1789177 Depends-On: https://review.opendev.org/#/c/747892/ (cherry picked from commit 196fa877a90d7eb0f82ec9e1c194eef3f98fc0b1) (cherry picked from commit 0a432c7fb107d04f7a41199fe9a8c4fbd344d009) (cherry picked from commit 5de11fa752ab8e37b95b1785f4c71210bf473f0c)
* | Catch ConnectionForced Exceptionshenjiatong2021-09-031-1/+5
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Occasionally I saw large number of connectionforced exceptions. such exceptions cannot be healed automatically and requires a reboot. catch it and ensure connection established. Changes: oslo_messaging/_drivers/impl_rabbit.py NOTE(stephenfin): We need to add the 'absolute_import' future to disable the legacy import flow. Without this, the import of 'amqp.exceptions' in 'oslo_messaging._drivers.impl_rabbit' attempts to import 'exceptions' from the sibling module, 'oslo_messaging._drivers.amqp', instead of the top-level 'amqp' module. Thank God for Python 3.x, eh? More information is available at [1], for those curious enough. NOTE(hberaud): conflicts within the cherry-pick on stable/stein due to removed log translation and i18n on stable/train [2]. I decided to ignore this patch [2] for stable/stein first to prepare cherry-picking on previous stable branches (rocky, queens) and secondly because I don't think we want it on older branches. [1] https://stackoverflow.com/q/33743880/ [2] https://opendev.org/openstack/oslo.messaging/commit/4f385720d7d43aadfaff7c6f41b0534312b23ba8 Change-Id: I5c468d10230f05438df780e045f1e92662edf070 Closes-Bug: #1883038 (cherry picked from commit 26e8bb4cc9097fddf3c2e34599b131e3f5d73867) (cherry picked from commit 360deb89a7e95d332267564b486219e389a793f7) (cherry picked from commit 54ced5361b49fb9b0cf53ff2e6f5825ba7ae513a)
* Dropping lower constraints testingHervé Beraud2021-04-153-102/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | We facing errors related to the new pip resolver, this topic was discussed on the ML and QA team proposed to to test lower-constraints [1]. I propose to drop this test because the complexity and recurring pain needed to maintain that now exceeds the benefits provided by this mechanisms. Also removing lower constraints and related tox environment as they are no longer needed. [1] http://lists.openstack.org/pipermail/openstack-discuss/2020-December/019390.html Conflicts: lower-constraints.txt NOTE(stephenfin): Conflicts are due to different constraints in lower-constraints. Change-Id: Icf48ef72fbfff88dda2714b386dbbfe355dc1acb (cherry picked from commit 686a8b61826d9bed0a989e645a13c708c3e6343c) (cherry picked from commit 1682ef69ae30732071fb4296f947047c37c4622e) (cherry picked from commit 7e151b15b949e00e5d6a1b6ba93c4fbbb38274bc) (cherry picked from commit a430ad873f26e6aa1863587ddc66ed7916c0d5df)
* Add oslo.messaging-tox-py27-func-rabbit non-voting.Daniel Bengtsson2020-11-191-1/+2
| | | | | | | | At the moment train is block by this job. We have a random failure. Move the job to non-voting. Change-Id: I23844887722f77e827f97390fc8986f322fc7a78 (cherry picked from commit d98245cae84b06e3595034f1d0c3407c8231a976)
* Print warning message when connection running outstein-em9.5.2shenjiatong2020-07-081-0/+4
| | | | | | | | | | | | | I believe when connection pool running out of available resources, there will be all kinds of weird consequences following. So let's print warning logs when we are going to waiting indefinitely for the lock Change-Id: I5ca930cada523bc77c644703a0f02b9160816231 Related-bug: #1871813 (cherry picked from commit 96300a32213d1a9bf114b90bef6971d69b839d1d) (cherry picked from commit 39f770f55b3331b7a99b3ea42a34982a20635cf2) (cherry picked from commit 1613b7a968f33ef7dc683d05fde05be0c458c8fc)
* Simplify tools/test-setup.shAndreas Jaeger2020-07-033-35/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | test-setup.sh is called after bindep is run in CI, and tox is not setup. Simplify the script so that it only does what's needed - install qdrouterd for Ubuntu from qpid/testing. Install the other packages using bindep, add test to amqp1 profile. Add amqp1 to bindep_profiles where needed for scenario tests, previously test-setup.sh added it everywhere. Conflicts: .zuul.yaml bindep.txt Modified: tools/test-setup.sh NOTE(elod.illes): conflicts are due to the following patches are missing from Stein: * .zuul.yaml: I1874f96f78cb403e6f3a56a49cb83df40d531f8d (dropping py35 testing) * bindep.txt: I9fb56450346fca84bc1573fa5e9b6fe81c14e33a (messaging intermediaries update; the lack of this patch also requires the modification of test-setup.sh) Change-Id: Ic3a9e2c873619670edfbf71022d593f3cb5f70f2 Related-Bug: #1885923 (cherry picked from commit 7e406c312a6514e7ae377edb52b9e02b5bf37a7d) (cherry picked from commit dfcc4b0010d39d1f16be413bb1c3a4808718cd19) (cherry picked from commit 88cf5aebef790ff40ab8ca7219d537ccfc54d12e)
* fix typos9.5.1Hervé Beraud2019-08-092-5/+5
| | | | | Change-Id: Id11db4113c9b1c3add602192c1e915218704ef27 (cherry picked from commit 54356899da5d4a0997abb6819f184a27929cc0e9)
* Merge "Fix switch connection destination when a rabbitmq cluster node ↵Zuul2019-06-061-0/+18
|\ | | | | | | disappear" into stable/stein
| * Fix switch connection destination when a rabbitmq cluster node disappearHervé Beraud2019-05-211-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a clustered rabbitmq when a node disappears, we get a ConnectionRefusedError because the socket get disconnected. The socket access yields a OSError because the heartbeat tries to reach an unreachable host (No route to host). Catch these exceptions to ensure that we call ensure_connection for switching the connection destination. POC is available at github.com:4383/rabbitmq-oslo_messging-error-poc Example: $ git clone git@github.com:4383/rabbitmq-oslo_messging-error-poc $ cd rabbitmq-oslo_messging-error-poc $ python -m virtualenv . $ source bin/activate $ pip install -r requirements.txt $ sudo podman run -d --hostname my-rabbit --name rabbit rabbitmq:3 $ python poc.py $(sudo podman inspect rabbit | niet '.[0].NetworkSettings.IPAddress') And in parallele in an another shell|tmux $ podman stop rabbit $ # observe the output of the poc.py script we now call ensure_connection Now you can observe some output relative to the connection who is modified and not catched before these changes. Related to: https://bugzilla.redhat.com/show_bug.cgi?id=1665399 Closes-Bug: #1828841 Change-Id: I9dc1644cac0e39eb11bf05f57bde77dcf6d42ed3 (cherry picked from commit 9d8b1430e5c081b081c0e3c0b5f12f744dc7809d)
* | Merge "Retry to declare a queue after internal error" into stable/steinZuul2019-05-291-1/+22
|\ \ | |/ |/|
| * Retry to declare a queue after internal errorGabriele2019-04-231-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this commit, the client can lose the messages, because the client does not handler the 'AMQP internal error 541', read here [2] for details. The fix retries to create the queue after a delay. When the virtual-host is ready the declare does not fail. This is a rare condiction, please read the bug [1] for details. Closes-Bug: #1822778 [1] https://bugs.launchpad.net/oslo.messaging/+bug/1822778 [2] https://www.rabbitmq.com/amqp-0-9-1-reference.html Change-Id: I7ab1f9d21ebb807285bf1422bc14cc6e07dcd32a (cherry picked from commit 4d2787227b00b973973554f7387e621d2664c0d8)
* | Cap Bandit below 1.6.0 and update Sphinx requirementKenneth Giusti2019-05-212-2/+3
|/ | | | | | | | | | | | Bandit 1.6.0 accidentally changed how the exclusion list option is handled and breaks our use of it. Cap to the previous version until Bandit has fixed the problem. Sphinx 2.0 no longer works on python 2.7, so we need to start capping it there as well. Change-Id: Ie6b379f2c99862c37891ac03c52464e07bc2b2cc (cherry picked from commit 4f467fbd73092aadda8b42e517bb60a4782064ae)
* OpenDev Migration PatchOpenDev Sysadmins2019-04-197-41/+41
| | | | | | | | | | | | | | | This commit was bulk generated and pushed by the OpenDev sysadmins as a part of the Git hosting and code review systems migration detailed in these mailing list posts: http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003603.html http://lists.openstack.org/pipermail/openstack-discuss/2019-April/004920.html Attempts have been made to correct repository namespaces and hostnames based on simple pattern matching, but it's possible some were updated incorrectly or missed entirely. Please reach out to us via the contact information listed at https://opendev.org/ with any questions you may have.
* Replace openstack.org git:// URLs with https://Ian Wienand2019-03-246-21/+21
| | | | | | | | | | | | | | | | | This is a mechanically generated change to replace openstack.org git:// URLs with https:// equivalents. This is in aid of a planned future move of the git hosting infrastructure to a self-hosted instance of gitea (https://gitea.io), which does not support the git wire protocol at this stage. This update should result in no functional change. For more information see the thread at http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003825.html Change-Id: I468f696e9be3949b705d64cd22b02a0146f5fb41
* Update UPPER_CONSTRAINTS_FILE for stable/steinOpenStack Release Bot2019-03-181-1/+1
| | | | | | | | | | | | Update the URL to the upper-constraints file to point to the redirect rule on releases.openstack.org so that anyone working on this branch will switch to the correct upper-constraints list automatically when the requirements repository branches. Until the requirements repository has as stable/stein branch, tests will continue to use the upper-constraints list on master. Change-Id: I1f9bebdb1328b522b4e02f03cbc5ca5c2f8ec176
* Update .gitreview for stable/steinOpenStack Release Bot2019-03-181-0/+1
| | | | Change-Id: I21953b2be874fd4f4cadfe61f05bcf795fab27fd
* Merge "Change python3.5 job to python3.7 job on Stein+"9.5.0Zuul2019-02-222-2/+1
|\
| * Change python3.5 job to python3.7 job on Stein+Charles Short2019-02-142-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | python3.5 was the only supported python3 version on Xenial, now that we have Bionic Beaver nodes that support python3.7, lets switch to testing with python3.7 in addition with python3.6 in Stein and beyond. See ML discussion here [1] for context. [1] http://lists.openstack.org/pipermail/openstack-dev/2018-October/135632.html Change-Id: I3335ccb01667d22a181d99d4d53d7356005d72ad Signed-off-by: Charles Short <chucks@redhat.com> Story: #2004073 Task: #27440
* | Merge "Kafka driver deployment guide"Zuul2019-02-213-1/+247
|\ \
| * | Kafka driver deployment guideAndy Smith2019-01-233-1/+247
| | | | | | | | | | | | | | | Depends-On: Idfb9fe3700d882c8285c6dc56b0620951178eba2 Change-Id: If8370c0c83312d675bde837f768ae40ec3603972
* | | Merge "Bump amqp requirement version to >=2.4.1"Zuul2019-02-203-2/+18
|\ \ \
| * | | Bump amqp requirement version to >=2.4.1mb2019-02-183-2/+18
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | Bumping the version of amqp in requirements.txt and lower-constraints.txt from 2.4.0 to 2.4.1 to mitigate issues with MessagingTimeouts when using TLS due to a amqp bug that was fixed in 2.4.1 Change-Id: I0b094f32dec24c70f95ccd509164a14a71fcfc7d Closes-Bug: #1800957
* | | Merge "Update hacking version"Zuul2019-02-2021-111/+110
|\ \ \
| * | | Update hacking versionZhijunWei2019-01-2121-111/+110
| |/ / | | | | | | | | | | | | | | | | | | | | | update the hacking to latest, duo to[1] [1]: https://github.com/openstack/oslo.messaging/blob/master/HACKING.rst Change-Id: I1ee7387272690f0de0d7b1937d7c2b0ee404063c
* | | Merge "add python 3.7 unit test job"Zuul2019-02-201-0/+1
|\ \ \
| * | | add python 3.7 unit test jobZhongShengping2019-02-191-0/+1
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a mechanically generated patch to add a unit test job running under Python 3.7. See ML discussion here [1] for context. [1] http://lists.openstack.org/pipermail/openstack-dev/2018-October/135626.html Story: #2004073 Task: #27440 Change-Id: I2ee368245286ca5fb6091a5ea5ebbed5261c54c0
* | | Mark telemetry tests nv and remove from gateAndy Smith2019-02-181-2/+2
|/ / | | | | | | Change-Id: I3a49e7397df9cd0b2d7eba5747795c3d771dcbea
* | Bump amqp requirement version to >= 2.4.09.4.0Kenneth Giusti2019-01-242-2/+2
|/ | | | | | | | See http://lists.openstack.org/pipermail/openstack-discuss/2019-January/001998.html Closes-Bug: #1813029 Change-Id: I4ef3d1184fd593f4acd090395579d91e093dd82c
* Avoid unnecessary use of items()9.3.1Dirk Mueller2019-01-071-5/+6
| | | | | | | | The key, value pair returned by items() wasn't used here, so rewrite the logic to just iterate over the keys, filtered by the type. Change-Id: I7512ea93ac794d161a4cd9944546d6ca035a12cf
* Merge "Switch driver to confluent-kafka client library"9.3.0Zuul2018-12-0712-158/+222
|\
| * Switch driver to confluent-kafka client libraryAndy Smith2018-12-0412-158/+222
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch switches the kafka python client from kafka-python to confluent-kafka due to documented threading issues with the kafka-python consumer and the recommendation to use multiplrocessing. The confluent-kafka client leverages the high performance librdkafka C client and is safe for multiple thread use. This patch: * switches to confluent-kafka library * revises consumer and producer message operations * utilizes event.tpool method for confluent-kafka blocking calls * updates unit tests * adds kafka specific timeouts for functional tests * adds release note Depends-On: Ice374dca539b8ed1b1965b75379bad5140121483 Change-Id: Idfb9fe3700d882c8285c6dc56b0620951178eba2
* | Update mailinglist from dev to discussZhongShengping2018-12-051-1/+1
|/ | | | | | | openstack-dev was decomissioned this night in https://review.openstack.org/621258 Update openstack-dev to openstack-discuss Change-Id: I7d889d3f9a6c95e707ed57dbf5a9cffb1d41ddf5
* Don't use monotonic with Python >=3.3Andy Smith2018-12-034-5/+15
| | | | | | | | | | | | A change to the global-requirements has limited use of monotonic library to Python versions earlier than 3.3 (later versions have built-in support for a monotonic clock), so limit it in requirements.txt. Note: this patch updates kafka driver (due to deprecated exception in library) in order to pass unit tests Change-Id: Id6b0814e05a0e548a8c2a5359daf1a6878cf6859
* Merge "Add a test for rabbit URLs lacking terminating '/'"Zuul2018-11-191-0/+3
|\
| * Add a test for rabbit URLs lacking terminating '/'Kenneth Giusti2018-10-191-0/+3
| | | | | | | | Change-Id: I062ca84b6b8a5d1eeccafef87608c783ad5ffb03
* | Use ensure_connection to prevent loss of connection error logs9.2.1Kenneth Giusti2018-11-052-4/+12
| | | | | | | | | | Change-Id: I31e3f83304c0780cfd380aa63ec2962c3c28ec78 Closes-Bug: #1801011
* | Merge "Use default exchange for direct messaging"9.2.0Zuul2018-11-011-1/+2
|\ \
| * | Use default exchange for direct messagingOleg Bondarev2018-09-251-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Lots of exchanges create problems during failover under high load. Please see bug report for details. This is step 1 in the process: only using default exchange when publishing. Consumers will still consume on separate exchanges (and on default exchange by default) so this should be (and tested to be) a non-breaking and upgrade-friendly change. Step 2 is to update consumers to only listen on default exchange, to happen in T release. Change-Id: Id3603f4b7e1274b616d76e1c0c009d2ab7f6efb6 Closes-Bug: #1789177
* | | Merge "doc: Remove crud from conf.py file"Zuul2018-10-232-280/+26
|\ \ \ | |_|/ |/| |
| * | doc: Remove crud from conf.py fileHervé Beraud2018-10-152-280/+26
| | | | | | | | | | | | Change-Id: I35c6221f78cac9fe4ab3e194e8a94ca4f0b24ca2
* | | Use '/' for the vhost if the transport_url has no trailing '/'9.1.1Kenneth Giusti2018-10-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | This change https://review.openstack.org/#/c/599912/ accidentally removed setting the virtual host to '/' if none were provided in the transport_url configuration option. Closes-Bug: #1798241 Change-Id: I2dbcec3f77eb7cc513350b00ea020cc8faaecec1
* | | Merge "Clean up .gitignore references to personal tools"Zuul2018-10-161-2/+11
|\ \ \
| * | | Clean up .gitignore references to personal toolsZhongShengping2018-10-151-2/+11
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Developers run all sorts of different tools within Git repositories, any of which can leave their own special trashfiles all over the place. We can't every hope to catalog them all, so better to recommend developers simply configure a global core.excludesfile to filter the irrelevant files which tend to get created by their personal choice of tools. To this end, remove the long-standing sections for "Mr Developer" and "Editors" since their mere existence here sends the signal that we welcome (and have time to review) additions for any old tool someone ever might happen to try. Also add a comment block explaining this, for clarity. We can, and should of course, continue to list files created by the tools recommended by our workflow (test frameworks called from tox, documentation and packaging builds, et cetera). This change is a port of I1b41efac219fca44e2548fc36633724d0ecfc0cb from the openstack-dev/oslo-cookiecutter repository. Change-Id: I4078179f3d55847ea23f8790572ba911e52fce53
* | | Using pip as a python module9.1.0Hervé Beraud2018-10-151-1/+1
|/ / | | | | | | | | | | | | Since python 2.7.9 and python 3.4 pip is a stdin module Change-Id: I17c8c93337fa4f0a33f9131d4117739179133ea9
* | Allow transport_url initialization in ConfFixture constructorKenneth Giusti2018-10-091-1/+6
| | | | | | | | Change-Id: Ibe2a5277cdcf89cd006507f13eddbbec4b384681
* | Merge "Fix oslo.messaging default transport"9.0.1Zuul2018-10-052-4/+12
|\ \
| * | Fix oslo.messaging default transportMehdi Abaakouk2018-10-052-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change d3f6ca0b47e2a5a3413b27617d9655f02b191c6a have broken oslo.messaging defaults, no more transport are selected by default and oslo.messaging just crash: Traceback (most recent call last): File "/home/sileht/workspace/openstack/oslo.messaging/.tox/py27/lib/python2.7/site-packages/mock/mock.py", line 1305, in patched return func(*args, **keywargs) File "oslo_messaging/tests/test_transport.py", line 111, in test_get_transport transport_ = oslo_messaging.get_transport(self.conf, **kwargs) File "/home/sileht/workspace/openstack/oslo.messaging/.tox/py27/lib/python2.7/site-packages/debtcollector/removals.py", line 242, in wrapper return f(*args, **kwargs) File "oslo_messaging/transport.py", line 247, in get_transport transport_cls=RPCTransport) File "oslo_messaging/transport.py", line 205, in _get_transport url.transport.split('+')[0], AttributeError: 'NoneType' object has no attribute 'split' This change restores rabbit:// as default. Change-Id: I945a2aca60347dad672cc406cd33e80e93c588a7
* | | always build universal wheelsHervé Beraud2018-10-041-1/+1
|/ / | | | | | | | | | | All of our projects are pure python, so we can build universal wheels by default. Change-Id: I3369303d278af6154cdcf06b727e8ff941dc410a
* | Refactor GetTransportSadPathTestCase9.0.0Steve Kowalik2018-09-251-25/+8
|/ | | | | | | | GetTransportSadPathTestCase did an awful lot of mocking for things that were no longer called. Since we only have one callable now, make use of self.assertRaises. Change-Id: Ie93ff74de84ff4d6cc75a3c89dd9a03fdcba5d35