summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix README build badgesGerhard Lazu2020-04-301-2/+2
| | | | Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
* Merge pull request #2326 from rabbitmq/improve-product_info-apiGerhard Lazu2020-04-301-42/+79
|\ | | | | Improve handling of product name & version
| * rabbit: Include base product name & version in "Starting" logged messageJean-Sébastien Pédron2020-04-301-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the product name & version are not overridden, the common logged message is the following one: 2020-04-24 15:08:51.754 [info] <0.263.0> Starting RabbitMQ 3.8.0+rc.1.278.g5cdf562.dirty on Erlang 21.3.8.13 Copyright (c) 2007-2020 VMware, Inc. or its affiliates. Licensed under the MPL 1.1. Website: https://rabbitmq.com Now, when the product name or version are overridden, the "Starting" line mentions them. There is a second line added with the base product name & version: 2020-04-24 15:08:51.754 [info] <0.263.0> Starting RabbitMQ Enterprise Edition 2020.04 on Erlang 21.3.8.13 Based on RabbitMQ 3.8.0+rc.1.278.g5cdf562.dirty Copyright (c) 2007-2020 VMware, Inc. or its affiliates. Licensed under the MPL 1.1. Website: https://rabbitmq.com
| * rabbit: Report base and overridden product info separatelyJean-Sébastien Pédron2020-04-301-39/+65
|/ | | | | | | | | | | | | | | | | | | | | | | | | Now, `rabbit:product_info/0` will report the base name & version ("RabbitMQ" and its actual version) separately from the final product name & version (if any). If the product name & version were not overridden in the configuration or the environment, they will be missing from the product info return value. It allows caller to distinguish situations where the product name & version were set or not. An example use case is `rabbitmqctl status`: we want to report the product name & version only if they were overridden. If they were not, the "Product name" and "Product version" won't be added to the output. Only "RabbitMQ version" will be displayed. To help with the above, the map returned by `rabbit:product_info/0` also contains a flag, `product_overridden`, set to true if they were. Finally, the RabbitMQ version is often associated with the Erlang/OTP release. So include this into the returned map. This will save an additional RPC call if the remote caller is interested in both.
* Revert "Merge pull request #2325 from ↵Luke Bakken2020-04-301-40/+8
| | | | | | | rabbitmq/revert-rabbitmq-server-2308-dead_queue_rejects" This reverts commit 55d28f5ad3ad3a47791989bd118c6d8ce954eeca, reversing changes made to 0bf8d0841c2467b93ab849f4f53a7bc99ab854e7.
* GitHub Actions: Regen workflowsJean-Sébastien Pédron2020-04-302-178/+1064
|
* Merge pull request #2332 from rabbitmq/lrb-handle-closed-from-port_pleaseMichael Klishin2020-04-301-34/+22
|\ | | | | Handle "closed" return value
| * Handle "closed" return valueLuke Bakken2020-04-291-34/+22
| | | | | | | | | | | | | | | | Turns out `port_please/2` and `port_please/3` can return `closed` - https://github.com/erlang/otp/pull/2616 We need to handle it here. First reported via RabbitMQ public slack channel - https://rabbitmq.slack.com/archives/C1EDN83PA/p1588166195464400
* | Use a 2 minute timeout when renaming nodes in cluster_rename_SUITEPhilip Kuryloski2020-04-291-1/+1
|/ | | | This suite has been flaky, but it only fails with a timeout trap on the whole test. By setting a timeout for invidual rabbitmqctl commands, it should be easier to discern in a flake where things got stalled.
* Express connection count assertion more generallyPhilip Kuryloski2020-04-281-3/+4
| | | | | | So that more information is available in the logs upon test failure https://3.basecamp.com/4467044/buckets/16481075/todos/2619089282
* Merge pull request #2331 from rabbitmq/mk-remove-outdated-commentMichael Klishin2020-04-281-2/+0
|\ | | | | Remove an outdated comment
| * Remove an outdated commentmk-remove-outdated-commentMichael Klishin2020-04-281-2/+0
| |
* | GitHub Actions: Regen workflowsJean-Sébastien Pédron2020-04-282-0/+2
| |
* | Merge pull request #2330 from rabbitmq/qq-delivery-limit-bugMichael Klishin2020-04-282-7/+34
|\ \ | |/ |/| QQ: Fix crash bug when reaching delivery limit
| * QQ: Fix crash bug when reaching delivery limitkjnilsson2020-04-282-7/+34
| | | | | | | | | | | | This only happens when using basic.get but would crash the quorum queue when the delivery limit was reached due to the transient basic.get consumer being removed
* | GitHub Actions: Regen workflowsJean-Sébastien Pédron2020-04-271-2/+2
| |
* | Merge pull request #2325 from ↵Jean-Sébastien Pédron2020-04-271-8/+40
|\ \ | | | | | | | | | | | | rabbitmq/revert-rabbitmq-server-2308-dead_queue_rejects Revert "Remove dead_queue_rejects test flake"
| * | Revert "Remove dead_queue_rejects test flake"Luke Bakken2020-04-231-8/+40
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9772aa8f8256a410bcc13ae5038f949ffe1d5b84. Check RPC return value Try a cast to fix test
* | | GitHub Actions: Regen workflowsJean-Sébastien Pédron2020-04-272-2/+2
| | |
* | | GitHub Actions: Generate workflows using `make github-actions`Jean-Sébastien Pédron2020-04-273-419/+374
| | |
* | | Git: Ignore rabbitmq-deps.mk fileJean-Sébastien Pédron2020-04-271-1/+1
| | |
* | | Don't cache app modulesGerhard Lazu2020-04-252-1102/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | @dumbbell copy paste: When we re-run a workflow, the `ebin` cache, created by the initial run, is restored in `checks`. This causes rabbitmq_prelaunch to be cleaned when we run `make xref` and thus the make target fails. This is probably a bug in Erlang.mk or one of our plugins,but in the meantime, I suggest we don't cache this directory. Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
* | | Use shields.io for better badgesGerhard Lazu2020-04-251-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the Travis CI build badge - it links to a build which is less comprehensive than the new GitHub Actions builds. We are likely to remove Travis completely, but would like to do that after we discuss it. cc @dumbbell Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
* | | Shorten text on build badgesGerhard Lazu2020-04-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Triggering another build and busting the deps & ebin app modules cache, because it makes no sense for xref to pass in OTP v22.3 but fail in OTP v21.3 - it's the same src! https://github.com/rabbitmq/rabbitmq-server/actions/runs/86189793 cc @dumbbell Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
* | | rabbit_runtime_parameters:set_globa/3: add debug loggingMichael Klishin2020-04-241-0/+1
|/ /
* | Merge pull request #2277 from ↵Gerhard Lazu2020-04-232-117/+25
|\ \ | | | | | | | | | | | | rabbitmq/always-handle-config-files-with-cuttlefish Always handle config files with Cuttlefish
| * | rabbit_config: Deprecate schema_dir/0Jean-Sébastien Pédron2020-04-231-9/+4
| | | | | | | | | | | | | | | | | | It is unused in RabbitMQ or tier-1 plugins, and the previously returned value made no sense since the switch to Cuttlefish as a library (as part of #2180).
| * | rabbit_prelaunch_conf: Always handle config. files with CuttlefishJean-Sébastien Pédron2020-04-232-108/+21
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This has several benefits: 1. It simplifies the code, all configuration being handled by the same code path (no more condition on Erlang-term-based vs. Cuttlefish). `rabbit_config` shrinks quite a lot in the process. 2. We can use additional configuration files AND an Erlang-term-based configuration file. In other words, it is possible to use the same existing Erlang-term-based file and introduce Cuttlefish files when needed. It allows a user to run RabbitMQ with: RABBITMQ_CONFIG_FILE=/path/to/rabbitmq.config \ RABBITMQ_CONFIG_FILES=/path/to/conf.d/*.conf \ ./sbin/rabbitmq-server A developer can do the same with `make run-broker`: make run-broker \ RABBITMQ_CONFIG_FILES=/path/to/conf.d/*.conf In the example above, the main configuration file generated by rabbitmq-run.mk is an Erlang-term-based one. This is implemented by calling Cuttlefish with a (possibly empty) list of additional files and the Erlang-term-based file as the advanced configuration file. References #2180.
* | Merge pull request #2323 from rabbitmq/rabbitmq-server-2322Michael Klishin2020-04-221-12/+21
|\ \ | | | | | | Run both authn and authz steps when rabbit_auth_backend_cache module …
| * | Run both authn and authz steps when rabbit_auth_backend_cache module is usedLuke Bakken2020-04-221-12/+21
| | | | | | | | | | | | Fixes #2322
* | | Fix GitHub Actions workflow badgesGerhard Lazu2020-04-221-1/+2
| | | | | | | | | | | | Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
* | | Merge pull request #2270 from rabbitmq/github-actionsGerhard Lazu2020-04-226-10/+7820
|\ \ \ | |_|/ |/| | Run checks & tests in GitHub Actions on every push
| * | Run checks & tests in GitHub Actions on every pushGerhard Lazu2020-04-226-10/+7820
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Separate workflows for min & max supported OTP version - Multiple groups for clustering_management (run in parallel & finish quicker) - Store CT logs as artefacts on failure - Tests badge in README - Store in S3 the version of the RabbitMQ components used while testing We have decided to not not run tests for RabbitMQ components that we depend on: rabbitmq-cli, rabbitmq-erlang-client & rabbitmq-common. rabbitmq-cli & rabbitmq-erlang-client depend on rabbitmq-server (recursive dependency) meaning that they will clone rabbitmq-server again, inside the deps dir. We will continue to run these in Concourse, until we merge all repositories into a single one. Let's be honest, it's a monolith! Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
* | Merge pull request #2320 from rabbitmq/rabbitmq-cli-408Michael Klishin2020-04-222-0/+174
|\ \ | |/ |/| Introduce rabbit_upgrade_preparation
| * Introduce rabbit_upgrade_preparationMichael Klishin2020-04-212-0/+174
| | | | | | | | Part of rabbitmq/rabbitmq-cli#408.
* | Update erlang.mkJean-Sébastien Pédron2020-04-211-16/+43
| |
* | Attempt to make unit_log_managment_SUITE less flakyPhilip Kuryloski2020-04-212-14/+27
| | | | | | | | | | | | | | | | | | | | Rather than wait a fixed 2000ms, poll the test condition for up to 5000ms. Also switch from a raw message send in rabbit.erl to a gen_event:call/4 to the lager backend. I had hoped this would behave synchronously, which it does not appear to, but at least we now get a value back from the call.
* | Merge pull request #2315 from rabbitmq/use-new-inet_tcp_proxy_distJean-Sébastien Pédron2020-04-214-22/+17
|\ \ | | | | | | Use new `inet_tcp_proxy_dist`
| * | rabbit_feature_flags: Improve timeout computation in ↵Jean-Sébastien Pédron2020-04-201-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `mark_as_enabled_remotely()` The rounded value of `(timer:now_diff(T1, T0) div 1000)` was often 0, leading to no decrease in timeout, i.e. the equivalent of an infinite loop. Now, the division happens after the substraction. Also, to avoid to much hammering, we sleep for one second between retries.
| * | *_SUITE: Use the new API for inet_tcp_proxy_distJean-Sébastien Pédron2020-04-203-19/+10
|/ / | | | | | | See rabbitmq/inet_tcp_proxy#3 and rabbitmq/rabbitmq-ct-helpers#39.
* | *_SUITE: Don't setup dist module when not neededJean-Sébastien Pédron2020-04-204-12/+4
|/
* Merge pull request #2316 from rabbitmq/lrb-fixup-schema-syncMichael Klishin2020-04-151-1/+1
|\ | | | | Fix schema sync for parameters
| * Fix schema sync for parametersLuke Bakken2020-04-151-1/+1
|/ | | | | | Fixes the issue described here: https://github.com/rabbitmq/rabbitmq-schema-definition-sync/issues/2#issuecomment-613075591
* Remove a couple of highly timing-sensitive testsMichael Klishin2020-04-131-54/+0
| | | | | | | | | | | When asserting that connections to a down virtual host cannot be open we compete against a desired behavior: quick recovery of the virtual host process tree. Unlike with the "X eventually happens or we fail with a timeout" kind of scenarios, here the test must catch a very specific time window. Instead of exposing virtual host internals to the test so that it's more observable from the outside we concluded that these tests are not critically important to have.
* dynamic_ha_SUITE: make some tests less timing-dependentMichael Klishin2020-04-131-14/+28
|
* Simplify a flaky test that overlaps with other tests and suitesMichael Klishin2020-04-131-45/+2
| | | | | and is quite coarse grained, meaning it is hard to keep track of node state for its duration.
* Merge pull request #2308 from rabbitmq/remove-flaky-testsMichael Klishin2020-04-116-235/+40
|\ | | | | Remove flaky tests
| * Remove tests from ct-simple_ha that fail frequentlyGerhard Lazu2020-04-091-51/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After looking at the last 20 builds in the server-release:v3.9.x pipeline, 2 builds succeeded on the first run. Even though we retry each build 3 times, out of the last 50 builds, 28 passed & 22 failed. We (+@dumbbell) removed the tests which fail more often than they pass. If anyone wants to add them back, please rewrite them as in the current form they simply don't work. Alternatively, they are hinting to a failure in the system which needs addressing. Both are out of the current scope. cc @michaelklishin Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
| * Remove publisher_confirms & confirm_nack from mirrored_queue testsGerhard Lazu2020-04-091-11/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conclusion of the following conversation: - Gerhard Lazu: what should we do about these recurring test failures? https://github.com/rabbitmq/rabbitmq-server/runs/548636403?check_suite_focus=true#step:6:185 == publisher_confirms_parallel_SUITE == publisher_confirms_parallel_SUITE > publisher_confirm_tests > mirrored_queue > publisher_confirms #1. {error,{noproc,{gen_server,call, [<0.393.0>, {wait_for_confirms,5000}, infinity]}}} publisher_confirms_parallel_SUITE > publisher_confirm_tests > mirrored_queue > confirm_nack #1. {error, {{badmatch,received_ack_instead_of_nack}, [{publisher_confirms_parallel_SUITE,confirm_nack,1, [{file,"test/publisher_confirms_parallel_SUITE.erl"}, {line,247}]}, {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1562}]}, {test_server,run_test_case_eval1,6, [{file,"test_server.erl"},{line,1080}]}, {test_server,run_test_case_eval,9, [{file,"test_server.erl"},{line,1012}]}]}} - Karl Nilsson: I always suspected that test to be racy - Gerhard Lazu: In which case, I would like to delete it. Does someone want to fix it instead? - Karl Nilsson: How do we know the queue exits after the channel processing the publish but before the queue mirrors sending all acks the and ch returning with ack - Michael Klishin: If there is no way to make it not racy or something like Jepsen would make more sense to test this kind of thing, we can simply delete the test - Karl Nilsson: Great point Michael, the Jensen suite should provide some coverage of this. - Karl Nilsson: I think we are safe to remove these tests, at least the ones using mirroring - Michael Klishin: Please go ahead and remove them Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
| * Remove rejects_survive test flakeGerhard Lazu2020-04-091-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://github.com/rabbitmq/rabbitmq-server/runs/522909848?check_suite_focus=true#step:4:512 simple_ha_SUITE > cluster_size_3 > overflow_reject_publish > rejects_survive_stop #1. {error,{error,received_both_acks_and_nacks}} - It's not helping anyone in the current state - I don't have enough context to be able to fix it - I need to stay focused on the current task, cannot afford to context switch - Feel free to fix it if it's important, otherwise leave it deleted cc @michaelklishin @dumbbell Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>