Commit Graph

139 Commits

Author SHA1 Message Date
Daniil Fedotov 1dfb335217 Bump erlang version requirement.
RabbitMQ depends on `ra`, which uses persistent_term, only available in 21.2
2019-02-12 10:26:38 -05:00
Jean-Sébastien Pédron 01ef2d29dd Make #amqqueue{} a private record
See the corresponding commit in rabbitmq-server for all the
explanations.

Now, all accesses to the #amqqueue{} record are made through the
`amqqueue` module (available in rabbitmq-server). The new type name is
`amqqueue:amqqueue()`.

The `amqqueue.hrl` header also provides some macros to help with pattern
matching and guard expressions.

To help with this, code and modules were moved from rabbitmq-common to
rabbitmq-server.

[#159298729]
2019-02-01 10:45:29 +01:00
Michael Klishin 0e8d48fc70 Bump (c) year in startup banner
References rabbitmq/rabbitmq-server#1830.
2019-01-14 01:33:03 +03:00
Michael Klishin e29005d617 Wording 2019-01-02 02:58:10 +03:00
Daniil Fedotov e7cce3b95d Reduce max message size to 512MB. 2018-12-27 19:24:57 +04:00
Loïc Hoguin bf9e786749 Remove a macro related to the removed truncate module 2018-12-11 17:04:30 +01:00
kjnilsson 0918ca4a22 remove created_at from amqqueue record 2018-10-19 16:33:38 +01:00
Diana Corbacho d21b745d08 New connection churn metrics table
Rate metrics for monitoring of high connection churn scenarios
[#160943831]
2018-10-17 12:30:13 +01:00
Jean-Sébastien Pédron 8e0d0a0a2e include/rabbit.hrl: Bump Erlang requirement to 21.0
With the quorum queue code, RabbitMQ probably still works with Erlang
20.x, but it is not thoroughly tested. Thus, bump the requirement to
Erlang 21.0.
2018-10-11 12:36:40 +02:00
Diana Corbacho 5ee1757551 Revert "Add quorum_leader to amqqueue record"
This reverts commit 7eff8a551426c03725f30db8516150c1c2c127b2.
2018-09-21 08:51:16 +01:00
Diana Corbacho 4cac30b209 Add quorum_leader to amqqueue record
[#154472407]
2018-09-21 08:51:16 +01:00
Diana Corbacho 3a5e9b99a1 Add quorum_nodes to amqqueue record
[#154472231]
2018-09-21 08:51:16 +01:00
Diana Corbacho 978d7747c0 Add created_at field to amqqueue record
[#155458625]
2018-09-21 08:51:16 +01:00
Daniil Fedotov f6d18f8247 Revert Revert "Extend amqqueue record to include queue type" 2018-09-21 08:51:16 +01:00
Michael Klishin 2894a9489a Introduce MAX_SUPPORTED_PRIORITY
Part of rabbitmq/rabbitmq-server#1590.

[#157380396]
2018-05-10 21:54:03 -05:00
Karl Nilsson 2977180988 Revert "Extend amqqueue record to include queue type" 2018-01-23 15:26:07 +00:00
Diana Corbacho 558285f849 Extend amqqueue record to include queue type
Defaults to 'classic'

[#154472130]
2018-01-22 14:11:37 +00:00
Michael Klishin 1bffc2d4a3 Bump (c) year 2018-01-15 14:33:35 +03:00
Loïc Hoguin 29da36157a Add a macro to identify processes in Looking Glass 2017-12-12 12:35:41 +01:00
Jean-Sébastien Pédron 123b30e508 include/rabbit.hrl: Bump Erlang requirement to 19.3 (ERTS 8.3)
[#152067396]
2017-10-23 12:47:27 +02:00
Michael Klishin 6938bcc4e7 Require Erlang/OTP 19.2 (erts 8.2)
Part of #1305.
[#149563549]
2017-07-26 17:53:07 +03:00
Michael Klishin 355b8b8327 Merge branch 'stable' 2017-07-11 03:42:16 +03:00
Gerhard Lazu 57a6476942 Move state record back into vm_memory_monitor, it's only used here
rabbitmq/rabbitmq-server#1285

[#148470947]
2017-07-10 18:30:46 +01:00
Gerhard Lazu 8874e551cc Default memory high watermark to 1.0 when using a higher value
Prior to this change, setting the vm_memory_high_watermark to a value
higher than 1 (inclusive), would default to 0.4. This is different from
the behaviour when setting an absolute value, namely defaulting to the
total memory available.

Extracted common memory-related macros & records so that they can be
shared by tests.

re rabbitmq/rabbitmq-server#1285

[finishes #148470947]
2017-07-10 15:10:01 +01:00
Jean-Sébastien Pédron 042aac29c6 rabbit_log: Move it from rabbitmq-server to rabbitmq-common
It obviously depends on a running broker, but some modules in
rabbitmq-common call it. This resolves a dependency of rabbitmq-common
on rabbitmq-server.

`master` branch only:
    Also move rabbit_log.hrl from rabbitmq-server to rabbitmq-common.

[#118490793]

(cherry picked from commit cf5271eec5)
2017-06-26 14:43:35 +02:00
Michael Klishin fbe900611e Merge branch 'stable' 2017-04-05 15:52:51 +03:00
Michael Klishin c7f972f23e (c) year 2017-04-05 15:52:35 +03:00
Diana Corbacho 4a0682dfd2 Add extra_dependencies on plugin record 2017-02-27 15:51:20 +00:00
Michael Klishin 23740d8a72 Adjust fallback credit disc bound value
4000 is not meaningfully different from 3000 but is closer
to the new IO_BATCH_SIZE value.

References rabbitmq/rabbitmq-server#1098.
2017-02-17 23:52:58 +03:00
Michael Klishin 5e2af6d415 Adjust fallback credit disc bound value
4000 is not meaningfully different from 3000 but is closer
to the new IO_BATCH_SIZE value.

References rabbitmq/rabbitmq-server#1098.
2017-02-17 22:25:09 +03:00
Michael Klishin 30400efca2 Merge branch 'stable'
Conflicts:
	src/rabbit_core_metrics.erl
2017-02-15 00:05:10 +03:00
Diana Corbacho 6d6ed78765 Add gen_server2 buffer length to core stats 2017-02-14 14:38:45 +00:00
Arnaud Cogoluègnes 7fc1e4f6a5 Merge branch 'master' into rabbitmq-server-1085
Conflicts:
	src/rabbit_auth_backend_internal.erl
2017-01-23 09:40:59 +01:00
Michael Klishin 39276e967a Define UNKNOWN_USER
For when we can't know what user performed an action,
e.g. there's no user that created the built-in exchanges.
2017-01-20 20:22:15 +03:00
Arnaud Cogoluègnes 0ffacf017d Add topic authorisation for consumption
Part of rabbitmq/rabbitmq-server#1085
2017-01-19 14:55:23 +01:00
Diana Corbacho 02f258590f Notify user who performed the action in all system events 2017-01-16 14:39:26 +00:00
Diana Corbacho d0996c46e1 Include options map in queue and exchange records 2017-01-15 20:30:43 +00:00
Arnaud Cogoluègnes 27f7256064 Rename name to exchange in topic_permission_key
References rabbitmq/rabbitmq-server#505
2017-01-03 11:59:44 +01:00
Arnaud Cogoluègnes 434fcbad62 Add check_topic_access/4 to rabbit_authz_backend
References rabbitmq/rabbitmq-server#505
2016-12-29 08:53:22 +01:00
Arnaud Cogoluègnes 108526f767 Add channel process cache for topic authorization
References rabbitmq/rabbitmq-server#505
2016-12-21 16:22:33 +01:00
Arnaud Cogoluègnes 47979ef8f0 Add topic check in internal authorization backend
References rabbitmq/rabbitmq-server#505
2016-12-21 11:56:50 +01:00
Arnaud Cogoluègnes 9fb8dbb861 Introduce topic authorisation
WIP

References rabbitmq/rabbitmq-server#505
2016-12-20 18:11:22 +01:00
Michael Klishin d444553cc4 Merge branch 'stable'
Conflicts:
	src/rabbit_common.app.src
2016-12-06 00:44:31 +03:00
Michael Klishin 84618920ff Use rabbit_misc:get_env/3
`application:get_env/3` is not available in Erlang/OTP R16B03.
2016-12-05 21:06:47 +03:00
Daniil Fedotov 93f268d185 Get worker and supervisor shutdown timeouts from environment variables 2016-12-01 12:47:18 +00:00
Michael Klishin 0f683955ce Merge branch 'stable'
Conflicts:
	src/rabbit_reader.erl
2016-12-01 14:12:34 +03:00
kjnilsson b237cea9ec Remove channel_consumer 2016-09-19 14:35:59 +01:00
Michael Klishin a3b2653b1e Merge branch 'master' into rabbitmq-server-501 2016-09-15 17:04:55 +03:00
kjnilsson 1ec2b931f1 core metrics: introduce channel_consumers to allow metric queries to map from a queue to a consumer/channel when the queue is hosted on a different node 2016-09-13 15:22:49 +01:00
Loïc Hoguin e0d2f62039 Save listener socket options in Mnesia
(cherry picked from commit b1037b14451bb2459de1471ff285dbcf19808463)
2016-09-13 12:52:50 +02:00
Gabriele Santomaggio 3efc3a95ec add policy_version to amqqueue 2016-09-13 08:42:28 +02:00
Daniil Fedotov 31fc9530b9 type field in tracked_connection record to track direct and network connections 2016-09-12 14:51:28 +01:00
Michael Klishin c99bf78cf0 Add a separate vhost field to amqqueue
So that a secondary index can be added on it.
2016-09-09 03:10:16 +03:00
Michael Klishin 481e16dbd7 Merge branch 'master' into rabbitmq-server-930 2016-08-31 03:29:52 +03:00
Diana Corbacho 046edbd814 Store node node metrics 2016-08-30 10:33:33 +01:00
Daniil Fedotov 54e1fc76eb operator policies data struscture 2016-08-25 17:07:57 +01:00
Diana Corbacho cb21e14415 Store queue and node metrics 2016-08-25 09:07:29 +01:00
Diana Corbacho 9d84fb6a91 Store consumer metrics 2016-08-11 16:18:23 +01:00
Diana Corbacho a466e57a22 Storage of raw metrics 2016-08-10 12:39:17 +01:00
Michael Klishin 7a74185288 Keep track of connections, introduce per-vhost limits
Part of rabbitmq/rabbitmq-server#500.

Squashed commit of the following:

commit 2f0a08dde4a027e0e9e768a36c4ee93807189809
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Thu Jul 21 03:20:07 2016 +0300

    Name is already a binary

commit 0678f00e6f1ee1c71a8bcb57d95205a13fb2d021
Merge: f16db88 e1905b5
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Thu Jul 21 03:06:02 2016 +0300

    Merge branch 'master' into rabbitmq-server-500

commit f16db88f3daa6eb82aed015f3a23279aa72aeb84
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Wed Jul 20 18:30:13 2016 +0300

    Missing file from earlier commit

commit f284cf96bbdee413199d5843015a8b30ca784962
Merge: 6998e6a 35c7a8d
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Wed Jul 20 18:29:57 2016 +0300

    Merge branch 'master' into rabbitmq-server-500

commit 6998e6a865bdf29ca9d294467d7b047c6499c94f
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Mon Jul 18 11:15:19 2016 +0300

    Move connection record to rabbit.hrl

    So that it can be used outside of rabbit_reader.

commit 1f1f6a1a71b8c6d84129734bb19109041e4cc1d7
Merge: d35bb6e ee2295a
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Thu Jul 14 15:26:03 2016 +0300

    Merge branch 'master' into rabbitmq-server-500

commit d35bb6ef590fd93935ef19ff48e63f028793be36
Merge: 26bff83 14219ef
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Thu Jul 7 13:45:17 2016 +0300

    Merge branch 'master' into rabbitmq-server-500

commit 26bff832f8824d5df8b9c2b705984f2956db5851
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Wed Jul 6 12:31:47 2016 +0300

    Connection re-registration after network split WIP

commit 9cc96f0253001db46cbff525f7bba80b400b6a6b
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Sun Jul 3 15:25:15 2016 +0300

    Move set_partition_handling_mode_globally/2 and set_partition_handling_mode/3 to broker helpers

commit 5997e06987e73573babe3b5bff234a5920da47ea
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Sun Jul 3 03:54:02 2016 +0300

    Move block_traffic_between/2, allow_traffic_between/2 from partition_SUITE

commit c9bb2d2a22c6d0d08051a183a7db0a3ab12cf622
Merge: 1395888 c7a192e
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Sun Jul 3 03:14:36 2016 +0300

    Merge branch 'master' into rabbitmq-server-500

commit 1395888dcaed3aa397755464aff904b6bd85735f
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Sun Jul 3 02:38:51 2016 +0300

    Move dist_proxy helpers from partitions_SUITE

commit af11e9e6cdc288e53e3fded642dfd2f9dccd31c2
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Sat Jul 2 22:27:39 2016 +0300

    Test helpers for managing permissions

commit e56b20c8dee9070153d5cb7c48c37331d200ac40
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Sat Jul 2 17:28:01 2016 +0300

    Missing exports

commit 7a458e16e7bd6776fa3cabdb9e23f8de7cbb2a35
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Sat Jul 2 17:26:07 2016 +0300

    Introduce rabbit_ct_broker_helpers:{add,delete}_vhost/2

commit 6bbcaa2a0698ba83e10833dd30e28aa5fbebd2c4
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Sat Jul 2 15:02:09 2016 +0300

    Export tracked_connection/0

commit 6381608e49b42423e9f6feccdcac624fe81bd982
Merge: c082ad9 fa95b43
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Sat Jul 2 02:44:05 2016 +0300

    Merge branch 'master' into rabbitmq-server-500

commit c082ad94847f5cb973f819d6d5a98b5fd029152e
Merge: 0ba62eb 80ebc45
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Wed Jun 29 14:26:53 2016 +0300

    Merge branch 'master' into rabbitmq-server-500

commit 0ba62eb0e1bf0f027179b9928f0d244682bc016c
Author: Michael Klishin <michael@clojurewerkz.org>
Date:   Thu Mar 31 01:53:36 2016 +0300

    Move new types from rabbitmq-server

commit d4a9ecac1e09ddad14ebc46da0682e0584bd919e
Merge: b78d3d2 8284e88
Author: Michael Klishin <michael@clojurewerkz.org>
Date:   Thu Mar 31 01:50:45 2016 +0300

    Merge branch 'master' into rabbitmq-server-500

commit b78d3d23d6b08fae0d108c4dc762a0f56e3a6560
Author: Michael Klishin <mklishin@pivotal.io>
Date:   Thu Feb 18 17:08:33 2016 +0300

    Enforce per-vhost connection limit

commit 7e34dcaf7e852eacc6b4cb06045f044d096cab41
Merge: c7f941d 3aff671
Author: Michael Klishin <michael@clojurewerkz.org>
Date:   Wed Feb 10 12:23:43 2016 +0300

    Merge branch 'master' into rabbitmq-server-500

commit c7f941d9b1f63abde695f59fe40536741fc7e4df
Merge: 827b854 4ed7cfb
Author: Michael Klishin <michael@clojurewerkz.org>
Date:   Fri Feb 5 23:48:31 2016 +0300

    Merge branch 'master' into rabbitmq-server-500

commit 827b854e33d8d567130ac6ba68cef444e18309b2
Merge: 9720d12 0ba4756
Author: Michael Klishin <michael@clojurewerkz.org>
Date:   Wed Feb 3 11:20:21 2016 +0300

    Merge branch 'master' into rabbitmq-server-500

commit 9720d12e3374a93440f22c161c26b5435d1dd74c
Author: Michael Klishin <michael@clojurewerkz.org>
Date:   Wed Feb 3 11:19:01 2016 +0300

    Track connection node and username

commit 73756460e041cf45150607bd0da61c53962149b4
Author: Michael Klishin <michael@clojurewerkz.org>
Date:   Tue Jan 19 18:14:28 2016 +0300

    Include connection name into connection_closed events

commit d1f96c48cd57194b6f78cfb4a83f0978f3786dfc
Author: Michael Klishin <michael@clojurewerkz.org>
Date:   Tue Jan 19 17:53:35 2016 +0300

    Add protocol to tracked_connection

commit 56db86a6a289d590116c4537e9e91da6825f914c
Author: Michael Klishin <michael@clojurewerkz.org>
Date:   Tue Jan 19 14:45:26 2016 +0300

    Introduce tracked_connection

commit 0f765dc6f89851359d819e6a1917a60a288d15cb
Author: Michael Klishin <michael@clojurewerkz.org>
Date:   Fri Jan 8 19:13:23 2016 +0300

    Change second vhost record field to be limits
2016-07-22 05:30:59 +03:00
Jean-Sébastien Pédron 414324a483 Only use new non-builtin types in master
We only support Erlang 18.3+. Therefore we can revert what was done in
4be8561b2a.

[#118562897]
2016-07-06 13:50:17 +02:00
Jean-Sébastien Pédron ee442486dd Merge branch 'stable' 2016-07-05 17:29:38 +02:00
Jean-Sébastien Pédron 4be8561b2a Fix build on Erlang R16B03 by adding macros for old builtin types
Those macros are added to the new `old_builtin_types.hrl` header. It
relies on a build-time flag set in `mk/rabbit-build.mk` if ERTS is
strictly older than 6.0 (ie. Erlang 17.0).

The list of wrapped builtin types may be incomplete.

The `compare_versions` GNU Make macro was moved from
`mk/rabbitmq-dist.mk` to `mk/rabbitmq-build.mk` because the former is
included after the latter.
2016-07-05 15:51:51 +02:00
Jean-Sébastien Pédron f7c1db90b4 Merge branch 'stable' 2016-06-29 11:11:27 +02:00
Jean-Sébastien Pédron 58c209a6d6 Use the new -spec format
The old format is removed in Erlang 19.0, leading to build errors.

Also, get rid of the `use_specs` macro and thus always define -spec() &
friends.

While here, unnify the style of -type and -spec.

References rabbitmq/rabbitmq-server#860.
[#118562897]
[#122335241]
2016-06-28 15:57:06 +02:00
Diana Corbacho f59624ac3b Include slave_pids_pending_shutdown on amqqueue record 2016-06-28 10:38:57 +01:00
Daniil Fedotov 15b37181dc Bounded OTP worker timeout 2016-06-17 01:28:29 +03:00
Daniil Fedotov 7bfd06bb4b Bounded OTP worker timeout 2016-06-16 13:14:13 +01:00
Gabriele Santomaggio af68ecef9c add policy_version to amqqueue 2016-05-27 12:27:40 +01:00
Daniil Fedotov ade5729a18 Bump minimal erlang version to 18.3 2016-05-12 10:32:39 +01:00
Michael Klishin afa10f5be3 Merge branch 'master' into rabbitmq-management-163 2016-04-10 04:14:20 +03:00
Michael Klishin 23b75ceb13 Trailing ws 2016-04-08 15:31:28 +03:00
Michael Klishin 6faf8dbc68 Update comments 2016-04-08 15:31:21 +03:00
Daniil Fedotov 0690acc571 Naming 2016-04-07 16:44:07 +01:00
Loïc Hoguin dbb6f522ac Save listener socket options in Mnesia 2016-04-05 16:31:59 +02:00
Daniil Fedotov 65ff7c4be5 Plugin version key for plugin record 2016-03-24 10:50:44 +00:00
Daniil Fedotov 04dacb23e9 rabbitmq_versions key for plugin 2016-03-24 10:50:44 +00:00
Diana Corbacho eb3b98812a Move rpc_call from rabbit/rabbit_cli to rabbit_misc 2016-02-25 15:26:19 +00:00
Ayanda Dube 095b5dc61b Adds CHANNEL_OPERATION_TIMEOUT macro.
References: rabbitmq/rabbitmq-server-248
2016-02-17 15:03:19 +00:00
Alvaro Videla f6dbe6895c documents record fields 2016-01-19 14:45:22 +01:00
Michael Klishin 813d8e0003 New constant 2016-01-10 01:38:15 +03:00
Michael Klishin b54bd04bfc (c) year 2016-01-06 19:45:37 +03:00
Michael Klishin 29c12b945e Minor doc improvements 2015-12-12 02:20:49 +03:00
Loïc Hoguin 390e92aa24 Switch to Ranch for connection handling 2015-11-17 15:37:01 +01:00
Jean-Sébastien Pédron 9172715a2d Update modules and headers from rabbitmq-server master branch 2015-10-05 17:32:57 +02:00
Jean-Sébastien Pédron f038cacf4f Import latest headers from rabbitmq-server's master branch 2015-09-01 10:46:58 +02:00
Jean-Sébastien Pédron c0c58ff213 Import changes from rabbitmq-server's master branch 2015-08-28 12:13:50 +02:00
Jean-Sébastien Pédron 09de0ee4ff Move headers from rabbitmq-server 2015-08-10 11:57:46 +02:00
Jean-Sébastien Pédron 575f9ab374 Initial import of rabbitmq-common 2015-06-22 12:11:44 +02:00