summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'stable'Jean-Sébastien Pédron2015-08-120-0/+0
|\
| * Add `ssl_compat` and `time_compat`Jean-Sébastien Pédron2015-08-122-0/+380
| | | | | | | | | | They are not meant to be used by the Core. Their goal is to simplify the development of plugins which must support RabbitMQ 3.5.x and 3.6.x+.
* | Merge branch 'rabbitmq-server-233'Jean-Sébastien Pédron2015-08-113-2/+8
|\ \
| * | erlang:phash2/1 returns a value in the range 0..Range-1Jean-Sébastien Pédron2015-08-111-1/+1
| | | | | | | | | | | | ... but lists:nth/2 takes a position in the range 1..Length.
| * | Avoid division by 0Jean-Sébastien Pédron2015-08-112-1/+7
| | | | | | | | | | | | | | | | | | | | | erlang:monotonic_time() does not strictly increase: two subsequent calls can return the same value. References #233.
* | | Merge branch 'stable'Jean-Sébastien Pédron2015-08-112-5/+7
|\ \ \ | | |/ | |/|
| * | Merge branch 'rabbitmq-server-234' into stableJean-Sébastien Pédron2015-08-111-4/+2
| |\ \
| | * | rabbitmq-server: Don't catch EXIT "signal"Jean-Sébastien Pédron2015-08-111-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The only reason for the script to terminate is that RabbitMQ exited. By trying to stop it again in the EXIT signal handler, we could stop a newer instance of RabbitMQ. This caused the testsuite to fail in an unexpected way. References #234.
| * | | make stop-node: Stop the node synchronouslyJean-Sébastien Pédron2015-08-111-1/+5
| | | | | | | | | | | | | | | | ... ie. wait for the process to actually exit.
* | | | Merge branch 'stable'Jean-Sébastien Pédron2015-08-101-28/+68
|\ \ \ \ | |/ / /
| * | | Merge pull request #258 from rabbitmq/rabbitmq-server-234Jean-Sébastien Pédron2015-08-101-28/+68
| |\ \ \ | | |/ / | | | | rabbitmq-server: Catch SIG{HUP,INT,TERM,TSTP} and exit gracefully
| | * | rabbitmq-server: Catch SIG{HUP,INT,TERM,TSTP} and exit gracefullyJean-Sébastien Pédron2015-08-101-28/+68
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | This is only done when RabbitMQ runs in the foreground and when the Erlang shell is disabled ($RABBITMQ_ALLOW_INPUT is unset). This should be useful to Docker where the service runs as PID 1. Fixes #234.
* | | Merge pull request #254 from rabbitmq/rabbitmq-server-233Michael Klishin2015-08-0925-112/+440
|\ \ \ | | |/ | |/| Support the new Time API in Erlang 18.0
| * | rabbit_misc: Remove now_ms/0 and now_to_ms/1Jean-Sébastien Pédron2015-08-051-12/+0
| | | | | | | | | | | | References #233.
| * | Replace os:timestamp() with os:system_time(milli_seconds)Jean-Sébastien Pédron2015-08-054-8/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It will require all consumers of eg. events to be updated. But this is a good occasion anyway to change the exposed timestamp format to something pushed by the new Time API. Comparisons and calculations are much simpler because the new format is a simple integer. The resolution is a millisecond, not a microsecond, because current consumers of these timestamps do calculations in milliseconds. References #233.
| * | GM: Convert the testsuite to use `time_compat`Jean-Sébastien Pédron2015-08-052-8/+13
| | | | | | | | | | | | References #233.
| * | rabbit_node_monitor: Rework `global` hang workaroundJean-Sébastien Pédron2015-08-051-11/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Up-to and including Erlang 17, `global` would use `erlang:now()` to tag messages in the process dictionary. In Erlang 18.0, it uses a unique integer, so we can't use this value to determine for how long messages are stuck in the dictionary. We now do two snapshots of the dictionary and compare them. References #233.
| * | pg2_fixed: Use erlang:system_time(micro_seconds) to pick a "random" nodeJean-Sébastien Pédron2015-08-051-2/+2
| | | | | | | | | | | | References #233.
| * | Use os:system_time() when the time is exposedJean-Sébastien Pédron2015-08-054-8/+8
| | | | | | | | | | | | | | | | | | ... or compared to time values from outside. References #233.
| * | Use os:timestamp() to get a non-unique timestampJean-Sébastien Pédron2015-08-052-2/+2
| | | | | | | | | | | | References #233.
| * | Use monotonic_time() to compute elapsed timeJean-Sébastien Pédron2015-08-0510-55/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... not `erlang:now()` (deprecated) or `os:timestamp()` (which could go backward). file_handle_cache: While here, change the LRU tree key from `erlang:now()` to a combination of the monotonic time and the handle reference (which was the value in the tree previously). This is required as the monotonic time doesn't increase strictly: two subsequent calls could return the same time, leading to non-unique key. We could use unique_integer([monotonic]) but it's a bit heavy weight just to keep a rough order of opened files. So now, files sharing the same age are arbitrary "sorted" by their reference. References #233.
| * | Use phash2() and the new Time API as a random seedJean-Sébastien Pédron2015-08-055-8/+14
| | | | | | | | | | | | References #233.
| * | Add `time_compat` moduleJean-Sébastien Pédron2015-08-051-0/+305
| | | | | | | | | | | | | | | | | | | | | | | | | | | This module, obtained from Erlang 18.0 ERTS examples, allows to use the new Time and Time Correction API introduced in Erlang 18.0 and fallback to the old API (the deprecated `erlang:now()`) when running on older Erlang. References #233.
* | | Merge branch 'stable'Jean-Sébastien Pédron2015-08-073-7/+10
|\ \ \ | | |/ | |/|
| * | Warn about exported variablesJean-Sébastien Pédron2015-08-073-7/+10
| | | | | | | | | | | | | | | | | | | | | Fix the reported warning in `credit_flow.erl` and `rabbit_table.erl`. This is the default setting in erlang.mk, so fixing this directly in RabbitMQ will ease future work on erlang.mk or Rebar.
* | | Merge pull request #256 from rabbitmq/rabbitmq-server-245Michael Klishin2015-08-061-0/+16
|\ \ \ | |_|/ |/| | Priority queue: Fix a crash when querying 'head_message_timestamp'
| * | Priority queue: Fix a crash when querying 'head_message_timestamp'Jean-Sébastien Pédron2015-08-061-0/+16
|/ / | | | | | | | | | | | | | | | | | | | | | | Before the fix, the code would consider it an integer which could be summed. It crashed if the head message had no timestamp at all (the underlying queue returned ''). Now, we have a special case, exactly like 'backing_queue_status'. The code first finds a priority with queued messages, then it queries the underlying queue for the 'head_message_timestamp'. Fixes #245.
* | Merge branch 'rabbitmq-server-250'Jean-Sébastien Pédron2015-08-052-4/+4
|\ \
| * | RPM/deb: Depend on Erlang R16B03Jean-Sébastien Pédron2015-08-052-4/+4
| | | | | | | | | | | | References #250.
* | | Merge branch 'stable'Jean-Sébastien Pédron2015-08-051-0/+9
|\ \ \ | | |/ | |/|
| * | Merge pull request #253 from rabbitmq/rabbitmq-server-251Jean-Sébastien Pédron2015-08-051-0/+9
| |\ \ | | | | | | | | Memory monitor: Log a warning if a 32-bit version of Erlang is used
| | * | Memory monitor: Log a warning if a 32-bit version of Erlang is usedJean-Sébastien Pédron2015-08-051-0/+9
| |/ / | | | | | | | | | Fixes #251.
* | | Merge branch 'rabbitmq-server-250'Jean-Sébastien Pédron2015-08-041-1/+1
|\ \ \ | | |/ | |/|
| * | Require Erlang R16B03, not R16B03-1Jean-Sébastien Pédron2015-08-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Erlang R16B03 is the version provided with Ubuntu 14.04 LTS and CentOS 7. This should avoid some pain to those users. However, we will highly recommend Erlang 17.0 for any serious TLS deployment. References #250.
* | | Merge pull request #252 from rabbitmq/rabbitmq-server-250Jean-Sébastien Pédron2015-08-042-8/+21
|\ \ \ | |/ / | | | Require Erlang R16B03-1
| * | Require Erlang R16B03-1Jean-Sébastien Pédron2015-08-042-8/+21
|/ / | | | | | | Fixes #250.
* | Merge branch 'rabbitmq-server-121'Michael Klishin2015-08-049-3/+384
|\ \
| * | Renames queue-master-location header to x-queue-master-locatorAyanda Dube2015-08-033-16/+16
| | | | | | | | | | | | | | | | | | Renames rabbit.queue_master_location config key to rabbit.queue_master_locator References #121
| * | Adds policy validation tests for queue master locationAyanda Dube2015-07-231-0/+16
| | | | | | | | | | | | References #121
| * | Updates coding styleAyanda Dube2015-07-171-2/+3
| | | | | | | | | | | | References #121
| * | Adds queue_master_locator class moduleAyanda Dube2015-07-151-1/+2
| | | | | | | | | | | | References #121
| * | Moves callback execution to one placeAyanda Dube2015-07-151-21/+26
| | | | | | | | | | | | | | | | | | Renames functions References #121
| * | Checks if module existsAyanda Dube2015-07-151-1/+5
| | | | | | | | | | | | References #121
| * | Takes queue name from #binding.destinationAyanda Dube2015-07-151-2/+5
| | | | | | | | | | | | References #121
| * | Removes temp variableAyanda Dube2015-07-151-3/+1
| | | | | | | | | | | | References #121
| * | Simplifies min-masters helper functionsAyanda Dube2015-07-131-18/+5
| | | | | | | | | | | | References #121
| * | Coding style and header updates, #121Ayanda Dube2015-07-096-73/+67
| | |
| * | Change min-masters calculationAyanda Dube2015-07-086-198/+219
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove validate_policy callback from queue location behaviour Create seperate queue location policy validation module Delete function, delay_ms/1. Unused Remove functions not used by other modules from export Update coding style and header to GoPivotal Inc standards References #121.
| * | Delete round robin callback. Not supported.Ayanda Dube2015-07-071-61/+0
| | | | | | | | | | | | References #121
| * | Initial commit #121Ayanda Dube2015-07-077-2/+414
| | |