@@ -155,51 +155,47 @@ def get_project_config():
155
155
mini_sentry .clear_test_failures ()
156
156
157
157
158
- def test_query_retry_maxed_out (mini_sentry , relay_with_processing , events_consumer ):
158
+ def test_query_retry_maxed_out (mini_sentry , relay ):
159
159
"""
160
160
Assert that a query is not retried an infinite amount of times.
161
-
162
- This is not specific to processing or store, but here we have the outcomes
163
- consumer which we can use to assert that an event has been dropped.
164
161
"""
165
162
request_count = 0
166
163
167
- events_consumer = events_consumer ()
168
-
169
164
original_get_project_config = mini_sentry .app .view_functions ["get_project_config" ]
170
165
171
166
@mini_sentry .app .endpoint ("get_project_config" )
172
167
def get_project_config ():
173
168
if flask_request .json .get ("global" ) is True :
174
169
return original_get_project_config ()
175
-
176
170
nonlocal request_count
177
171
request_count += 1
178
172
print ("RETRY" , request_count )
179
173
return "no" , 500
180
174
181
175
RETRIES = 1
182
176
query_timeout = 0.5 # Initial grace period
183
-
184
177
# Relay's exponential backoff: INITIAL_INTERVAL = 1s; DEFAULT_MULTIPLIER = 1.5;
185
178
for retry in range (RETRIES ): # 1 retry
186
179
query_timeout += 1 * 1.5 ** (retry + 1 )
187
180
188
- relay = relay_with_processing (
189
- {"limits" : {"query_timeout" : math .ceil (query_timeout )}}
190
- )
181
+ relay = relay (mini_sentry , {"limits" : {"query_timeout" : math .ceil (query_timeout )}})
191
182
192
183
# No error messages yet
193
184
assert mini_sentry .test_failures .empty ()
194
185
195
186
try :
196
187
relay .send_event (42 )
197
188
time .sleep (query_timeout )
198
-
199
189
assert request_count == 1 + RETRIES
200
190
assert {str (e ) for _ , e in mini_sentry .current_test_failures ()} == {
201
191
"Relay sent us event: error fetching project states: upstream request returned error 500 Internal Server Error: no error details" ,
202
192
}
193
+
194
+ time .sleep (1 ) # Wait for project to be cached
195
+
196
+ # Relay still accepts events for this project
197
+ next_response = relay .send_event (42 )
198
+ assert "id" in next_response
203
199
finally :
204
200
mini_sentry .clear_test_failures ()
205
201
0 commit comments