summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Boot steps: Ensure boot step's module is loadedJean-Sébastien Pédron2015-08-281-0/+1
| | | | ... before checking if the function is exported.
* Merge stable into masterMichael Klishin2015-08-279-22/+196
|
* rabbitmq-script-wrapper: Use '=', not '==' with Bourne shell's testJean-Sébastien Pédron2015-08-241-1/+1
|
* Merge branch 'stable'Michael Klishin2015-08-191-1/+6
|\
| * Merge pull request #277 from nishan/stableMichael Klishin2015-08-191-1/+6
| |\ | | | | | | On Linux, use -r option for 'sed'. -E is not present in versions earlier versions of 'sed'
| | * On Linux, use -r option for 'sed'. -E is not present in versions earlier ↵Nishan Naseer2015-08-191-1/+6
| |/ | | | | | | versions of 'sed'
* | Merge branch 'stable'Alvaro Videla2015-08-181-2/+9
|\ \ | |/
| * Merge pull request #269 from erylee/stableAlvaro Videla2015-08-181-2/+9
| |\ | | | | | | issue #268 - gen_server2 can fail to dispatch messages sent by a process to itself
| | * issue #268 - gen_server2 can fail to dispatch messages sent by a process to ↵Feng Lee2015-08-161-2/+9
| |/ | | | | | | itself
* | Merge branch 'stable'Jean-Sébastien Pédron2015-08-131-1/+17
|\ \ | |/
| * Fix versions comparison to work on Mac OS X tooJean-Sébastien Pédron2015-08-131-1/+17
| | | | | | | | | | `sort -V` is indeed not portable. The new method is based on awk, hopefully a portable portion of the language!
* | Merge branch 'stable'Jean-Sébastien Pédron2015-08-131-7/+9
|\ \ | |/
| * Makefile: Resolve $(USE_PROPER_QC) only when neededJean-Sébastien Pédron2015-08-131-1/+1
| |
| * Makefile: Use `erl -version` to do ERTS version testsJean-Sébastien Pédron2015-08-131-6/+8
| | | | | | | | This is way faster than starting a full VM.
* | 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.