beetle 0.3.0.rc.5 → 0.3.0.rc.6

Sign up to get free protection for your applications and to get access to all the features.
data/beetle.gemspec CHANGED
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
34
34
  s.specification_version = 3
35
35
  s.add_runtime_dependency("uuid4r", [">= 0.1.2"])
36
36
  s.add_runtime_dependency("bunny", ["= 0.7.8"])
37
- s.add_runtime_dependency("redis", ["= 2.2.0"])
37
+ s.add_runtime_dependency("redis", ["= 2.2.2"])
38
38
  s.add_runtime_dependency("hiredis", ["= 0.3.2"])
39
39
  s.add_runtime_dependency("amq-client", ["= 0.8.3"])
40
40
  s.add_runtime_dependency("amq-protocol", ["= 0.8.1"])
@@ -44,8 +44,6 @@ Gem::Specification.new do |s|
44
44
  s.add_development_dependency("rake", [">= 0.8.7"])
45
45
  s.add_development_dependency("mocha", [">= 0"])
46
46
  s.add_development_dependency("rcov", [">= 0"])
47
- s.add_development_dependency("redgreen", [">= 0"])
48
- s.add_development_dependency("wirble", [">= 0"])
49
47
  s.add_development_dependency("cucumber", [">= 0.7.2"])
50
48
  s.add_development_dependency("daemon_controller", [">= 0"])
51
49
  end
@@ -39,7 +39,7 @@ module TestDaemons
39
39
  end
40
40
 
41
41
  def restart(delay=1)
42
- redis.shutdown rescue Errno::ECONNREFUSED
42
+ redis.shutdown
43
43
  sleep delay
44
44
  `redis-server #{config_filename}`
45
45
  end
@@ -50,4 +50,23 @@ class Redis #:nodoc:
50
50
  info = info_with_rescue
51
51
  info["role"] == "slave" && info["master_host"] == host && info["master_port"] == port.to_s
52
52
  end
53
+
54
+ # redis 2.2.2 shutdown implementation does not disconnect from the redis server.
55
+ # this leaves the connection in an inconsistent state and causes the next command to silently fail.
56
+ # this in turn breaks our cucumber test scenarios.
57
+ # fix this here, until a new version is released which fixes the problem.
58
+
59
+ alias_method :broken_shutdown, :shutdown
60
+
61
+ # Synchronously save the dataset to disk and then shut down the server.
62
+ def shutdown
63
+ synchronize do
64
+ begin
65
+ @client.call_without_reply [:shutdown]
66
+ ensure
67
+ @client.disconnect
68
+ end
69
+ end
70
+ end
71
+
53
72
  end
@@ -1,3 +1,3 @@
1
1
  module Beetle
2
- VERSION = "0.3.0.rc.5"
2
+ VERSION = "0.3.0.rc.6"
3
3
  end
data/script/console~ ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env ruby
2
+ $:.unshift(File.expand_path("../lib",__FILE__))
@@ -60,4 +60,19 @@ module Beetle
60
60
  assert defined?(Hiredis)
61
61
  end
62
62
  end
63
+
64
+ class BrokenRedisShutdownTest < Test::Unit::TestCase
65
+ def setup
66
+ @r = Redis.new(:host => "localhost", :port => 6390)
67
+ end
68
+
69
+ # if this test fails after upgrading redis, we can probably remove
70
+ # our custom shutdown method from redis_ext.rb
71
+ test "redis shutdown implementation is broken" do
72
+ @r.client.expects(:call_without_reply).with([:shutdown]).once
73
+ @r.client.expects(:disconnect).never
74
+ @r.broken_shutdown
75
+ end
76
+ end
77
+
63
78
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beetle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0.rc.5
4
+ version: 0.3.0.rc.6
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -13,11 +13,12 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2011-10-21 00:00:00.000000000Z
16
+ date: 2011-10-22 00:00:00.000000000 +02:00
17
+ default_executable: beetle
17
18
  dependencies:
18
19
  - !ruby/object:Gem::Dependency
19
20
  name: uuid4r
20
- requirement: &2156300280 !ruby/object:Gem::Requirement
21
+ requirement: &2151634120 !ruby/object:Gem::Requirement
21
22
  none: false
22
23
  requirements:
23
24
  - - ! '>='
@@ -25,10 +26,10 @@ dependencies:
25
26
  version: 0.1.2
26
27
  type: :runtime
27
28
  prerelease: false
28
- version_requirements: *2156300280
29
+ version_requirements: *2151634120
29
30
  - !ruby/object:Gem::Dependency
30
31
  name: bunny
31
- requirement: &2156298900 !ruby/object:Gem::Requirement
32
+ requirement: &2151633580 !ruby/object:Gem::Requirement
32
33
  none: false
33
34
  requirements:
34
35
  - - =
@@ -36,21 +37,21 @@ dependencies:
36
37
  version: 0.7.8
37
38
  type: :runtime
38
39
  prerelease: false
39
- version_requirements: *2156298900
40
+ version_requirements: *2151633580
40
41
  - !ruby/object:Gem::Dependency
41
42
  name: redis
42
- requirement: &2156289280 !ruby/object:Gem::Requirement
43
+ requirement: &2151633100 !ruby/object:Gem::Requirement
43
44
  none: false
44
45
  requirements:
45
46
  - - =
46
47
  - !ruby/object:Gem::Version
47
- version: 2.2.0
48
+ version: 2.2.2
48
49
  type: :runtime
49
50
  prerelease: false
50
- version_requirements: *2156289280
51
+ version_requirements: *2151633100
51
52
  - !ruby/object:Gem::Dependency
52
53
  name: hiredis
53
- requirement: &2156282480 !ruby/object:Gem::Requirement
54
+ requirement: &2151632560 !ruby/object:Gem::Requirement
54
55
  none: false
55
56
  requirements:
56
57
  - - =
@@ -58,10 +59,10 @@ dependencies:
58
59
  version: 0.3.2
59
60
  type: :runtime
60
61
  prerelease: false
61
- version_requirements: *2156282480
62
+ version_requirements: *2151632560
62
63
  - !ruby/object:Gem::Dependency
63
64
  name: amq-client
64
- requirement: &2156280400 !ruby/object:Gem::Requirement
65
+ requirement: &2151632020 !ruby/object:Gem::Requirement
65
66
  none: false
66
67
  requirements:
67
68
  - - =
@@ -69,10 +70,10 @@ dependencies:
69
70
  version: 0.8.3
70
71
  type: :runtime
71
72
  prerelease: false
72
- version_requirements: *2156280400
73
+ version_requirements: *2151632020
73
74
  - !ruby/object:Gem::Dependency
74
75
  name: amq-protocol
75
- requirement: &2156276300 !ruby/object:Gem::Requirement
76
+ requirement: &2151631540 !ruby/object:Gem::Requirement
76
77
  none: false
77
78
  requirements:
78
79
  - - =
@@ -80,10 +81,10 @@ dependencies:
80
81
  version: 0.8.1
81
82
  type: :runtime
82
83
  prerelease: false
83
- version_requirements: *2156276300
84
+ version_requirements: *2151631540
84
85
  - !ruby/object:Gem::Dependency
85
86
  name: amqp
86
- requirement: &2156268980 !ruby/object:Gem::Requirement
87
+ requirement: &2151631000 !ruby/object:Gem::Requirement
87
88
  none: false
88
89
  requirements:
89
90
  - - =
@@ -91,10 +92,10 @@ dependencies:
91
92
  version: 0.8.0
92
93
  type: :runtime
93
94
  prerelease: false
94
- version_requirements: *2156268980
95
+ version_requirements: *2151631000
95
96
  - !ruby/object:Gem::Dependency
96
97
  name: activesupport
97
- requirement: &2156253980 !ruby/object:Gem::Requirement
98
+ requirement: &2151630480 !ruby/object:Gem::Requirement
98
99
  none: false
99
100
  requirements:
100
101
  - - ! '>='
@@ -102,10 +103,10 @@ dependencies:
102
103
  version: 2.3.4
103
104
  type: :runtime
104
105
  prerelease: false
105
- version_requirements: *2156253980
106
+ version_requirements: *2151630480
106
107
  - !ruby/object:Gem::Dependency
107
108
  name: daemons
108
- requirement: &2156249880 !ruby/object:Gem::Requirement
109
+ requirement: &2151629940 !ruby/object:Gem::Requirement
109
110
  none: false
110
111
  requirements:
111
112
  - - ! '>='
@@ -113,10 +114,10 @@ dependencies:
113
114
  version: 1.0.10
114
115
  type: :runtime
115
116
  prerelease: false
116
- version_requirements: *2156249880
117
+ version_requirements: *2151629940
117
118
  - !ruby/object:Gem::Dependency
118
119
  name: rake
119
- requirement: &2156225200 !ruby/object:Gem::Requirement
120
+ requirement: &2151629420 !ruby/object:Gem::Requirement
120
121
  none: false
121
122
  requirements:
122
123
  - - ! '>='
@@ -124,10 +125,10 @@ dependencies:
124
125
  version: 0.8.7
125
126
  type: :development
126
127
  prerelease: false
127
- version_requirements: *2156225200
128
+ version_requirements: *2151629420
128
129
  - !ruby/object:Gem::Dependency
129
130
  name: mocha
130
- requirement: &2156214080 !ruby/object:Gem::Requirement
131
+ requirement: &2151628940 !ruby/object:Gem::Requirement
131
132
  none: false
132
133
  requirements:
133
134
  - - ! '>='
@@ -135,10 +136,10 @@ dependencies:
135
136
  version: '0'
136
137
  type: :development
137
138
  prerelease: false
138
- version_requirements: *2156214080
139
+ version_requirements: *2151628940
139
140
  - !ruby/object:Gem::Dependency
140
141
  name: rcov
141
- requirement: &2156209740 !ruby/object:Gem::Requirement
142
+ requirement: &2151628460 !ruby/object:Gem::Requirement
142
143
  none: false
143
144
  requirements:
144
145
  - - ! '>='
@@ -146,32 +147,10 @@ dependencies:
146
147
  version: '0'
147
148
  type: :development
148
149
  prerelease: false
149
- version_requirements: *2156209740
150
- - !ruby/object:Gem::Dependency
151
- name: redgreen
152
- requirement: &2156172620 !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - ! '>='
156
- - !ruby/object:Gem::Version
157
- version: '0'
158
- type: :development
159
- prerelease: false
160
- version_requirements: *2156172620
161
- - !ruby/object:Gem::Dependency
162
- name: wirble
163
- requirement: &2156171940 !ruby/object:Gem::Requirement
164
- none: false
165
- requirements:
166
- - - ! '>='
167
- - !ruby/object:Gem::Version
168
- version: '0'
169
- type: :development
170
- prerelease: false
171
- version_requirements: *2156171940
150
+ version_requirements: *2151628460
172
151
  - !ruby/object:Gem::Dependency
173
152
  name: cucumber
174
- requirement: &2156171120 !ruby/object:Gem::Requirement
153
+ requirement: &2151627860 !ruby/object:Gem::Requirement
175
154
  none: false
176
155
  requirements:
177
156
  - - ! '>='
@@ -179,10 +158,10 @@ dependencies:
179
158
  version: 0.7.2
180
159
  type: :development
181
160
  prerelease: false
182
- version_requirements: *2156171120
161
+ version_requirements: *2151627860
183
162
  - !ruby/object:Gem::Dependency
184
163
  name: daemon_controller
185
- requirement: &2156167680 !ruby/object:Gem::Requirement
164
+ requirement: &2151627360 !ruby/object:Gem::Requirement
186
165
  none: false
187
166
  requirements:
188
167
  - - ! '>='
@@ -190,7 +169,7 @@ dependencies:
190
169
  version: '0'
191
170
  type: :development
192
171
  prerelease: false
193
- version_requirements: *2156167680
172
+ version_requirements: *2151627360
194
173
  description: A highly available, reliable messaging infrastructure
195
174
  email: opensource@xing.com
196
175
  executables:
@@ -245,6 +224,7 @@ files:
245
224
  - features/support/test_daemons/redis_configuration_client.rb
246
225
  - features/support/test_daemons/redis_configuration_server.rb
247
226
  - script/console
227
+ - script/console~
248
228
  - script/start_rabbit
249
229
  - beetle.gemspec
250
230
  - Rakefile
@@ -271,6 +251,7 @@ files:
271
251
  - test/colorized_test_output.rb
272
252
  - test/test_helper.rb
273
253
  - bin/beetle
254
+ has_rdoc: true
274
255
  homepage: http://xing.github.com/beetle/
275
256
  licenses: []
276
257
  post_install_message: ! " *********************************************************************************************\n\n
@@ -295,7 +276,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
295
276
  version: 1.3.7
296
277
  requirements: []
297
278
  rubyforge_project:
298
- rubygems_version: 1.8.10
279
+ rubygems_version: 1.6.2
299
280
  signing_key:
300
281
  specification_version: 3
301
282
  summary: High Availability AMQP Messaging with Redundant Queues