Hello community, here is the log from the commit of package rubygem-bunny for openSUSE:Factory checked in at 2016-06-14 23:08:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-bunny (Old) and /work/SRC/openSUSE:Factory/.rubygem-bunny.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-bunny" Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-bunny/rubygem-bunny.changes 2016-04-28 16:56:40.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.rubygem-bunny.new/rubygem-bunny.changes 2016-06-14 23:08:07.000000000 +0200 @@ -1,0 +2,6 @@ +Sun Jun 12 04:29:33 UTC 2016 - [email protected] + +- updated to version 2.4.0 + see installed ChangeLog.md + +------------------------------------------------------------------- Old: ---- bunny-2.3.1.gem New: ---- bunny-2.4.0.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-bunny.spec ++++++ --- /var/tmp/diff_new_pack.fZmAkY/_old 2016-06-14 23:08:08.000000000 +0200 +++ /var/tmp/diff_new_pack.fZmAkY/_new 2016-06-14 23:08:08.000000000 +0200 @@ -24,7 +24,7 @@ # Name: rubygem-bunny -Version: 2.3.1 +Version: 2.4.0 Release: 0 %define mod_name bunny %define mod_full_name %{mod_name}-%{version} ++++++ bunny-2.3.1.gem -> bunny-2.4.0.gem ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CONTRIBUTING.md new/CONTRIBUTING.md --- old/CONTRIBUTING.md 2016-04-04 12:45:42.000000000 +0200 +++ new/CONTRIBUTING.md 2016-06-11 23:24:31.000000000 +0200 @@ -1,12 +1,78 @@ ## Pre-requisites -The project uses Bundler for dependency management and requires RabbitMQ `3.4+` to be running -locally. Prior to running the tests, configure the RabbitMQ permissions -by running `./bin/ci/before_script`. Make -sure you have those two installed and then run tests: +The project uses Bundler for dependency management and requires RabbitMQ `3.5+` to be running +locally with the `rabbitmq-management` and `rabbitmq_consistent_hash_exchange` plugins enabled. + + +### Running the Specs + +The specs require RabbitMQ to be running locally with a specific set of vhosts +and users. RabbitMQ can be provisioned and started any way that's convenient to you +as long as it has a suitable TLS keys configuration and management plugin enabled. +Make sure you have a recent version of RabbitMQ (> `3.5.3`). + +You can also start a clean RabbitMQ server +node on your machine specifically for the bunny specs. +This can be done either by using a locally installed RabbitMQ server or by +running a RabbitMQ server in a Docker container. + +#### Using a locally installed RabbitMQ server + +Run the following command from the base directory of the gem: + +``` +RABBITMQ_NODENAME=bunny RABBITMQ_CONFIG_FILE=./spec/config/rabbitmq RABBITMQ_ENABLED_PLUGINS_FILE=./spec/config/enabled_plugins rabbitmq-server +``` + +The specs use the RabbitMQ management plugin and require a TLS port to be available. The config files in the spec/config directory enable these. + +Next up you'll need to prepare your node for the specs (just once): + +``` +RABBITMQ_NODENAME=bunny ./bin/ci/before_build +``` + +And then run the core integration suite: + +``` +RABBITMQ_NODENAME=bunny CI=true rspec +``` + +#### Running a RabbitMQ server in a Docker container + +First off you have to [install Docker](https://docs.docker.com/engine/installation/) (>= 1.9). + +After Docker has been installed (and the `docker` command is available on your command line path), run + + ./bin/ci/start_rabbitmq + +The first time you do this, it will take some time, since it has to download everything it needs +to build the Docker image. + +The RabbitMQ server will run in the foreground in the terminal where you started it. You can stop +it by pressing CTRL+C. + +### Running Test Suites + +Prior to running the tests, configure the RabbitMQ permissions +by running `./bin/ci/before_script`. The script uses `rabbitmqctl` and `rabbitmq-plugins` +to set up RabbitMQ in a way that Bunny test suites expect. Two environment variables, +`RABBITMQCTL` and `RABBITMQ_PLUGINS`, are available to control what `rabbitmqctl` and +`rabbitmq-plugins` commands will be used. By default they are taken from `PATH` +and prefixed with `sudo`. + +Make sure you have those two installed and then run integration tests: bundle install - bundle exec rspec -cfd spec/ + rake integration + +It is possible to run all tests: + + bundle exec rspec -c + +It is possible to run only integration and regression tests but exclude unit and stress tests: + + CI=true bundle exec rspec -c spec/higher_level_api/ spec/lower_level_api spec/issues && bundle exec rspec -c spec/higher_level_api/integration/connection_recovery_spec.rb ## Pull Requests diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ChangeLog.md new/ChangeLog.md --- old/ChangeLog.md 2016-04-04 12:45:42.000000000 +0200 +++ new/ChangeLog.md 2016-06-11 23:24:31.000000000 +0200 @@ -1,4 +1,13 @@ -## Changes between Bunny 2.3.0 and 2.3.1 (Apr 4th, 2016) +## Changes between Bunny 2.3.0 and 2.4.0 (unreleased) + +### Unconfirmed Delivery Tag Set Reset on Network Recovery + +Channels will now reset their unconfirmed delivery tag set after +recovery. + +GitHub issue: [#406](https://github.com/ruby-amqp/bunny/pull/406) + +Contributed by Bill Ruddock. ### Support (Quoted) IPv6 Addresses in Address Lists @@ -15,6 +24,22 @@ Contributed by Donal McBreen. +### Client-Provided Session `:properties` Merged with Defaults + +Client-Provided Session `:properties` will now be merged with defaults +instead of replacing them. This makes it much more convenient to +override a single key. + +### More Predictable RABBITMQ_URL Handling + +`RABBITMQ_URL` no longer will be used if any other +connection options are provided. This makes it possible +to use `RABBITMQ_URL` for some connections and options +for others in a single OS process. + +GitHub issue: [#403](https://github.com/ruby-amqp/bunny/pull/403) + +Contributed by Jimmy Petersen. ## Changes between Bunny 2.2.0 and 2.3.0 (Feb 26th, 2016) @@ -25,6 +50,8 @@ when set to `true`, makes consumer work pool threads to have `Thread#abort_on_exception` set on them. +GH issue: [#382](https://github.com/ruby-amqp/bunny/pull/382) + Contributed by Seamus Abshere. ### Explicit Transport Closure on Recovery diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md --- old/README.md 2016-04-04 12:45:42.000000000 +0200 +++ new/README.md 2016-06-11 23:24:31.000000000 +0200 @@ -48,7 +48,7 @@ Modern Bunny versions support - * CRuby 2.2, 2.1, 2.0 + * CRuby 2.0 through 2.3 Bunny works sufficiently well on JRuby but there are known JRuby bugs in versions prior to JRuby 9000 that cause high CPU burn. JRuby users should @@ -88,7 +88,7 @@ To use Bunny in a project managed with Bundler: ``` ruby -gem "bunny", ">= 2.2.2" +gem "bunny", ">= 2.3.1" ``` @@ -183,36 +183,6 @@ contributing failing test cases. -### Running the Specs - -The specs require RabbitMQ to be running locally with a specific set of vhosts -and users. RabbitMQ can be provisioned and started any that's convenient to you -as long as it has a suitable TLS keys configuration and management plugin enabled. -Make sure you have a recent version of RabbitMQ (> `3.5.3`). - -You can also start a clean RabbitMQ server -node on your machine specifically for the bunny specs. -To do so, run the following command -from the base directory of the gem: - -``` -RABBITMQ_NODENAME=bunny RABBITMQ_CONFIG_FILE=./spec/config/rabbitmq RABBITMQ_ENABLED_PLUGINS_FILE=./spec/config/enabled_plugins rabbitmq-server -``` - -The specs use the RabbitMQ management plugin and require a TLS port to be available. The config files in the spec/config directory enable these. - -Next up you'll need to prepare your node for the specs (just once): - -``` -RABBITMQ_NODENAME=bunny ./bin/ci/before_build -``` - -And then run the core integration suite: - -``` -RABBITMQ_NODENAME=bunny CI=true rspec -``` - ## Other Ruby RabbitMQ Clients The other widely used Ruby RabbitMQ client is [March Hare](http://rubymarchhare.info) (JRuby-only). @@ -221,22 +191,8 @@ ## Contributing -First, clone the repository and run - - bundle install --binstubs - -then set up RabbitMQ vhosts with - - ./bin/ci/before_build - -(if needed, set `RABBITMQCTL` env variable to point to `rabbitmqctl` you want to use) - -and then run tests with - - CI=true ./bin/rspec -cf documentation spec - -After that create a branch and make your changes on it. Once you are done with your changes and all tests pass, submit a pull request -on GitHub. +See [CONTRIBUTING.md](./CONTRIBUTING.md) for more information +about running various test suites. ## License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Rakefile new/Rakefile --- old/Rakefile 1970-01-01 01:00:00.000000000 +0100 +++ new/Rakefile 2016-06-11 23:24:31.000000000 +0200 @@ -0,0 +1,27 @@ +require 'rake' +require 'rspec/core/rake_task' + +RSpec::Core::RakeTask.new(:integration) do |t| + # excludes unit tests as those involve many iterations + # and sometimes suffer from obscure interference from integration tests (!) + t.pattern = ["spec/higher_level_api/integration", "spec/lower_level_api/integration", "spec/issues", "spec/stress"]. + map { |dir| Dir.glob(File.join(dir, "**", "*_spec.rb")) }.reduce(&:+) - ["spec/higher_level_api/integration/tls_connection_spec.rb"] + + t.rspec_opts = "--format progress" +end + +RSpec::Core::RakeTask.new(:unit) do |t| + t.pattern = Dir.glob("spec/unit/**/*_spec.rb") + + t.rspec_opts = "--format progress --backtrace" +end + +RSpec::Core::RakeTask.new(:recovery_integration) do |t| + # otherwise all examples will be skipped + ENV.delete("CI") + t.pattern = Dir.glob("spec/higher_level_api/integration/connection_recovery_spec.rb") + + t.rspec_opts = "--format progress --backtrace" +end + +task :default => :integration diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bin/ci/before_build new/bin/ci/before_build --- old/bin/ci/before_build 2016-04-04 12:45:42.000000000 +0200 +++ new/bin/ci/before_build 2016-06-11 23:24:31.000000000 +0200 @@ -1,7 +1,7 @@ #!/usr/bin/env ruby -$ctl = ENV.fetch("RABBITMQCTL", "sudo rabbitmqctl") -$plugins = ENV.fetch("RABBITMQ_PLUGINS", "sudo rabbitmq-plugins") +$ctl = ENV["BUNNY_RABBITMQCTL"] || ENV["RABBITMQCTL"] || "sudo rabbitmqctl" +$plugins = ENV["BUNNY_RABBITMQ_PLUGINS"] || ENV["RABBITMQ_PLUGINS"] || "sudo rabbitmq-plugins" def rabbit_control(args) command = "#{$ctl} #{args}" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bin/ci/start_rabbitmq new/bin/ci/start_rabbitmq --- old/bin/ci/start_rabbitmq 1970-01-01 01:00:00.000000000 +0100 +++ new/bin/ci/start_rabbitmq 2016-06-11 23:24:31.000000000 +0200 @@ -0,0 +1,9 @@ +#!/bin/bash +if [ -z `which docker` ]; then + echo 'You need to install docker to run this script. See https://docs.docker.com/engine/installation/' + exit +fi + +cd $(dirname $(readlink -f $0)) +docker build -t bunny_rabbitmq ../../docker && \ +exec docker run --net host -ti bunny_rabbitmq Files old/checksums.yaml.gz and new/checksums.yaml.gz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker/Dockerfile new/docker/Dockerfile --- old/docker/Dockerfile 1970-01-01 01:00:00.000000000 +0100 +++ new/docker/Dockerfile 2016-06-11 23:24:31.000000000 +0200 @@ -0,0 +1,14 @@ +FROM debian:jessie + +RUN apt-get -q update && \ + apt-get install -yq --no-install-recommends wget ca-certificates + +RUN echo 'deb http://www.rabbitmq.com/debian/ testing main' > /etc/apt/sources.list.d/rabbitmq.list && \ + wget -O- https://www.rabbitmq.com/rabbitmq-signing-key-public.asc | apt-key add - + +RUN apt-get -q update && \ + apt-get install -yq --no-install-recommends rabbitmq-server + +COPY docker-entrypoint.sh / + +ENTRYPOINT /docker-entrypoint.sh diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/docker/docker-entrypoint.sh new/docker/docker-entrypoint.sh --- old/docker/docker-entrypoint.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/docker/docker-entrypoint.sh 2016-06-11 23:24:31.000000000 +0200 @@ -0,0 +1,40 @@ +#!/bin/sh +server=rabbitmq-server +ctl=rabbitmqctl +plugins=rabbitmq-plugins +delay=3 + +echo '[Configuration] Starting RabbitMQ in detached mode.' + +$server -detached + +echo "[Configuration] Waiting $delay seconds for RabbitMQ to start." + +sleep $delay + +echo '*** Enabling plugins ***' +$plugins enable --online rabbitmq_management +$plugins enable --online rabbitmq_consistent_hash_exchange + +echo '*** Creating users ***' +$ctl add_user bunny_gem bunny_password +$ctl add_user bunny_reader reader_password + +echo '*** Creating virtual hosts ***' +$ctl add_vhost bunny_testbed + +echo '*** Setting virtual host permissions ***' +$ctl set_permissions -p / guest '.*' '.*' '.*' +$ctl set_permissions -p bunny_testbed bunny_gem '.*' '.*' '.*' +$ctl set_permissions -p bunny_testbed guest '.*' '.*' '.*' +$ctl set_permissions -p bunny_testbed bunny_reader '^---$' '^---$' '.*' + +$ctl stop + +echo "[Configuration] Waiting $delay seconds for RabbitMQ to stop." + +sleep $delay + +echo 'Starting RabbitMQ in foreground (CTRL-C to exit)' + +exec $server diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bunny/channel.rb new/lib/bunny/channel.rb --- old/lib/bunny/channel.rb 2016-04-04 12:45:42.000000000 +0200 +++ new/lib/bunny/channel.rb 2016-06-11 23:24:31.000000000 +0200 @@ -366,7 +366,7 @@ # @see http://rubybunny.info/articles/exchanges.html Exchanges and Publishing guide # @api public def default_exchange - self.direct(AMQ::Protocol::EMPTY_STRING, :no_declare => true) + Exchange.default(self) end # Declares a headers exchange or looks it up in the cache of previously @@ -427,26 +427,6 @@ # @group QoS and Flow Control - # Sets how many messages will be given to consumers on this channel before they - # have to acknowledge or reject one of the previously consumed messages - # - # @param [Integer] prefetch_count Prefetch (QoS setting) for this channel - # @param [Boolean] global - # Whether to use global mode for prefetch: - # - +false+: per-consumer - # - +true+: per-channel - # Note that the default value (+false+) hasn't actually changed, but - # previous documentation described that as meaning per-channel and - # unsupported in RabbitMQ, whereas it now actually appears to mean - # per-consumer and supported - # (https://www.rabbitmq.com/consumer-prefetch.html). - # @see http://rubybunny.info/articles/exchanges.html Exchanges and Publishing guide - # @see http://rubybunny.info/articles/queues.html Queues and Consumers guide - # @api public - def prefetch(count, global = false) - self.basic_qos(count, global) - end - # Flow control. When set to false, RabbitMQ will stop delivering messages on this # channel. # @@ -649,8 +629,8 @@ # @see http://rubybunny.info/articles/queues.html Queues and Consumers guide # @api public def basic_qos(count, global = false) - raise ArgumentError.new("prefetch count must be a positive integer, given: #{prefetch_count}") if count < 0 - raise ArgumentError.new("prefetch count must be no greater than #{MAX_PREFETCH_COUNT}, given: #{prefetch_count}") if count > MAX_PREFETCH_COUNT + raise ArgumentError.new("prefetch count must be a positive integer, given: #{count}") if count < 0 + raise ArgumentError.new("prefetch count must be no greater than #{MAX_PREFETCH_COUNT}, given: #{count}") if count > MAX_PREFETCH_COUNT raise_if_no_longer_open! @connection.send_frame(AMQ::Protocol::Basic::Qos.encode(@id, 0, count, global)) @@ -665,6 +645,7 @@ @last_basic_qos_ok end + alias prefetch basic_qos # Redeliver unacknowledged messages # @@ -1514,6 +1495,7 @@ # @api plugin def recover_confirm_mode if using_publisher_confirmations? + @unconfirmed_set.clear @delivery_tag_offset = @next_publish_seq_no - 1 confirm_select(@confirms_callback) end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bunny/queue.rb new/lib/bunny/queue.rb --- old/lib/bunny/queue.rb 2016-04-04 12:45:42.000000000 +0200 +++ new/lib/bunny/queue.rb 2016-06-11 23:24:31.000000000 +0200 @@ -37,7 +37,6 @@ @channel = channel @name = name @options = self.class.add_default_options(name, opts) - @consumers = Hash.new @durable = @options[:durable] @exclusive = @options[:exclusive] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bunny/reader_loop.rb new/lib/bunny/reader_loop.rb --- old/lib/bunny/reader_loop.rb 2016-04-04 12:45:42.000000000 +0200 +++ new/lib/bunny/reader_loop.rb 2016-06-11 23:24:31.000000000 +0200 @@ -92,11 +92,11 @@ end def stopped? - @mutex.synchronize { @stopped = true } + @mutex.synchronize { @stopped } end def stopping? - @mutex.synchronize { @stopping = true } + @mutex.synchronize { @stopping } end def terminate_with(e) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bunny/session.rb new/lib/bunny/session.rb --- old/lib/bunny/session.rb 2016-04-04 12:45:42.000000000 +0200 +++ new/lib/bunny/session.rb 2016-06-11 23:24:31.000000000 +0200 @@ -125,12 +125,12 @@ # @see http://rubybunny.info/articles/connecting.html Connecting to RabbitMQ guide # @see http://rubybunny.info/articles/tls.html TLS/SSL guide # @api public - def initialize(connection_string_or_opts = Hash.new, optz = Hash.new) - opts = case (ENV["RABBITMQ_URL"] || connection_string_or_opts) + def initialize(connection_string_or_opts = ENV['RABBITMQ_URL'], optz = Hash.new) + opts = case (connection_string_or_opts) when nil then Hash.new when String then - self.class.parse_uri(ENV["RABBITMQ_URL"] || connection_string_or_opts) + self.class.parse_uri(connection_string_or_opts) when Hash then connection_string_or_opts end.merge(optz) @@ -179,7 +179,7 @@ @channel_max = @client_channel_max @client_heartbeat = self.heartbeat_from(opts) - @client_properties = opts[:properties] || DEFAULT_CLIENT_PROPERTIES + @client_properties = DEFAULT_CLIENT_PROPERTIES.merge(opts.fetch(:properties, {})) @mechanism = opts.fetch(:auth_mechanism, "PLAIN") @credentials_encoder = credentials_encoder_for(@mechanism) @locale = @opts.fetch(:locale, DEFAULT_LOCALE) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bunny/version.rb new/lib/bunny/version.rb --- old/lib/bunny/version.rb 2016-04-04 12:45:42.000000000 +0200 +++ new/lib/bunny/version.rb 2016-06-11 23:24:31.000000000 +0200 @@ -2,5 +2,5 @@ module Bunny # @return [String] Version of the library - VERSION = "2.3.1" + VERSION = "2.4.0" end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/bunny.rb new/lib/bunny.rb --- old/lib/bunny.rb 2016-04-04 12:45:42.000000000 +0200 +++ new/lib/bunny.rb 2016-06-11 23:24:31.000000000 +0200 @@ -58,7 +58,7 @@ # @see http://rubybunny.info/articles/getting_started.html # @see http://rubybunny.info/articles/connecting.html # @api public - def self.new(connection_string_or_opts = {}, opts = {}, &block) + def self.new(connection_string_or_opts = ENV['RABBITMQ_URL'], opts = {}, &block) if connection_string_or_opts.respond_to?(:keys) && opts.empty? opts = connection_string_or_opts end @@ -70,7 +70,7 @@ end - def self.run(connection_string_or_opts = {}, opts = {}, &block) + def self.run(connection_string_or_opts = ENV['RABBITMQ_URL'], opts = {}, &block) raise ArgumentError, 'Bunny#run requires a block' unless block client = Session.new(connection_string_or_opts, opts) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 2016-04-04 12:45:42.000000000 +0200 +++ new/metadata 2016-06-11 23:24:31.000000000 +0200 @@ -1,7 +1,7 @@ --- !ruby/object:Gem::Specification name: bunny version: !ruby/object:Gem::Version - version: 2.3.1 + version: 2.4.0 platform: ruby authors: - Chris Duncan @@ -12,7 +12,7 @@ autorequire: bindir: bin cert_chain: [] -date: 2016-04-04 00:00:00.000000000 Z +date: 2016-06-11 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: amq-protocol @@ -46,6 +46,7 @@ - Gemfile - LICENSE - README.md +- Rakefile - benchmarks/basic_publish/with_128K_messages.rb - benchmarks/basic_publish/with_1k_messages.rb - benchmarks/basic_publish/with_4K_messages.rb @@ -58,7 +59,10 @@ - benchmarks/synchronized_sorted_set.rb - benchmarks/write_vs_write_nonblock.rb - bin/ci/before_build +- bin/ci/start_rabbitmq - bunny.gemspec +- docker/Dockerfile +- docker/docker-entrypoint.sh - examples/connection/authentication_failure.rb - examples/connection/automatic_recovery_with_basic_get.rb - examples/connection/automatic_recovery_with_client_named_queues.rb @@ -193,13 +197,11 @@ - spec/stress/concurrent_publishers_stress_spec.rb - spec/stress/connection_open_close_spec.rb - spec/stress/long_running_consumer_spec.rb +- spec/stress/wait_for_confirms_with_connection_loss_stress_spec.rb - spec/tls/ca_certificate.pem - spec/tls/ca_key.pem -- spec/tls/cacert.pem -- spec/tls/client_cert.pem - spec/tls/client_certificate.pem - spec/tls/client_key.pem -- spec/tls/server_cert.pem - spec/tls/server_certificate.pem - spec/tls/server_key.pem - spec/unit/bunny_spec.rb @@ -228,7 +230,7 @@ version: '0' requirements: [] rubyforge_project: -rubygems_version: 2.5.1 +rubygems_version: 2.4.8 signing_key: specification_version: 4 summary: Popular easy to use Ruby client for RabbitMQ @@ -295,13 +297,11 @@ - spec/stress/concurrent_publishers_stress_spec.rb - spec/stress/connection_open_close_spec.rb - spec/stress/long_running_consumer_spec.rb +- spec/stress/wait_for_confirms_with_connection_loss_stress_spec.rb - spec/tls/ca_certificate.pem - spec/tls/ca_key.pem -- spec/tls/cacert.pem -- spec/tls/client_cert.pem - spec/tls/client_certificate.pem - spec/tls/client_key.pem -- spec/tls/server_cert.pem - spec/tls/server_certificate.pem - spec/tls/server_key.pem - spec/unit/bunny_spec.rb diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/higher_level_api/integration/basic_qos_spec.rb new/spec/higher_level_api/integration/basic_qos_spec.rb --- old/spec/higher_level_api/integration/basic_qos_spec.rb 2016-04-04 12:45:42.000000000 +0200 +++ new/spec/higher_level_api/integration/basic_qos_spec.rb 2016-06-11 23:24:31.000000000 +0200 @@ -36,7 +36,10 @@ ch = connection.create_channel expect { ch.prefetch(100_000) - }.to raise_error(ArgumentError) + }.to raise_error( + ArgumentError, + "prefetch count must be no greater than #{Bunny::Channel::MAX_PREFETCH_COUNT}, given: 100000" + ) end end @@ -45,7 +48,10 @@ ch = connection.create_channel expect { ch.prefetch(-2) - }.to raise_error(ArgumentError) + }.to raise_error( + ArgumentError, + "prefetch count must be a positive integer, given: -2" + ) end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/stress/concurrent_consumers_stress_spec.rb new/spec/stress/concurrent_consumers_stress_spec.rb --- old/spec/stress/concurrent_consumers_stress_spec.rb 2016-04-04 12:45:42.000000000 +0200 +++ new/spec/stress/concurrent_consumers_stress_spec.rb 2016-06-11 23:24:31.000000000 +0200 @@ -5,7 +5,7 @@ describe "Concurrent consumers sharing a connection" do before :all do @connection = Bunny.new(:user => "bunny_gem", :password => "bunny_password", :vhost => "bunny_testbed", - :automatic_recovery => false, :continuation_timeout => 6000) + :automatic_recovery => false) @connection.start end @@ -21,12 +21,13 @@ let(:colors) { ["red", "blue", "white"] } let(:n) { 32 } - let(:m) { 1000 } + let(:m) { 5000 } it "successfully drain all queues" do - ch = @connection.create_channel + ch0 = @connection.create_channel + ch0.confirm_select body = "абвг" - x = ch.topic("bunny.stress.concurrent.consumers.topic", :durable => true) + x = ch0.topic("bunny.stress.concurrent.consumers.topic", :durable => true) chs = {} n.times do |i| @@ -54,14 +55,16 @@ x.publish(body, :routing_key => colors.sample) end puts "Published #{(i + 1) * m} messages..." + ch0.wait_for_confirms end while any_not_drained?(qs) sleep 1.0 end - puts "Drained all the queues..." + puts "Drained all queues, winding down..." - ch.close + ch0.close + chs.each { |_, ch| ch.close } end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/stress/concurrent_publishers_stress_spec.rb new/spec/stress/concurrent_publishers_stress_spec.rb --- old/spec/stress/concurrent_publishers_stress_spec.rb 2016-04-04 12:45:42.000000000 +0200 +++ new/spec/stress/concurrent_publishers_stress_spec.rb 2016-06-11 23:24:31.000000000 +0200 @@ -4,7 +4,7 @@ unless ENV["CI"] describe "Concurrent publishers sharing a connection" do before :all do - @connection = Bunny.new(:user => "bunny_gem", :password => "bunny_password", :vhost => "bunny_testbed", :automatically_recover => false, :continuation_timeout => 20.0) + @connection = Bunny.new(:user => "bunny_gem", :password => "bunny_password", :vhost => "bunny_testbed", :automatically_recover => false) @connection.start end @@ -16,17 +16,13 @@ let(:rate) { 5_000 } it "successfully finish publishing" do - ch = @connection.create_channel - - q = ch.queue("", :exclusive => true) body = "сообщение" - # let the queue name be sent back by RabbitMQ - sleep 0.25 - chs = {} concurrency.times do |i| - chs[i] = @connection.create_channel + ch = @connection.create_channel + ch.confirm_select + chs[i] = ch end ts = [] @@ -34,14 +30,13 @@ concurrency.times do |i| t = Thread.new do cht = chs[i] - x = ch.default_exchange + x = cht.default_exchange - 5.times do |i| - rate.times do - x.publish(body, :routing_key => q.name) - end - puts "Published #{(i + 1) * rate} messages..." + rate.times do + x.publish(body) end + puts "Published #{rate} messages..." + cht.wait_for_confirms end t.abort_on_exception = true @@ -51,6 +46,8 @@ ts.each do |t| t.join end + + chs.each { |_, ch| ch.close } end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/stress/wait_for_confirms_with_connection_loss_stress_spec.rb new/spec/stress/wait_for_confirms_with_connection_loss_stress_spec.rb --- old/spec/stress/wait_for_confirms_with_connection_loss_stress_spec.rb 1970-01-01 01:00:00.000000000 +0100 +++ new/spec/stress/wait_for_confirms_with_connection_loss_stress_spec.rb 2016-06-11 23:24:31.000000000 +0200 @@ -0,0 +1,131 @@ +require "spec_helper" + +unless ENV["CI"] + describe "Publisher with wait_for_confirms suffering a lost connection" do + before :all do + @connection = Bunny.new( + :user => "bunny_gem", + :password => "bunny_password", + :vhost => "bunny_testbed", + :recover_from_connection_close => true, + :network_recovery_interval => 0.2, + :recovery_attempts => 3, + :continuation_timeout => 3_000) + @connection.start + end + + after :all do + @connection.close + end + + let(:rate) { 50 } + let(:inner_rate) { 5 } + let(:max_retries) { 3 } + let(:routing_key) { 'confirms' } + + let(:http_client) { RabbitMQ::HTTP::Client.new('http://127.0.0.1:15672') } + + let!(:ch_pub) { @connection.create_channel.tap { |ch| ch.confirm_select } } + let!(:ch_sub) { @connection.create_channel } + let!(:topic) { 'bunny.stress.concurrent.confirms.topic' } + let!(:x) { ch_pub.topic(topic, :durable => true) } + let!(:q) do + ch_sub.queue('', :durable => true).tap do |q| + q.bind(x.name, :routing_key => routing_key) + q.purge + end + end + + def close_all_connections! + http_client.list_connections.each do |conn_info| + begin + http_client.close_connection(conn_info.name) + rescue Bunny::ConnectionForced => e + # This is not a problem, but the specs intermittently believe it is. + printf "Rescued forced connection: #{e.inspect}\n" + end + end + end + + def wait_for_recovery + sleep 1.5 + end + + after do + unless ch_sub.closed? + q.delete + ch_sub.close + end + ch_pub.close unless ch_pub.closed? + end + + it "successfully publish and consume all messages" do + begin + subscriber_mutex = Mutex.new + ids_received = Set.new + message_count = nil + + sub = Thread.new do + begin + q.subscribe do |delivery_info, meta, payload| + subscriber_mutex.synchronize do + ids_received << payload.to_i + message_count = q.message_count + end + end + end + end + sub.abort_on_exception = true + + pub = Thread.new do + rate.times do |i| + retries = 0 + begin + inner_rate.times do |j| + id = i * inner_rate + j + x.publish(id.to_s, :routing_key => routing_key) + end + until ch_pub.unconfirmed_set.empty? + unless ch_pub.wait_for_confirms + raise "Not all messages acknowledged, nacks: #{ch_pub.nacked_set.inspect}" + end + end + rescue => e + puts "Rescued error in iteration #{i}: #{e.inspect}" + retries += 1 + raise if retries > max_retries + + puts "sleeping before retry #{retries}" + sleep 0.5 + retry + end + end + puts "Published #{rate * inner_rate} messages..." + end + pub.abort_on_exception = true + sleep 0.2 while ids_received.size < 10 + + close_all_connections! + wait_for_recovery + + pub.join + + sleep 0.1 until message_count == 0 + puts "Drained queue, winding down..." + + q.delete + ch_pub.close + ch_sub.close + sub.kill + + expect(ch_pub.unconfirmed_set).to be_empty + + expected_ids = Set.new((rate * inner_rate).times) + missing_ids = expected_ids - ids_received + expect(missing_ids).to eq(Set.new) + ensure + sub.kill + end + end + end +end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/tls/ca_certificate.pem new/spec/tls/ca_certificate.pem --- old/spec/tls/ca_certificate.pem 2016-04-04 12:45:42.000000000 +0200 +++ new/spec/tls/ca_certificate.pem 2016-06-11 23:24:31.000000000 +0200 @@ -1,18 +1,18 @@ -----BEGIN CERTIFICATE----- -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 -----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/tls/ca_key.pem new/spec/tls/ca_key.pem --- old/spec/tls/ca_key.pem 2016-04-04 12:45:42.000000000 +0200 +++ new/spec/tls/ca_key.pem 2016-06-11 23:24:31.000000000 +0200 @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/tls/cacert.pem new/spec/tls/cacert.pem --- old/spec/tls/cacert.pem 2016-04-04 12:45:42.000000000 +0200 +++ new/spec/tls/cacert.pem 1970-01-01 01:00:00.000000000 +0100 @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC5DCCAcygAwIBAgIJAMa8aNd9TfEZMA0GCSqGSIb3DQEBBQUAMCIxETAPBgNV -BAMTCE15VGVzdENBMQ0wCwYDVQQHEwQxODE1MB4XDTEzMDYwMjE1NTQwMFoXDTE0 -MDYwMjE1NTQwMFowIjERMA8GA1UEAxMITXlUZXN0Q0ExDTALBgNVBAcTBDE4MTUw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDSLh8ZM0+1wVrr4J9KZLLt -VtGoKEhuTWYa+DvDbdUYaD/G06GfRqsM0eOKuJfoaMz3qY49j/bZXmuG64rGx5oq -Lp6VBwAw1R3Pmw3rD7XgiK0/7mVmnC4nwQAs9/uCKeAMPHfMDAG33aalxb3FzJfa -RUiSIY7y7Kt7nCVC53foTFxbt0EKm7wjey1S8P9XkCB8x+ZT5GetzoqulKxt/f1u -0K/gVnMUvFmflR4hsx5qBNV6wFEYwMfi+C6q184aJv7jmjumimf9IBOcOkZrDnQD -+7HeOeZAbMgLtCaacD2SH72s3hIHvgetbIJva+zJkbjjjA+Ycd824WjG+CiOEIch -AgMBAAGjHTAbMAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEB -BQUAA4IBAQAvLziFQ56+vNyNAGDD8bQaUY8JElXj4X3vC0nFeN0zuPQz9Aa8UH4A -Y7e/j3NS2mfYdqC8U3iYEXZwp4qk4/JZ9SkhRiaLbeIF7VT+xg+K/HDmBmwNZpQL -b9bNBk9BeRMv4jJUuM/BE04nmqQnbD8h2QleT0A7uVe94ym86rHcimCYmZT7wEZ0 -D3TZPRnETwe2WtpAU3qB6Zd2ug/GulFdeugHe8bM0Kjz+BiK+Tmsa0SIN31t/uu4 -Tcxk1uFldIGPURAgs6MXxBHohOdJySBLrjsJWlD02Oxv9LeCfxej/gA6pZ4Wiyh/ -VtkyWoFlx/8n2S7IH1bKqMFy0SU/Fp3F ------END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/tls/client_cert.pem new/spec/tls/client_cert.pem --- old/spec/tls/client_cert.pem 2016-04-04 12:45:42.000000000 +0200 +++ new/spec/tls/client_cert.pem 1970-01-01 01:00:00.000000000 +0100 @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC+zCCAeOgAwIBAgIBATANBgkqhkiG9w0BAQUFADAnMRUwEwYDVQQDEwxNeVRl -c3RSb290Q0ExDjAMBgNVBAcTBTgwNTQ3MB4XDTE0MDkxMjA4NDg0MVoXDTI0MDkw -OTA4NDg0MVowKjEXMBUGA1UEAxMObWVyY3VyaW8ubG9jYWwxDzANBgNVBAoTBmNs -aWVudDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJd+NA0M21Kj1CyH -WmnLzUAQAi3GawvLnxwyrlW3nfl1BLEL2kLHrHYS7S0giL0T/Zziw9BqNB2Fba3l -RbI8d0JppuMXRRHnFTY/fLYpQlcwB8hT17NBk8euoU1r2VopCwDKP8rxAxLLL9Im -2Cg+ksvZe+6yJPzAQ5aw1zc+UMSwJ8p2gAI7BI8Oekk506iccwbHwqVHH3DwCCXp -0dRtzMeRqZY9lC1wsLHVYLl/Pc/xWtqjuk0j5px6RtrBoW16MaK43zH1nFlEA8KH -c0RVFaQsQMVYBbxsVq54rymGInmmSk+vy5ZoFC1ItBRPSSgI1beaL5/4B/dJGI74 -7u/+cpsCAwEAAaMvMC0wCQYDVR0TBAIwADALBgNVHQ8EBAMCB4AwEwYDVR0lBAww -CgYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQADggEBALPEuvS/1/0IBM/Kyi0MHa6m -KjltIm2Cp8iaTkziy9r2UDckvSqv8GW0itE69126j4L1iVUYNIVemUvcAwaX3YLf -nN80XMjNl8mpSKwCXvKKXUTAFUQN+SPMbEC7Uzip1WgJGyc2T9ka8iN+nd1T7btU -482+zf5bGh+d0E7c4j0jfpf/1+VkfG/Vn5/EpG51DCvYtgg3F3PR39mDmnvKJu8p -eYYvk3Jab0r/v3cLdt5GgZ4/WXZCdVpGgfDd60miXh7DUWilXBRuntVxZequF/ZI -obei8teP2T/4oos3GWPOLxEA8EnQsdUoXxK/2DTq+9G6PQTQNm2/kvR6hPKimBk= ------END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/tls/client_certificate.pem new/spec/tls/client_certificate.pem --- old/spec/tls/client_certificate.pem 2016-04-04 12:45:42.000000000 +0200 +++ new/spec/tls/client_certificate.pem 2016-06-11 23:24:32.000000000 +0200 @@ -1,18 +1,18 @@ -----BEGIN CERTIFICATE----- -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 -----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/tls/client_key.pem new/spec/tls/client_key.pem --- old/spec/tls/client_key.pem 2016-04-04 12:45:42.000000000 +0200 +++ new/spec/tls/client_key.pem 2016-06-11 23:24:32.000000000 +0200 @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/tls/server_cert.pem new/spec/tls/server_cert.pem --- old/spec/tls/server_cert.pem 2016-04-04 12:45:42.000000000 +0200 +++ new/spec/tls/server_cert.pem 1970-01-01 01:00:00.000000000 +0100 @@ -1,18 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIC+zCCAeOgAwIBAgIBAjANBgkqhkiG9w0BAQUFADAnMRUwEwYDVQQDEwxNeVRl -c3RSb290Q0ExDjAMBgNVBAcTBTgwNTQ3MB4XDTE0MDkxMjA4NDg0MloXDTI0MDkw -OTA4NDg0MlowKjEXMBUGA1UEAxMObWVyY3VyaW8ubG9jYWwxDzANBgNVBAoTBnNl -cnZlcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALvQX6P7Tz0sNKNg -yiEb71gg84gyOaaTnIbgPKHTJ9kFMLZFQ3HN05dHLwqH1noefauV6HVPESVVf01m -Ph28jre9tBorPAaiIzuf2kKlpZolN7Q9d/5rb2Vw3dUpoZJoD4aL+u8cghmkzodV -vts1WRIRjH/yTUc266+h6m9lIi9L9BCYMTAWOF0KHoXA2VgLLkQNv+2GKHFP32ZH -1vXa98fxErpJ//3jRwP5m4t0PDSPlAw++bOiwgZb8r+vEOCyZE15BoukSi8rtibc -tSpYsbyvWaoe/JQfGPI3St84DhrUPPm2FUMyWMeTmldcfyLA25/vQPha4JC4f4Bc -CYvzCVUCAwEAAaMvMC0wCQYDVR0TBAIwADALBgNVHQ8EBAMCBSAwEwYDVR0lBAww -CgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEFBQADggEBADWhd3ikOdCFNZfDy9If9txm -WtiBJ8g3oWjj99zIvb0CNqp0Xv5jvWgw8DYXG5FZAA7g5sKrihkxKTtpYnKsTZ40 -HEcGRUqF/Z1LLeh7/OYMx597yBn86ZcqUyBIaIsEhHNa+yC1zHWa4rg1vpDwY/iI -Mbewjy9KyB4n6w+3TpSHvhpEa5OJiDOMFePURsS3io9r7MGfFVTM0Cho1qIYT1vt -tOoUXpKAJxu+6TwDXzMwoSmjMw5GtchqhpCHQcHBH9z1rGHh/VShGl/+rif4JZ98 -natbZ91esBaJKbWLUxH1U9Aol8wwYD4MzK3rvfImgjgig+htAqhCMxLu1z9VE+o= ------END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/tls/server_certificate.pem new/spec/tls/server_certificate.pem --- old/spec/tls/server_certificate.pem 2016-04-04 12:45:42.000000000 +0200 +++ new/spec/tls/server_certificate.pem 2016-06-11 23:24:32.000000000 +0200 @@ -1,18 +1,18 @@ -----BEGIN CERTIFICATE----- -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 -----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/tls/server_key.pem new/spec/tls/server_key.pem --- old/spec/tls/server_key.pem 2016-04-04 12:45:42.000000000 +0200 +++ new/spec/tls/server_key.pem 2016-06-11 23:24:32.000000000 +0200 @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY-----
