Commit Graph

2028 Commits

Author SHA1 Message Date
Michael Klishin e1e049ccd0 Use assertMatch from EUnit here 2019-11-21 22:19:52 +03:00
Grigory Starinkin 3b476b0a48 pass amqp parameters for direct channel to avoid sync call
to the connection process

performance optimisation
2019-11-20 11:43:01 +00:00
larrywax 8a1d41e21d don't check timerRef when handling timeout
this avoids a `no function clause matching` error that prevents connection restart
2019-10-11 12:12:06 +02:00
kjnilsson cda57b5872 Update rabbitmq-components.mk 2019-09-13 10:24:09 +01:00
kjnilsson 34caaa4f6f Update rabbitmq-components.mk 2019-09-04 10:30:46 +01:00
Jean-Sébastien Pédron 53568f3b35 Update erlang.mk 2019-08-29 20:44:29 +02:00
Arnaud Cogoluègnes dec254d52e Use credentials_obfuscation module
[#167070941]

References #123
2019-08-13 09:47:45 +02:00
Arnaud Cogoluègnes 3522722c42 Merge branch 'master' into rabbitmq-erlang-client-123-crypted-password-in-state 2019-08-12 14:00:52 +02:00
Michael Klishin d8f215f596 Update rabbitmq-components.mk 2019-08-11 01:47:43 +10:00
Jean-Sébastien Pédron a790b4fec8 Update erlang.mk 2019-08-02 09:53:10 +02:00
Michael Klishin dc13715d8c Update rabbitmq-components.mk 2019-08-01 17:13:04 +03:00
Arnaud Cogoluègnes f7f0112e2b Encrypt password in state
And decrypt it only when needed, to avoid logging the password in clear.
This is currently based on a simple obfuscation module in
rabbitmq-common.

[#167070941]

References #123
2019-07-29 16:06:03 +02:00
Arnaud Cogoluègnes d7b1b1bb07 Update rabbitmq-components.mk 2019-07-09 16:05:44 +02:00
Michael Klishin 2d229165dc Merge branch 'master' into oauth2-credential-expiration-support 2019-07-01 16:48:03 +02:00
Michael Klishin cdd616ad0d Introduce amqp_connection:update_secret/3
Part of OAuth 2 support. Allows clients to provide a refreshed access
token without closing and re-opening the connection.
2019-06-28 18:37:54 +02:00
Jean-Sébastien Pédron 4807230d45 Update rabbitmq-components.mk 2019-06-28 16:05:21 +02:00
Jean-Sébastien Pédron 7ca1de55e1 Update erlang.mk 2019-06-28 16:01:22 +02:00
Gerhard Lazu c509681b6a Update rabbitmq-components.mk 2019-06-03 02:23:28 +01:00
Jean-Sébastien Pédron 1fcc47589f Update rabbitmq-components.mk 2019-05-17 15:17:10 +02:00
Michael Klishin a6f2967c90 Update rabbitmq-components.mk 2019-05-17 08:36:12 +03:00
Michael Klishin fa09103095 Update rabbitmq-components.mk 2019-05-16 23:22:38 +03:00
Michael Klishin 609b158a9b Update rabbitmq-components.mk 2019-05-14 11:50:29 +03:00
Michael Klishin f8f652bf12 Update rabbitmq-components.mk 2019-05-13 16:40:20 +03:00
Gerhard Lazu dd68da393a Update rabbitmq-components.mk 2019-05-01 13:18:03 +01:00
Luke Bakken 7249dd8a65 Update rabbitmq-components.mk 2019-04-30 16:20:50 -07:00
Jean-Sébastien Pédron 08f045477f Update rabbitmq-components.mk 2019-04-30 14:47:22 +02:00
Daniil Fedotov afbe1723af Move rabbit_queue_collector to rabbit_common repo.
Collector is used by a connection supervisor, which may be on
the client side for direct connections.

Addresses #91.
Depends on changes in rabbitmq-server and rabbitmq-common
2019-04-23 16:42:07 -04:00
Gerhard Lazu 77d6a3a995 Update rabbitmq-components.mk 2019-04-22 21:54:55 +01:00
Daniil Fedotov c962727554 Increase wait timeout in tests to avoid false positives. 2019-04-11 15:07:59 -04:00
Spring Operator 27888c7189 URL Cleanup
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# HTTP URLs that Could Not Be Fixed
These URLs were unable to be fixed. Please review them to see if they can be manually resolved.

* http://blog.listincomprehension.com/search/label/procket (200) with 1 occurrences could not be migrated:
   ([https](https://blog.listincomprehension.com/search/label/procket) result ClosedChannelException).
* http://dozzie.jarowit.net/trac/wiki/TOML (200) with 1 occurrences could not be migrated:
   ([https](https://dozzie.jarowit.net/trac/wiki/TOML) result SSLHandshakeException).
* http://dozzie.jarowit.net/trac/wiki/subproc (200) with 1 occurrences could not be migrated:
   ([https](https://dozzie.jarowit.net/trac/wiki/subproc) result SSLHandshakeException).
* http://e2project.org (200) with 1 occurrences could not be migrated:
   ([https](https://e2project.org) result AnnotatedConnectException).
* http://erlang.org/pipermail/erlang-bugs/2012-June/002933.html (200) with 1 occurrences could not be migrated:
   ([https](https://erlang.org/pipermail/erlang-bugs/2012-June/002933.html) result ConnectTimeoutException).
* http://nitrogenproject.com/ (200) with 2 occurrences could not be migrated:
   ([https](https://nitrogenproject.com/) result ConnectTimeoutException).
* http://proper.softlab.ntua.gr (200) with 1 occurrences could not be migrated:
   ([https](https://proper.softlab.ntua.gr) result SSLHandshakeException).
* http://yaws.hyber.org (200) with 1 occurrences could not be migrated:
   ([https](https://yaws.hyber.org) result AnnotatedConnectException).
* http://choven.ca (503) with 1 occurrences could not be migrated:
   ([https](https://choven.ca) result ConnectTimeoutException).

# Fixed URLs

## Fixed But Review Recommended
These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.

* http://fixprotocol.org/ (301) with 1 occurrences migrated to:
  https://fixtrading.org ([https](https://fixprotocol.org/) result SSLHandshakeException).
* http://erldb.org (UnknownHostException) with 1 occurrences migrated to:
  https://erldb.org ([https](https://erldb.org) result UnknownHostException).

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* http://cloudi.org/ with 27 occurrences migrated to:
  https://cloudi.org/ ([https](https://cloudi.org/) result 200).
* http://erlware.org/ with 1 occurrences migrated to:
  https://erlware.org/ ([https](https://erlware.org/) result 200).
* http://inaka.github.io/cowboy-trails/ with 1 occurrences migrated to:
  https://inaka.github.io/cowboy-trails/ ([https](https://inaka.github.io/cowboy-trails/) result 200).
* http://ninenines.eu with 6 occurrences migrated to:
  https://ninenines.eu ([https](https://ninenines.eu) result 200).
* http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html with 1 occurrences migrated to:
  https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html ([https](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) result 200).
* http://tools.ietf.org/html/rfc3986 with 1 occurrences migrated to:
  https://tools.ietf.org/html/rfc3986 ([https](https://tools.ietf.org/html/rfc3986) result 200).
* http://www.actordb.com/ with 2 occurrences migrated to:
  https://www.actordb.com/ ([https](https://www.actordb.com/) result 200).
* http://www.cs.kent.ac.uk/projects/wrangler/Home.html with 1 occurrences migrated to:
  https://www.cs.kent.ac.uk/projects/wrangler/Home.html ([https](https://www.cs.kent.ac.uk/projects/wrangler/Home.html) result 200).
* http://www.erlang.org/ with 1 occurrences migrated to:
  https://www.erlang.org/ ([https](https://www.erlang.org/) result 200).
* http://www.rabbitmq.com with 1 occurrences migrated to:
  https://www.rabbitmq.com ([https](https://www.rabbitmq.com) result 200).
* http://www.rabbitmq.com/ with 2 occurrences migrated to:
  https://www.rabbitmq.com/ ([https](https://www.rabbitmq.com/) result 200).
* http://www.rabbitmq.com/build-erlang-client.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/build-erlang-client.html ([https](https://www.rabbitmq.com/build-erlang-client.html) result 200).
* http://www.rabbitmq.com/erlang-client-user-guide.html with 2 occurrences migrated to:
  https://www.rabbitmq.com/erlang-client-user-guide.html ([https](https://www.rabbitmq.com/erlang-client-user-guide.html) result 200).
* http://www.rabbitmq.com/protocol.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/protocol.html ([https](https://www.rabbitmq.com/protocol.html) result 200).
* http://www.rebar3.org with 1 occurrences migrated to:
  https://www.rebar3.org ([https](https://www.rebar3.org) result 200).
* http://contributor-covenant.org with 1 occurrences migrated to:
  https://contributor-covenant.org ([https](https://contributor-covenant.org) result 301).
* http://contributor-covenant.org/version/1/3/0/ with 1 occurrences migrated to:
  https://contributor-covenant.org/version/1/3/0/ ([https](https://contributor-covenant.org/version/1/3/0/) result 301).
* http://inaka.github.com/apns4erl with 1 occurrences migrated to:
  https://inaka.github.com/apns4erl ([https](https://inaka.github.com/apns4erl) result 301).
* http://inaka.github.com/edis/ with 1 occurrences migrated to:
  https://inaka.github.com/edis/ ([https](https://inaka.github.com/edis/) result 301).
* http://lasp-lang.org/ with 1 occurrences migrated to:
  https://lasp-lang.org/ ([https](https://lasp-lang.org/) result 301).
* http://saleyn.github.com/erlexec with 1 occurrences migrated to:
  https://saleyn.github.com/erlexec ([https](https://saleyn.github.com/erlexec) result 301).
* http://www.erlang.org/doc/man/gen_tcp.html with 1 occurrences migrated to:
  https://www.erlang.org/doc/man/gen_tcp.html ([https](https://www.erlang.org/doc/man/gen_tcp.html) result 301).
* http://www.erlang.org/doc/man/inet.html with 1 occurrences migrated to:
  https://www.erlang.org/doc/man/inet.html ([https](https://www.erlang.org/doc/man/inet.html) result 301).
* http://www.mozilla.org/MPL/ with 27 occurrences migrated to:
  https://www.mozilla.org/MPL/ ([https](https://www.mozilla.org/MPL/) result 301).
* http://zhongwencool.github.io/observer_cli with 1 occurrences migrated to:
  https://zhongwencool.github.io/observer_cli ([https](https://zhongwencool.github.io/observer_cli) result 301).
2019-03-20 03:14:58 -05:00
Michael Klishin d11a1a11d5 Travis: use Erlang 21.3, Elixir 1.8.1 2019-03-20 10:33:10 +03:00
Michael Klishin e7127b5bea Update rabbitmq-components.mk 2019-03-15 05:32:40 +03:00
Michael Klishin f30d26317d Update rabbitmq-components.mk 2019-03-15 05:05:32 +03:00
Josh Soref 5cebc94e48 spelling: various 2019-02-12 15:25:31 -05:00
Josh Soref 8b98b171ee spelling: protocol 2019-02-12 15:20:05 -05:00
Josh Soref 742f733131 spelling: macro 2019-02-12 15:08:22 -05:00
Josh Soref 59919feb51 spelling: license 2019-02-12 15:08:05 -05:00
Josh Soref 753679589b spelling: javascript 2019-02-12 15:06:56 -05:00
Josh Soref 1b73606e80 spelling: immediately 2019-02-12 15:06:09 -05:00
Josh Soref c1c728d773 spelling: heartbeat 2019-02-12 15:05:12 -05:00
Josh Soref 5ff5a9fa0d spelling: existing 2019-02-12 15:00:36 -05:00
Josh Soref b33948c0e8 spelling: exercise 2019-02-12 15:00:28 -05:00
Josh Soref 579cd05b68 spelling: abstract 2019-02-12 14:53:33 -05:00
Michael Klishin 9db072a0a9 Ignore PLT files 2019-02-07 19:37:47 +03:00
Michael Klishin f0a3a86f7a Merge branch 'master' into fix-dialyzer 2019-02-07 19:14:09 +03:00
Jean-Sébastien Pédron 56c23dc28f system_SUITE: Compare both IPv4 and IPv6 in close_remote_socket()
The default network interface used and how IPv6 is managed is very
system and configuration dependent. So here, when we look up the socket,
we use both IPv4 and IPv6.
2019-02-04 12:05:15 +01:00
Loïc Hoguin c2c3a046f2 Fix Dialyzer warnings 2019-01-22 14:31:46 +01:00
Michael Klishin c2971eef32 An attempt to make request/reply tests more stable on Concourse 2019-01-20 07:51:25 +03:00
Michael Klishin ad1b3921ac Merge pull request #114 from rabbitmq/no-async-recv
Use {active,once} instead of async_recv
2019-01-16 05:16:45 +03:00
Michael Klishin 80d94832e9 Travis: use Erlang 21.2 since 21.2.2 is not available 2019-01-16 04:41:27 +03:00
Loïc Hoguin d76750437b Use {active,once} instead of async_recv
A test had to be changed because closing the socket locally
does not trigger the condition we expect. It happened to work
before because async_recv is using a low level interface but
it wasn't really testing the right thing.
2019-01-15 14:37:03 +01:00
Michael Klishin b72cb3ca30 .travis.yml: sync Erlang and Elixir versions, require Erlang/OTP 21.2 2019-01-13 05:49:54 +03:00
Luke Bakken 3392a497a1 Update rabbitmq-components.mk 2019-01-09 12:54:48 -08:00
Luke Bakken 0c2ea091a2 Update rabbitmq-components.mk 2019-01-08 11:58:21 -08:00
Jean-Sébastien Pédron 638a8bc7f3 Travis CI: Update config from rabbitmq-common 2019-01-08 12:47:51 +01:00
Jean-Sébastien Pédron 6a6983bbc3 Travis CI: Update config from rabbitmq-common 2019-01-08 09:07:43 +01:00
Jean-Sébastien Pédron 6e5519559c Makefile: Remove the Hex.pm `maintainers` field from .app
It is now deprecated by Hex.pm.
2019-01-08 09:07:06 +01:00
Michael Klishin 26d4bf3d27 Update rabbitmq-components.mk 2018-12-06 18:28:33 +03:00
Michael Klishin d9f1c99a23 Update rabbitmq-components.mk 2018-12-06 00:21:06 +03:00
Jean-Sébastien Pédron 761a7e62d5 Update rabbitmq-components.mk 2018-11-30 14:56:41 +01:00
Jean-Sébastien Pédron fdf0985f50 Update rabbitmq-components.mk 2018-11-22 09:19:26 +01:00
kjnilsson bd074d7ef3 Update rabbitmq-components.mk 2018-10-29 12:43:10 +00:00
kjnilsson 0818e022d7 Handle basic.credit_drained frame
This frame is very specific to what the AMQP 1.0 plugin requires to work
and was emitted but not handled correctly. This implementation simply
handles the frame and forwards it on to the consuming process.

[#161256187]
2018-10-25 09:06:27 +01:00
Jean-Sébastien Pédron 7c5dadc93c Update rabbitmq-components.mk 2018-09-19 10:38:07 +02:00
Jean-Sébastien Pédron 37f3ead86a Update rabbitmq-components.mk 2018-09-11 14:22:20 +02:00
Michael Klishin 054b811252 Merge pull request #108 from rabbitmq/rabbitmq-erlang-client-107
AMQP(S) URI that specifies port without host should be an error
2018-08-09 18:00:18 +02:00
Jean-Sébastien Pédron 77a4e9e6a4 Update rabbitmq-components.mk 2018-08-09 17:44:06 +02:00
Luke Bakken dcf5637615 AMQP(S) URI that specifies port without host is an error
Fixes #107
2018-08-09 08:29:35 -07:00
Jean-Sébastien Pédron 10841b5954 Update rabbitmq-components.mk 2018-08-09 12:16:53 +02:00
Jean-Sébastien Pédron 67e22ebdc4 system_SUITE: Remove unused variable in init_per_testcase() 2018-06-07 12:13:14 +02:00
Jean-Sébastien Pédron 32451438d6 system_SUITE: Accept Erlang 21 stacktrace in channel_death()
[#157964874]
2018-06-07 12:13:10 +02:00
Jean-Sébastien Pédron 5e26aafeab Update rabbitmq-components.mk 2018-06-07 11:31:28 +02:00
Michael Klishin 3e36da8e6a Use 2047 instead of 2048
Since channel 0 exists on every connection for negotiation and
error communication.
2018-05-09 12:40:17 -05:00
Michael Klishin d06c845f49 Change channel_max default to 2048
Part of rabbitmq/rabbitmq-server#1593.
2018-05-09 10:05:46 -05:00
Jean-Sébastien Pédron 02d948d237 Update erlang.mk 2018-04-11 10:52:10 +02:00
Jean-Sébastien Pédron a1f222e8c9 Update rabbitmq-components.mk 2018-04-11 10:51:13 +02:00
Jean-Sébastien Pédron 38cefc3a38 Update rabbitmq-components.mk 2018-04-11 10:09:56 +02:00
Jean-Sébastien Pédron 7b7a217126 Travis CI: Update config from rabbitmq-common 2018-04-10 12:50:13 +02:00
Jean-Sébastien Pédron 113715b21c Update erlang.mk 2018-03-02 19:02:23 +01:00
Jean-Sébastien Pédron 3f44a92da9 Update rabbitmq-components.mk 2018-01-30 15:23:22 +01:00
Luke Bakken 5e0f07ba25 Update rabbitmq-components.mk 2018-01-29 16:22:06 -08:00
Jean-Sébastien Pédron c3b33bfeb3 Merge branch 'take-hostname-from-server-test-certificate' 2018-01-24 17:42:32 +01:00
Jean-Sébastien Pédron 5c984147bf system_SUITE: Take SNI hostname from server's certificate
The goal is to be consistent between the `Makefile` used to generate the
certificates and the Erlang code.

For instance, on some systems, the certificates were generated with a
short hostname while `inet:gethostname()`  could return an FQDN.
2018-01-24 17:39:11 +01:00
Jean-Sébastien Pédron 94b450d7d7 Update rabbitmq-components.mk 2018-01-23 17:21:15 +01:00
Jean-Sébastien Pédron 250d6da88c Update rabbitmq-components.mk 2018-01-23 15:31:05 +01:00
Jean-Sébastien Pédron ab0340d88a Update rabbitmq-components.mk 2018-01-23 12:50:19 +01:00
Diana Corbacho 9581c252cc Update rabbitmq-components.mk 2018-01-22 22:13:15 +00:00
Diana Corbacho f2738dac6a Update rabbitmq-components.mk 2018-01-22 21:53:59 +00:00
Luke Bakken 832c0e6195 Port fb82f5b8 to v3.6.x
Erlang 20.2 checks CN value in a server certificate by default, so provide the hostname in the TLS connection options

Ports parts of fb82f5b8f4a3ef56e5672592893199f00afb5741 from the v3.7.x branch

[152879230]
2018-01-03 08:02:22 -08:00
Luke Bakken b845a1e054 Merge branch 'rabbitmq-erlang-client-153560538' into rabbitmq-erlang-client-153560538-master 2017-12-15 11:14:52 -08:00
Luke Bakken 66bda6647f Only log a warning if the user has not set verify 2017-12-15 11:13:14 -08:00
Jean-Sébastien Pédron bc5cec15cb Travis CI: Update config from rabbitmq-common 2017-12-15 15:08:26 +01:00
Jean-Sébastien Pédron e3d588ec7f Travis CI: Update config from rabbitmq-common 2017-12-15 14:45:28 +01:00
Jean-Sébastien Pédron b16eeb91c2 Travis CI: Update config from rabbitmq-common 2017-12-15 08:44:26 +01:00
Jean-Sébastien Pédron d8fea197c6 Update rabbitmq-components.mk 2017-12-14 14:38:42 +01:00
Luke Bakken 3fea5a86b7 Ensure that verify_fun and server_name_indication are added to .config params, too
Fix issue with module for verify_fun

Fix bug in function clause

Fix test errors in OTP 20 due to empty tuple in list

Do not enable server_name_indication by default, nor verify_peer
2017-12-11 09:36:26 -08:00
Luke Bakken ab642a390f [152879230]
Add failing tests
Tests pass
Enable SNI in SSL test
Add server_name_indication when host is a hostname
Make verify_peer the default for amqps connections, requiring the user to opt-out
2017-12-05 11:09:03 -08:00
Jean-Sébastien Pédron 447dfb96f1 Update rabbitmq-components.mk 2017-12-01 17:11:22 +01:00
Jean-Sébastien Pédron 009c243286 Update rabbitmq-components.mk 2017-12-01 15:16:03 +01:00
Jean-Sébastien Pédron 95d996880d Update rabbitmq-components.mk 2017-11-28 14:00:28 +01:00
Jean-Sébastien Pédron 41a0617764 Update rabbitmq-components.mk 2017-11-28 13:06:32 +01:00
Jean-Sébastien Pédron 5ab6f2d6f2 Update rabbitmq-components.mk
[ci skip]
2017-11-28 12:59:42 +01:00
Jean-Sébastien Pédron 30bac7cf73 Update rabbitmq-components.mk 2017-11-28 12:47:03 +01:00
Jean-Sébastien Pédron 3bc9715aea Merge branch 'stable' 2017-11-06 19:23:29 +01:00
Jean-Sébastien Pédron ced27c2770 Travis CI: Update config from rabbitmq-common 2017-11-06 19:22:46 +01:00
Jean-Sébastien Pédron ef6b216190 Travis CI: Update config from rabbitmq-common
The `.travis.sh` accompanying shell script is not needed anymore.

[#152509619]
2017-11-03 17:57:32 +01:00
Jean-Sébastien Pédron c3445716c3 Merge branch 'stable' 2017-11-03 17:57:19 +01:00
Jean-Sébastien Pédron 230da13d16 system_SUITE: EADDRNOTAVAIL can be returned when IPv6 is not configured
... in addition to ENETUNREACH. This happens on Travis CI VMs for
instance.

[#152509619]
2017-11-03 11:14:55 +01:00
Jean-Sébastien Pédron 388a27b682 Travis CI: Import .travis.yml from rabbitmq-common
[#152509619]
2017-11-02 18:08:15 +01:00
Jean-Sébastien Pédron aeea791bf1 erlang.mk: Disable `proper` plugin
[#152509619]
2017-11-02 18:07:58 +01:00
Jean-Sébastien Pédron b6a9e41172 Merge branch 'stable' 2017-10-13 14:58:40 +02:00
Jean-Sébastien Pédron 6f894a6624 Update rabbitmq-components.mk 2017-10-13 14:33:01 +02:00
Jean-Sébastien Pédron 1ca8e8d793 Update rabbitmq-components.mk 2017-10-13 13:11:37 +02:00
Jean-Sébastien Pédron 700b4fa5d7 Update rabbitmq-components.mk 2017-10-13 12:15:37 +02:00
Michael Klishin 83330fbafa Merge branch 'stable'
Conflicts:
	src/amqp_connection.erl
2017-10-12 18:40:39 +03:00
Luke Bakken 24479be3a0 Since apps have deps, we should be using ensure_all_started 2017-10-06 10:19:14 -07:00
Michael Klishin 4d6d4ca9c5 Update rabbitmq-components.mk 2017-09-13 17:53:59 -04:00
Michael Klishin 0873b9d94a Update rabbitmq-components.mk 2017-09-13 17:45:20 -04:00
Michael Klishin 37c8d4e815 Update rabbitmq-components.mk 2017-09-12 19:52:52 -04:00
Michael Klishin cf6f7c7139 Update rabbitmq-components.mk 2017-09-12 12:41:41 -04:00
Daniil Fedotov c4b4b61d15 Merge branch 'stable' 2017-08-30 19:32:17 +01:00
Daniil Fedotov 9c227520df Update erlang.mk 2017-08-30 18:54:33 +01:00
Michael Klishin c9480c81c1 Merge branch 'stable'
Conflicts:
	rabbitmq-components.mk
2017-07-27 23:40:00 +03:00
Jean-Sébastien Pédron 13ff71e411 amqp_network_connection: Expect the socket_closed just after `Connection.Close`
... from the server.

This is fine because the server might not want to wait for all clients
to answer with `Connection.Close-Ok` and prefer to close the TCP
connection immediately instead.

Without this, the connection process exits with
`socket_closed_unexpectedly`.

This is a minor issue, but it was discovered while tracking the problem
fixed in commit b35dc5e74686a928f67cbd7f2611e5dd1e43ac2d. With those two
fixes, a server-initiated connection close is handled more gracefully.

[#149584741]
2017-07-27 18:28:23 +02:00
Jean-Sébastien Pédron b3302edaa4 amqp_channel_sup_sup: Set `amqp_channel_sup` restart strategy to `infinity`
With the previous strategy of `brutal_kill` meant that channel processes
(and all process under the `amqp_channel_sup` supervision tree) would be
killed when a connection was closed and the connection process exited
before channel processes.

The `infinity` restart strategy is what is recommended by the Erlang
documentation for supervisors and is the strategy used by all other
supervisors in this project.

For instance, this issue caused federation links to crash when the
remote server closed the connection. We could see this kind of errors
in the rabbitmq-federation `exchange_SUITE:restart_upstream` testcase:

    ** Generic server <0.768.0> terminating
    ** Last message in was {'DOWN',#Ref<0.0.2.2678>,process,<0.777.0>,killed}
    ** When Server state == {state,
                             ...,
                             <0.771.0>,<0.777.0>,
                             ...}
    ** Reason for termination ==
    ** {downstream_channel_down,killed}

(`<0.777.0>` is the channel process which was killed)

[#149584741]
2017-07-27 18:27:58 +02:00
Michael Klishin fc2c9b1aa2 Erlang/OTP 19.2 is now the minimum supported version.
Part of rabbitmq/rabbitmq-server#1305.

[#149563549]
2017-07-27 11:15:36 +02:00
Michael Klishin 7665c24974 Update rabbitmq-components.mk 2017-07-26 03:48:11 +03:00
Michael Klishin f5decc2b1c Update rabbitmq-components.mk 2017-07-26 02:26:57 +03:00
Jean-Sébastien Pédron b0f24916f8 Merge branch 'stable' 2017-06-26 18:25:46 +02:00
Luke Bakken 19fbb09413 Small changes to Travis CI build
Use before_cache to make it clear why kiex_cleanup is called.
No sense in exporting PATH twice.
2017-06-23 13:13:23 -07:00
Luke Bakken 99d198b8ce Ensure ensure_kiex is called 2017-06-22 13:45:43 -07:00
Luke Bakken 32cab0509b rewrite shell script to RMQ team standard 2017-06-22 11:54:49 -07:00
Luke Bakken 7fc64ed3ad Try to fix enotsup error by using latest kiex
remove command that expects input

Add CircleCI configuration

Build and cache OTP 20 in Travis CI

increase WAIT for Travis

Build GNU make 4.2.1 too

Install kerl, change language to generic

Add build matrix

remove circleci, add two OTP versions
2017-06-22 08:07:22 -07:00
Luke Bakken 945c098f49 fix Travis CI build 2017-06-19 09:12:14 -07:00
Luke Bakken 2bf3384d90 Add unit test for topic permissions map 2017-06-19 08:48:11 -07:00
Michael Klishin 1905e30e67 Bump call timeout to 60s
To match default server heartbeat timeout.

While at it, increase initial connection timeout to 60s
to match (heartbeat timeout doesn't matter here specifically but
related in general).
2017-06-15 20:13:03 +03:00
kjnilsson c6e5a10035 Replace infinite timeouts with sensible defaults.
Change gen_server:call timeouts to use a configurable
default that is cached inside each process' process dictionary.
Also make supervisor shutdown timeouts use
the SUPERVISOR_WAIT value.

[#147178169]
2017-06-15 15:46:21 +01:00
Jean-Sébastien Pédron 85c8499a42 Use the new rabbit_*_common modules in rabbitmq-common
They were created in order to move their associated rabbit_* module to
rabbitmq-server to solve a dependency of rabbitmq-common on
rabbitmq-server

[#118490793]
2017-06-13 15:32:24 +02:00
Michael Klishin af13d840e8 Update rabbitmq-components.mk 2017-06-12 20:11:39 +03:00
Michael Klishin 3f000d5b07 Update rabbitmq-components.mk 2017-06-12 18:35:32 +03:00
Michael Klishin 2b492aba4c Match on function head per @Ayanda-D's advice 2017-06-12 01:11:43 +03:00
Michael Klishin c28c5ddbff Don't fail with badrecord when adapter_info is undefined
E.g. when connection failed because vhost access wasn't granted.

Fixes #83.
2017-06-11 01:47:51 +03:00
Michael Klishin ee01292540 Merge branch 'stable' 2017-06-02 18:14:58 +03:00
Michael Klishin 2c72623c7b Update rabbitmq-components.mk 2017-06-02 17:51:19 +03:00
Michael Klishin da61d21f3b Update rabbitmq-components.mk 2017-06-02 00:43:13 +03:00
Michael Klishin 2975297981 Update rabbitmq-components.mk 2017-06-01 18:01:25 +03:00
Jean-Sébastien Pédron a6c679271b Merge branch 'stable' 2017-05-16 17:54:19 +02:00
Jean-Sébastien Pédron cba8d60c26 Makefile: Load the new `rabbitmq-early-test.mk` early-stage plugin
See the corresponding commit in rabbitmq-common for an explanation.

[#144697185]
2017-05-16 17:01:51 +02:00
Jean-Sébastien Pédron 20fb0705b6 Update erlang.mk 2017-05-16 16:57:38 +02:00
lazedo 8f12de2cc7 supress warning for handlers when reason is shutdown 2017-05-11 20:58:38 +03:00
lazedo b687dc85b0 supress warning for handlers when reason is shutdown 2017-05-11 18:33:50 +01:00
Michael Klishin 0ed56a70b8 Delegate generic EXIT handling to implementation modules
The catch-all-and-ignore clause resulted in connections not actually
dying when they were expected to, wrecking havoc to some RabbitMQ server
test suites.

Per discussion with @dcorbacho.

This amends #79.
2017-05-11 18:24:19 +03:00
Michael Klishin 298e1c7d03 Delegate generic EXIT handling to implementation modules
The catch-all-and-ignore clause resulted in connections not actually
dying when they were expected to, wrecking havoc to some RabbitMQ server
test suites.

Per discussion with @dcorbacho.
2017-05-11 18:11:48 +03:00
Michael Klishin 476ff53b5b Merge branch 'stable' 2017-05-10 03:48:59 +03:00
Michael Klishin 69591877bd Improve logging 2017-05-10 03:48:40 +03:00
Michael Klishin a8b9fa9020 Merge branch 'stable' 2017-05-10 01:05:04 +03:00
Paul Schoenfelder 1feb5c857b Properly handle trapped exits in amqp_gen_connection
- Trapped exits were being forwarded to the connection module when it
  has no knowledge of what to do with them
- These unhandled exit messages were causing errors to occur
  unnecessarily
- This changeset ensures trapped exits are handled by the trapping
  process
2017-05-09 15:09:36 -05:00
Jean-Sébastien Pédron 692163ee1e amqp_channel: Use the new rabbit_amqqueue_common module
rabbit_amqqueue will shortly be moved to rabbitmq-server to fix a
dependency of this module on the broker.

[#118490793]
2017-05-04 19:29:31 +02:00
Jean-Sébastien Pédron 987c437106 amqp_network_connection: Use the new rabbit_ssl_options module
rabbit_networking will shortly be moved to rabbitmq-server to fix a
dependency of this module on the broker.

[#118490793]
2017-05-04 18:52:04 +02:00
Jean-Sébastien Pédron 21b3a3a292 amqp_direct_connection.erl: Use rabbit_cert_info
... to query certificate informations, instead of rabbit_ssl.

The former is provided by rabbitmq-common while the latter is in
rabbitmq-server. It allows to remove a dependency of the Erlang client
on the broker.

[#118490793]
2017-05-04 18:08:03 +02:00
Daniil Fedotov 85c1946b6a Replace dicts with maps 2017-04-27 10:10:49 +01:00
Jean-Sébastien Pédron d779ff4c79 Merge branch 'stable' 2017-04-19 12:34:38 +02:00
Jean-Sébastien Pédron a523296b6a Update erlang.mk 2017-04-19 11:59:17 +02:00
Michael Klishin 317e8f913c Merge branch 'stable' 2017-04-02 21:51:08 +03:00
Michael Klishin c9f57023f6 (c) year 2017-04-02 21:46:37 +03:00
Jean-Sébastien Pédron e030052d2e Merge branch 'stable' 2017-03-16 17:43:25 +01:00
Jean-Sébastien Pédron 65bb84d007 Makefile: Load rabbitmq-hexpm.mk Erlang.mk plugin 2017-03-16 16:32:26 +01:00
Arnaud Cogoluègnes ebd1655e5e Merge branch 'stable' 2017-03-08 16:25:33 +01:00
Arnaud Cogoluègnes 05c7a11e97 Add spec and test for URI parsing
References #76
2017-03-08 14:48:18 +01:00
Arnaud Cogoluègnes d396d59779 Accept binaries in URI parsing
Fixes #76
2017-03-08 10:59:22 +01:00
Arnaud Cogoluègnes 2acdfd6ec8 Unwrap real socket for SSL info
Part of rabbitmq/rabbitmq-server#589
2017-02-21 17:15:40 +01:00
Michael Klishin 0fa533c4ab Update rabbitmq-components.mk 2017-02-11 23:26:00 +03:00
Michael Klishin 0277536e89 Update rabbitmq-components.mk 2017-02-10 11:16:15 +03:00
Michael Klishin fef1f854a6 Update rabbitmq-components.mk 2017-02-10 03:06:08 +03:00
Michael Klishin aecb67661d Merge branch 'stable' 2017-02-08 16:52:51 +03:00
Michael Klishin 1546bb6a39 Update rabbitmq-components.mk 2017-02-08 16:38:07 +03:00
Michael Klishin a37363498a merge branch 'stable' 2017-02-06 19:49:59 +03:00
Michael Klishin e93a43b31a Update rabbitmq-components.mk 2017-02-06 19:23:45 +03:00
Jean-Sébastien Pédron a7bc4542a8 Update rabbitmq-components.mk 2017-02-02 17:16:46 +01:00
Michael Klishin b202038778 merge branch 'stable' 2017-01-31 18:21:04 +03:00
Michael Klishin 81b1f57ad9 Update rabbitmq-components.mk 2017-01-31 18:06:19 +03:00
Diana Corbacho 859948de8b Add user who performed action to direct connection notifications 2017-01-26 08:33:04 +00:00
Jean-Sébastien Pédron b20b0151a7 Merge branch 'stable' 2016-12-19 10:49:51 +01:00
Jean-Sébastien Pédron 7980a11a1c Support publish to Hex.pm
To do it, run:
    make hex-publish PROJECT_VERSION=3.6.6

The published copy depends on rabbit_common from Hex.pm, not
from Git. To achieve that, rabbitmq-components.mk is replaced by
rabbit_common/mk/rabbitmq-components.hexpm.mk.

[#134268483]
2016-12-15 15:08:20 +01:00
Jean-Sébastien Pédron 400c610d74 Merge branch 'stable' 2016-12-13 11:48:23 +01:00
Jean-Sébastien Pédron 4762c2a22f system_SUITE: Skip basic_get_* if they hit ENETUNREACH
This happens when eg. IPv6 is not configured on the host, which can be
the case on Travis CI.
2016-12-13 11:40:55 +01:00
Jean-Sébastien Pédron 6506746eed Travis CI: Import changes from rabbitmq-auth-backend-amqp 2016-12-12 12:40:38 +01:00
Jean-Sébastien Pédron 15e854dcc3 Merge branch 'stable' 2016-12-09 19:15:44 +01:00
Jean-Sébastien Pédron 86b25536ea Update rabbitmq-components.mk 2016-12-08 19:14:41 +01:00
Jean-Sébastien Pédron 625c7848ef Travis CI: Use Ubuntu Trusty image to have access to Elixir
Also, required `sudo` so a VM is used instead of a container. This makes
the test much longer, but allows us to install non-whitelisted pacakges
such as xsltproc.
2016-12-08 17:13:52 +01:00
Jean-Sébastien Pédron f3a1e1d5dc Merge branch 'stable' 2016-12-07 14:57:37 +01:00
Jean-Sébastien Pédron 01434f6540 Update rabbitmq-components.mk 2016-12-06 15:49:52 +01:00
Jean-Sébastien Pédron 9cb0eab735 Makefile: PROJECT_VERSION is set in rabbitmq-components.mk
[#130992027]
2016-12-06 13:43:17 +01:00
Jean-Sébastien Pédron 2576dec512 Update rabbitmq-components.mk
Remove PROJECT_VERSION computation from Makefile: rabbitmq-components.mk
takes care of it.

[#130992027]
2016-12-06 13:35:40 +01:00
Jean-Sébastien Pédron 2d2a35b0ec Makefile: Use a meaningful default version based on git-describe(1)
instead of `0.0.0`.

[#130992027]
2016-12-06 12:43:19 +01:00
Jean-Sébastien Pédron 01967c212a Move from .app.src to Makefile variables
This is the recommended way with Erlang.mk.

When working from the source archive created by `make source-dist`,
the version is taken from `git-revisions.txt`, a file created during
the creation of the source archive. When used for the broker, the
version is inherited from rabbitmq-serevr-release. If the variable is
specified on the command line as well, it takes precedence over the one
in `git-revisions.txt`, like any Makefile variables.

Erlang.mk automatically adds $(PROJECT)_sup to the registered processes.
We'll need to rename `amqp_sup` to that name or modify Erlang.mk to
avoid this bogus registered name.

[#130992027]
2016-12-05 19:42:09 +01:00
Jean-Sébastien Pédron 7cb5c50e57 Makefile: Sync exclusion list with rabbitmq-server-release
[#130992027]
2016-12-05 19:38:58 +01:00
Jean-Sébastien Pédron d276173239 Ignore hexer and PACKAGES/ 2016-12-05 19:37:30 +01:00
Michael Klishin 39ee89a298 Merge branch 'stable' 2016-11-29 21:29:25 +03:00
Michael Klishin f14ac2f7a4 Update rabbitmq-components.mk 2016-11-29 20:59:22 +03:00