summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Pin syslog library version to 3.4.2Daniil Fedotov2018-05-211-1/+1
|
* Fix syslog config translation tests.Daniil Fedotov2018-05-181-10/+7
| | | | | | Syslog backend is no longer configured via lager handler, facility and identity options are in the syslog application config now.
* Do not parse syslog IP in schema transformer. String IPs are supported anyway.Daniil Fedotov2018-05-172-8/+1
|
* Cuttlefish schema to configure syslog application.Daniil Fedotov2018-05-173-14/+215
| | | | | Configure the syslog application directly instead of relying on rabbit_lager module.
* Integrate syslog library into rabbitmq loggingDaniil Fedotov2018-05-162-8/+39
|
* Merge pull request #1589 from rabbitmq/exclusive-queues-cleanup-optimisationMichael Klishin2018-05-153-41/+45
|\ | | | | Do not set table-wide and partial locks when deleting bindings.
| * Ignore lock kind argument when dirty-deleting a routeDaniil Fedotov2018-05-151-1/+1
| |
| * Do dirty deletes when cleaning up bindings.Daniil Fedotov2018-05-141-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | Dirty deletes are faster and idempotent, which means that it can be run in transaction as long as it's locked in the begining of transaction, which is done in `lock_resource`. Speed improvement is aquired by not setting record locks for each record, since we already have a record lock Addresses #1566 [#156352963]
| * Do not lock entire routing table when cleaning up bindings.Daniil Fedotov2018-05-143-36/+40
| | | | | | | | | | | | | | | | | | | | | | | | Instead of locking entire table we can use a custom global lock on the affected resource (source or destination). This can improve performance when multiple records deleted at the same time, for example when connection with exclusive queues closes. Resource lock also aquired when adding or removing a binding, so it won't conflict with bulk removal. Addresses #1566 [#156352963]
* | Merge pull request #1597 from rabbitmq/rabbitmq-server-1590Arnaud Cogoluègnes2018-05-156-9/+192
|\ \ | | | | | | Hard cap for maximum priorities
| * | Use MAX_SUPPORTED_PRIORITY constant for argument validationArnaud Cogoluègnes2018-05-153-3/+152
| | | | | | | | | | | | Part of #1590.
| * | Follow-up to 08168de6b0c3c4d7f6429f2c3d098e5080ff7b1aMichael Klishin2018-05-141-7/+0
| | | | | | | | | | | | | | | | | | References #1590. [#157380396]
| * | Revert "Take policy-configured max-priority into account"Michael Klishin2018-05-142-20/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit f5aa1fbe043395806d9b9ed8780892924431466c. This feature wasn't available in the original implementation for a reason: policies are dynamic and can change after a queue's been declared. However, queue priorities are (at least currently) set in stone from the moment of queue creation. This was mentioned in the docs but not explicitly enough and got overlooked. Credit for the [re-]discovery goes to @acogoluegnes :) References #1590. [#157380396]
| * | Use the constant across the boardMichael Klishin2018-05-141-2/+2
| | | | | | | | | | | | Part of #1590.
| * | Take policy-configured max-priority into accountMichael Klishin2018-05-132-2/+20
| | | | | | | | | | | | Part of #1590.
| * | Reject max-priority arguments >= 256Michael Klishin2018-05-113-8/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the value we advertise in the docs and it should be enforced to avoid process explosion e.g. when an overflow value is provided. Part of #1590. [#157380396]
| * | Make policy validation aware of the max-priority argumentMichael Klishin2018-05-101-1/+7
|/ / | | | | | | | | | | References #1590. [#157380396]
* | Merge pull request #1594 from rabbitmq/rabbitmq-server-1593Michael Klishin2018-05-091-2/+3
|\ \ | |/ |/| Change channel_max default to 2047
| * Use 2047Michael Klishin2018-05-091-1/+1
| | | | | | | | | | Since channel 0 exists on every connection for negotiation and error communication. 655365 = (1 << 16) - 1, so 2047 = (1 << 11) - 1.
| * Change channel_max default to 2048Michael Klishin2018-05-091-2/+3
|/ | | | Closes #1593.
* Unused variable.Daniil Fedotov2018-04-271-1/+1
|
* Do not try to stop all slaves from slave process. Stop it and let another be ↵Daniil Fedotov2018-04-271-3/+0
| | | | | | | | | | promoted There can be a race condition when a master queue is briefly restarted. If master rejoins a stopping GM it is also stopped. In that case it sould be sefier to stop the slave and let another be promoted and also stopped. If master return it will either rejoin slaves or create a new GM.
* Merge pull request #1586 from rabbitmq/rabbitmq-management-565Arnaud Cogoluègnes2018-04-251-2/+6
|\ | | | | One more place where a map definition must be converted to proplist before validation
| * One more place where a map definition must be converted to proplist before ↵Michael Klishin2018-04-241-2/+6
| | | | | | | | | | | | | | | | | | | | | | validation Fixes rabbitmq/rabbitmq-management#565. References rabbitmq/rabbitmq-server#1493, rabbitmq/rabbitmq-federation#70, rabbitmq/rabbitmq-shovel#38, rabbitmq/rabbitmq-federation#73. [#157045132]
* | Merge pull request #1578 from rabbitmq/queue-not-promote-on-crashMichael Klishin2018-04-255-76/+160
|\ \ | |/ |/| Policy key to not promote unsynchronised queues.
| * Do not mention gm_deaths in error message.Daniil Fedotov2018-04-191-1/+1
| |
| * Test that ha-promote-on-failure takes precedence over ha-promote-on-shutdownDaniil Fedotov2018-04-181-2/+16
| |
| * Test for ha-promote-on-failure policy keyDaniil Fedotov2018-04-181-0/+35
| |
| * Introduce a new policy: ha-promote-on-failure (always by default)Daniil Fedotov2018-04-184-75/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new policy controls if unsynchronised slaves should be promoted after master crash. If set to `when-synced`, unsynchronised slaves will not be promoted, keeping the state of the queue, but making it unavailable until master node returns. This change is supposed to make the cluster shutdown safier, because queues can fail or be killed on shutdown. The queues without master will be available from the management UI and can be deleted and redeclared, but will not automatically loose messages. Trying to declare or passively declare the queue will result in a timeout error. Same way as if the master was gracefully stopped with ha-promote-on-shutdown: when-synced [#156811690]
* | Merge pull request #1583 from rabbitmq/rabbitmq-server-1582Michael Klishin2018-04-241-1/+3
|\ \ | | | | | | Handle bump_reduce_memory_use non-true case
| * | Handle bump_reduce_memory_use non-true caseLuke Bakken2018-04-231-1/+3
| | | | | | | | | | | | Fixes #1582
* | | Fix a typoMichael Klishin2018-04-231-1/+1
|/ / | | | | | | [ci skip]
* | Merge pull request #1580 from rabbitmq/lrb-more-forgiving-hostname-lookupMichael Klishin2018-04-211-2/+1
|\ \ | |/ |/| Use rabbit_net:hostname
| * Use rabbit_net:hostnameLuke Bakken2018-04-191-2/+1
|/ | | | This will take into account error conditions which will default to the value returned by inet:gethostname()
* Merge pull request #1577 from rabbitmq/rabbitmq-peer-discovery-k8s-23Luke Bakken2018-04-111-2/+7
|\ | | | | Make it possible for peer discovery backends to provide their own RSD range
| * Make it possible for peer discovery backends to provide their own RSD rangeMichael Klishin2018-04-111-2/+7
|/ | | | References rabbitmq/rabbitmq-peer-discovery-k8s#23.
* Update erlang.mkJean-Sébastien Pédron2018-04-111-2/+35
|
* Update rabbitmq-components.mkJean-Sébastien Pédron2018-04-111-5/+5
|
* Update rabbitmq-components.mkJean-Sébastien Pédron2018-04-111-2/+2
|
* Merge pull request #1575 from rabbitmq/rabbitmq-federation-73Jean-Sébastien Pédron2018-04-091-0/+4
|\ | | | | rabbit_parameter_validation: support maps in proplist validator
| * rabbit_parameter_validation: support maps in proplist validatorMichael Klishin2018-04-091-0/+4
|/ | | | | Part of rabbitmq/rabbitmq-federation#73, references rabbitmq/rabbitmq-federation#70, rabbitmq/rabbitmq-federation#67.
* Travis CI: Update config from rabbitmq-commonJean-Sébastien Pédron2018-04-091-1/+1
|
* Travis CI: Update config from rabbitmq-commonJean-Sébastien Pédron2018-04-091-3/+6
|
* Merge branch 'reduce-mnesia-contention-when-nodes-restart-master'Michael Klishin2018-04-064-45/+65
|\
| * Re-apply f2ab0b40f034cda6bca4294735b493f20550b93cMichael Klishin2018-04-051-25/+1
| |
| * Merge branch 'reduce-mnesia-contention-when-nodes-restart-v3.7.x' into ↵Michael Klishin2018-04-055-46/+90
| |\ |/ / | | | | reduce-mnesia-contention-when-nodes-restart-master
| * Run binding deletions in a Mnesia transactionGerhard Lazu2018-03-271-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise, if there is more than 1 node that runs rabbit_node_monitor:on_node_down/1, there will be `{aborted,no_transaction` errors. {{aborted,no_transaction}, [{mnesia,abort,1,[{file,"mnesia.erl"},{line,351}]}, {rabbit_exchange_type_topic,'-remove_bindings/3-lc$^0/1-0-',1, [{file,"src/rabbit_exchange_type_topic.erl"}, {line,78}]}, {rabbit_exchange_type_topic,remove_bindings,3, [{file,"src/rabbit_exchange_type_topic.erl"}, {line,78}]}, {rabbit_binding,x_callback,4,[{file,"src/rabbit_binding.erl"},{line,570}]}, {rabbit_binding,'-process_deletions/2-fun-0-',2, [{file,"src/rabbit_binding.erl"},{line,547}]}, {dict,map_bucket,2,[{file,"dict.erl"},{line,481}]}, {dict,map_bkt_list,2,[{file,"dict.erl"},{line,477}]}, {dict,map_bkt_list,2,[{file,"dict.erl"},{line,477}]}]} Partner-in-crime: @essen
| * Delete metrics for all deleted queues in a single operationGerhard Lazu2018-03-271-47/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than calling `rabbit_core_metrics:delete_queue/1` for every queue, collect all deleted queues and delete all their metrics in a single operation. We don't use a single Mnesia transaction to delete all objects related to a queue and this may be a problem, but we haven't run this version of the code long enough to know for sure. What should we be looking out for @michaelklishin? For initial context, see #1513 Partner-in-crime: @essen
| * Group queue deletions on_node_down into 10 operations per transactionGerhard Lazu2018-03-271-18/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When many queues are being deleted, we believe that it's faster to have fewer Mnesia transactions and therefore group 10 queue deletions into a single Mnesia transaction. This number (10) is arbitrary, we didn't try with a different number. Creating 1 Mnesia transaction for every queue deletion feels too many transaction, and having a single Mnesia transaction for all queue deletions is too few transactions. This felt like a sensible option. We cannot determine if this is a good change because rabbit_core_metrics:queue_deleted/1 takes the most time and obscures all observations. According to qcachegrind, rabbit_misc:execute_mnesia_transaction/1 takes 1.8s while rabbit_core_metrics:queue_deleted/1 takes 132s out of which ets:select/2 takes 131s. How can we optimise rabbit_core_metrics:queue_deleted/1 ? We are thinking that rather than calling ets:select/2 twice for every queue, we should call it twice for all queues that need to be deleted. We don't know whether this is possible. Alternatively, we might look into ets:first/1 & ets:next/2 to iterate over the entire table ONCE with all the queues that have been deleted. Thoughts @dcorbacho @michaelklishin ? For initial context, see #1513 Partner-in-crime: @essen
| * Add back INTERNAL_USER info to on_node_down functionGerhard Lazu2018-03-271-2/+4
| |