summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #2120 from rabbitmq/startup-banner-improvementsArnaud Cogoluègnes2019-09-253-20/+36
|\ | | | | Startup banner improvements
| * Rearrange startup banner itemsMichael Klishin2019-09-251-12/+11
| |
| * Startup banner improvementsMichael Klishin2019-09-253-14/+31
|/ | | | Include config file paths and doco links.
* A typoMichael Klishin2019-09-241-1/+1
|
* WordingMichael Klishin2019-09-241-1/+1
|
* docs/rabbitmq.config.example is Tuesday's goneMichael Klishin2019-09-242-923/+11
| | | | This only leaves rabbitmq.conf and advanced.config examples.
* Merge pull request #2114 from rabbitmq/consume-events-commandMichael Klishin2019-09-241-0/+206
|\ | | | | Consume events command
| * Merge remote-tracking branch 'origin' into consume-events-commanddcorbacho2019-09-235-5/+105
| |\
| * | Event handler for consume events commanddcorbacho2019-09-201-0/+206
| | | | | | | | | | | | [#168224266]
* | | Merge pull request #2117 from jeckersb/binary_refs_raceMichael Klishin2019-09-241-3/+6
|\ \ \ | | | | | | | | rabbit_diagnostics: handle race in binary_refs
| * | | rabbit_diagnostics: handle race in binary_refsJohn Eckersberg2019-09-231-3/+6
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is possible for a process to terminate between the call to processes() and subsequent call to process_info(), and the latter returns undefined instead of a tuple. This results in the crash: Error: {{badmatch,undefined}, [{rabbit_diagnostics,binary_refs,1, [{file,"src/rabbit_diagnostics.erl"},{line,98}]}, {rabbit_diagnostics,'-top_binary_refs/1-lc$^0/1-0-',1, [{file,"src/rabbit_diagnostics.erl"},{line,93}]}, {rabbit_diagnostics,'-top_binary_refs/1-lc$^0/1-0-',1, [{file,"src/rabbit_diagnostics.erl"},{line,93}]}, {rabbit_diagnostics,top_binary_refs,1, [{file,"src/rabbit_diagnostics.erl"},{line,93}]}, {erl_eval,do_apply,6,[{file,"erl_eval.erl"},{line,670}]}]}
* | | Merge pull request #2116 from rabbitmq/rabbitmq-server-2084Michael Klishin2019-09-233-10/+12
|\ \ \ | |/ / |/| | Allow setting ERL_MAX_PORTS in rabbitmq-env-conf.bat
| * | Set ERL_MAX_ variables in rabbitmq-env.bat so they will be available in ↵Luke Bakken2019-09-233-16/+11
| | | | | | | | | | | | rabbitmq-server.bat and rabbitmq-service.bat
| * | Allow setting ERL_MAX_PORTS in rabbitmq-env-conf.batLuke Bakken2019-09-232-0/+7
|/ / | | | | | | | | | | | | | | Fixes #2084 Since env vars must be passed with -env to erlsrv.exe, this is the only way to pass the value after being set by rabbitmq-env-conf.bat. The only alternative is to set a system-wide env variable that is picked up any time erl.exe starts
* | Add scripts for newly introduced rabbitmq-upgradeMichael Klishin2019-09-222-0/+98
| | | | | | | | References #2106, rabbitmq/rabbitmq-cli#375.
* | Queue master balancing: log the "no-op" case at info levelMichael Klishin2019-09-221-1/+1
| | | | | | | | References #2106.
* | Merge pull request #2113 from Whitespirit0/patch-1Michael Klishin2019-09-191-2/+2
|\ \ | | | | | | Replace additional.config file by advanced.config
| * | Replace additional.config file by advanced.configWhitespirit02019-09-191-2/+2
|/ / | | | | The LDAP section refers to the additional.config file whereas the doc says it's commonly named advanced.config.
* | Merge branch ↵Michael Klishin2019-09-181-2/+4
|\ \ | |/ |/| | | 'vanseverk-issues/2085-Friendlier-behavior-when-configuration-setting-is-unknown-clearer-error-message'
| * WordingMichael Klishin2019-09-181-1/+2
| |
| * Added more helpful message in case the config file failed to generatevanseverk2019-09-181-2/+3
|/
* Fix queue type splitdcorbacho2019-09-171-1/+1
| | | | [#166480197]
* Merge pull request #2108 from rabbitmq/rebalance-all-queuesMichael Klishin2019-09-163-5/+25
|\ | | | | Return number of queues per type
| * Return number of queues per typedcorbacho2019-09-163-5/+25
| | | | | | | | | | | | * Pretty-formatter ready [#166480197]
* | sync_detection_SUITE: Wait for sync for 90 secondsJean-Sébastien Pédron2019-09-161-1/+1
|/ | | | | ... instead of 30 seconds. Hopefully this will increase the chance that eager_sync_SUITE passes.
* feature_flags_SUITE: Use ";" as plugin path separator on WindowsJean-Sébastien Pédron2019-09-161-1/+5
|
* feature_flags_SUITE: Bump timetrap from 10 to 15 minutesJean-Sébastien Pédron2019-09-161-1/+1
|
* dead_lettering_SUITE: Bump timetrap from 3 to 8 minutesJean-Sébastien Pédron2019-09-161-1/+1
|
* consumer_timeout_SUITE: Bump timetrap from 3 to 7 minutesJean-Sébastien Pédron2019-09-161-1/+1
|
* clustering_management_SUITE: Bump testcase timetrap to 15 minutesJean-Sébastien Pédron2019-09-161-1/+1
| | | | | The timeout to wait for a node starting was bumped from 1 to 3 minutes, leading to an increased duration for this testsuite.
* clustering_management_SUITE: Just wait for PID file content to changeJean-Sébastien Pédron2019-09-161-6/+11
| | | | | | Don't try to check if the referenced process is alive or not. It could be gone already and that's the job of rabbitmqtl(8): this testcase kind of reimplemented the wait command.
* clustering_management_SUITE: Account for the fact that the PID file is removedJean-Sébastien Pédron2019-09-161-5/+9
| | | | | | | ... when a node is stopped. Therefore, watch more frequently that PID file to increase the chance of seeing it.
* feature_flags_SUITE: Increase a timer:sleep/1 to help with timing issuesJean-Sébastien Pédron2019-09-161-1/+1
|
* Merge pull request #2106 from rabbitmq/rebalance-all-queuesKarl Nilsson2019-09-135-2/+341
|\ | | | | Rebalance all queues
| * Test rebalancedcorbacho2019-09-133-6/+120
| | | | | | | | [#166480197]
| * Refactor rebalance of mirrored and quorum queuesDiana Corbacho2019-09-134-212/+149
| | | | | | | | [#166480197]
| * Rebalance mirrored queuesDiana Corbacho2019-09-131-0/+137
| | | | | | | | [#166480197]
| * Rebalance quorum queuesDiana Corbacho2019-09-132-1/+152
|/ | | | [#166551605]
* test/feature_flags_SUITE_data/my_plugin: Convert symlinks to MakefilesJean-Sébastien Pédron2019-09-133-2/+4
| | | | | | | | | ... and those Makefiles include the previous symlink targets. This way, the test plugin is buildable on a system without Unix symlink support like Windows. (cherry picked from commit 85fb789de05f3b7daedf487e7a4221e69c8ef5f2)
* Update rabbitmq-components.mkkjnilsson2019-09-131-1/+1
|
* Merge pull request #2100 from tomyouyou/masterv3.8.0-rc.1Michael Klishin2019-09-071-9/+11
|\ | | | | force to flush segments when recovering a message with last non-CleanShutdown.
| * force to flush segments when recovering a message with last non-CleanShutdown. tomyouyou2019-09-071-9/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the broker shutdown before queue process call "rabbit_queue_index:flush", there might be only ?PUB and ack of a message in the queue's journal file. restart the broker, a crash would happen when recover_journal. to reproduce the issue by the following steps: 1. Disable flush in rabbit_queue_index, Just for reproducing the problem more easily. 2. delcare a durable queue and an exchange. [root@controller2 erlang]# date;python msg_test.py create_queue 192.168.1.66 'queue=q11;durable=true' Sat Sep 7 15:53:20 CST 2019 connent to 192.168.1.66 ok 2019-09-07 15:53:20.264 create_queue q11 2019-09-07 15:53:20.293 to close connection [root@controller2 erlang]# date;python msg_test.py create_exchange 192.168.1.66 'exchange=ex11;exchange_type=topic' Sat Sep 7 15:53:20 CST 2019 connent to 192.168.1.66 ok 2019-09-07 15:53:20.461 create_exchange ex11 topic 2019-09-07 15:53:20.463 to close connection [root@controller2 erlang]# date;python msg_test.py bind 192.168.1.66 'exchange=ex11;queue=q11;routing_key=exq11' Sat Sep 7 15:53:21 CST 2019 connent to 192.168.1.66 ok 2019-09-07 15:53:21.263 bind ex11 q11 r_key:exq11 2019-09-07 15:53:21.266 to close connection 3. publish a persistent message. [root@controller2 erlang]# date;python msg_test.py publish 192.168.1.66 'exchange=ex11;routing_key=exq11;msg="_unique_id:123";persistent=true;count=1' Sat Sep 7 15:53:34 CST 2019 connent to 192.168.1.66 ok 2019-09-07 15:53:34.642 publish ex11 r_key:exq11, 0 2019-09-07 15:53:35.643 to close connection 4. kill the broker. the system auto-restart the broker which will call recover_message with non-CleanShutdown. [root@controller2 erlang]# date;pkill -9 beam Sat Sep 7 15:54:15 CST 2019 5. create a consumer, attach it to the queue. It will receive and ack the last recovered message. [root@controller2 erlang]# date;python msg_test.py consume 192.168.1.66 'queue=q11;auto_ack=false' Sat Sep 7 15:55:47 CST 2019 connent to 192.168.1.66 ok 2019-09-07 15:55:47.529 [*] Waiting for messages from q11. To exit press CTRL+C 2019-09-07 15:55:47.529 [x] Received '_unique_id:0 aaaaaaa' ack:True delivery_tag:1 sleep:0 ^C2019-09-07 15:56:12.692 BaseException 2019-09-07 15:56:12.693 to close connection 6. now in the queue's journal file, there are only ?PUB and ack of the message. restart the broker, a crash should occur when calling recover_journal. [root@controller2 erlang]# date;systemctl restart rabbitmq-server Sat Sep 7 15:56:24 CST 2019 7. the crash information in the /var/log/rabbitmq/rabbit@controller2.log: ** Reason for termination == ** {{case_clause,{{true,<<10,5,11,69,10,165,64,237,79,106,53,20,96,22,129,137,0,0,0,0,0,0,0,0,0,0,0,113>>,<<131,104,6,100,0,13,98,97,115,105,99,95,109,101,115,115,97,103,101,104,4,100,0,8,114,101,115,111,117,114,99,101,109,0,0,0,1,47,100,0,8,101,120,99,104,97,110,103,101,109,0,0,0,4,101,120,49,49,108,0,0,0,1,109,0,0,0,5,101,120,113,49,49,106,104,7,100,0,7,99,111,110,116,101,110,116,97,60,100,0,4,110,111,110,101,109,0,0,0,3,16,0,2,100,0,25,114,97,98,98,105,116,95,102,114,97,109,105,110,103,95,97,109,113,112,95,48,95,57,95,49,108,0,0,0,1,109,0,0,0,113,95,117,110,105,113,117,101,95,105,100,58,48,32,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,106,104,4,100,0,14,99,111,110,116,101,110,116,95,116,114,97,99,101,100,100,0,5,102,97,108,115,101,104,3,100,0,9,117,110,100,101,102,105,110,101,100,100,0,9,117,110,100,101,102,105,110,101,100,100,0,9,117,110,100,101,102,105,110,101,100,110,6,0,178,202,182,10,109,1,109,0,0,0,16,10,5,11,69,10,165,64,237,79,106,53,20,96,22,129,137,100,0,4,116,114,117,101>>},no_del,no_ack}},[{rabbit_queue_index,action_to_entry,3,[{file,"src/rabbit_queue_index.erl"},{line,838}]},{rabbit_queue_index,add_to_journal,3,[{file,"src/rabbit_queue_index.erl"},{line,814}]},{rabbit_queue_index,add_to_journal,3,[{file,"src/rabbit_queue_index.erl"},{line,805}]},{rabbit_queue_index,parse_journal_entries,2,[{file,"src/rabbit_queue_index.erl"},{line,958}]},{rabbit_queue_index,recover_journal,1,[{file,"src/rabbit_queue_index.erl"},{line,932}]},{rabbit_queue_index,init_dirty,3,[{file,"src/rabbit_queue_index.erl"},{line,622}]},{rabbit_variable_queue,init,6,[{file,"src/rabbit_variable_queue.erl"},{line,570}]},{rabbit_priority_queue,init,3,[{file,"src/rabbit_priority_queue.erl"},{line,151}]}]}
* | Merge pull request #2096 from tomyouyou/masterMichael Klishin2019-09-061-4/+4
|\ \ | |/ | | call "add_to_journal" before "maybe_flush_pre_publish_cache" in pre_publish
| * call "add_to_journal" before "maybe_flush_pre_publish_cache"tomyouyou2019-09-041-4/+4
| | | | | | | | | | | | | | | | To reproduce the issue: 1. pre_publish a delivered message. 2. Put its SeqId into delivered_cache, and might call "flush_pre_publish_cache" and "flush_delivered_cache", then put its "del" data into the journal_entries of the corresponding segment. 3. Call add_to_journal and action_to_entry with a "?PUB" Action. 4. in action_to_entry, "array:get(RelSeq, JEntries)" will return {no_pub, del, no_ack}, but has none case for a "?PUB" Action, so an error will occur like "{{case_clause,{no_pub,del,no_ack}},[{rabbit_queue_index,action_to_entry,3..."
* | unit_inbroker_non_parallel_SUITE: Adapt ↵Jean-Sébastien Pédron2019-09-051-2/+6
| | | | | | | | | | | | `log_file_fails_to_initialise_during_startup` to Windows USe `C:\Windows` as the non-writable directory there.
* | Merge pull request #2097 from rabbitmq/rabbitmq-website-502Michael Klishin2019-09-051-0/+1
|\ \ | | | | | | Modify html docs to not use smart quotes
| * | Modify html docs to not use smart quotesLuke Bakken2019-09-041-0/+1
|/ / | | | | | | Fixes rabbitmqr/rabbitmq-website#502
* | unit_inbroker_non_parallel_SUITE: Support `disk_monitor_enable` testcase on ↵Jean-Sébastien Pédron2019-09-041-10/+13
| | | | | | | | | | | | Windows We simply add the output of `dir` to the testcase.
* | unit_inbroker_non_parallel_SUITE: Mark log files as writable before deleting ↵Jean-Sébastien Pédron2019-09-041-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | them On Unix, the system checks the permissions of the directory holding a file to determine if a file can be removed or not: if there is write permission on a directory, a file in this directory can be removed, even though the file itself might be read-only. On Windows however, a read-only file cannot be removed: trying to do so returns `EACCES`. Therefore, in the `log_management` testcase, after testing the behavior with read-only log files, we must mark them as writable again before we clean them up. Otherwise, the testcase fails on Windows.
* | unit_SUITE: Use `;` as the plugins path separator on WindowsJean-Sébastien Pédron2019-09-041-2/+7
| |