Commit d4c440b
authored
fix(pubsub): fix messages delivered multiple times despite a long ACK deadline (#9525)
* fix(pubsub): lease-manage all received messages
This is to prevent the messages that are put on hold from unnecessarily
timing out too soon, causing the backend to re-send them.
* Exclude on hold messages from load calculation
Even the messages received that exceed the maximum load (as defined by
flow control) must be lease-mananged to avoid unnecessary ACK deadline
expirations, but since they are not dispatched (yet) to user callbacks,
they should not contribute to the overall load.
Without this change, the total load could be overestimated, resulting
in an indefinitely paused message stream, and messages not being
dispatched to callbacks when they should be.
* Use histogram to set default stream ACK deadline
With all the messages lease-managed (even those on hold), there is no
need to have a fixed default value.
* Add warning if internal bytes count is negative
This should not happen, but if it does, it is a bug in the
StreamingPullManager logic, and we should know about it.1 parent 0a9665e commit d4c440b
File tree
3 files changed
+112
-80
lines changed- pubsub
- google/cloud/pubsub_v1/subscriber/_protocol
- tests
- unit/pubsub_v1/subscriber
3 files changed
+112
-80
lines changedLines changed: 55 additions & 46 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | 54 | | |
62 | 55 | | |
63 | 56 | | |
| |||
135 | 128 | | |
136 | 129 | | |
137 | 130 | | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
138 | 134 | | |
139 | 135 | | |
140 | | - | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
141 | 140 | | |
142 | 141 | | |
143 | 142 | | |
| |||
218 | 217 | | |
219 | 218 | | |
220 | 219 | | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
221 | 226 | | |
222 | 227 | | |
223 | | - | |
224 | | - | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
225 | 232 | | |
226 | 233 | | |
227 | 234 | | |
| |||
292 | 299 | | |
293 | 300 | | |
294 | 301 | | |
295 | | - | |
296 | | - | |
297 | | - | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
298 | 310 | | |
299 | | - | |
300 | | - | |
| 311 | + | |
| 312 | + | |
301 | 313 | | |
| 314 | + | |
302 | 315 | | |
303 | 316 | | |
304 | 317 | | |
| |||
392 | 405 | | |
393 | 406 | | |
394 | 407 | | |
395 | | - | |
396 | | - | |
397 | | - | |
398 | | - | |
399 | | - | |
400 | | - | |
401 | | - | |
402 | | - | |
403 | | - | |
404 | | - | |
405 | | - | |
| 408 | + | |
406 | 409 | | |
407 | 410 | | |
408 | 411 | | |
| |||
540 | 543 | | |
541 | 544 | | |
542 | 545 | | |
543 | | - | |
| 546 | + | |
544 | 547 | | |
545 | 548 | | |
| 549 | + | |
546 | 550 | | |
547 | 551 | | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
548 | 561 | | |
549 | 562 | | |
550 | 563 | | |
551 | 564 | | |
552 | 565 | | |
553 | 566 | | |
554 | | - | |
555 | | - | |
556 | | - | |
557 | | - | |
558 | | - | |
559 | | - | |
560 | | - | |
561 | | - | |
562 | | - | |
563 | | - | |
564 | | - | |
565 | | - | |
566 | | - | |
567 | | - | |
568 | | - | |
569 | | - | |
570 | | - | |
571 | | - | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
572 | 580 | | |
573 | 581 | | |
574 | | - | |
| 582 | + | |
575 | 583 | | |
576 | 584 | | |
| 585 | + | |
577 | 586 | | |
578 | 587 | | |
579 | 588 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
382 | 382 | | |
383 | 383 | | |
384 | 384 | | |
385 | | - | |
386 | | - | |
387 | | - | |
388 | | - | |
389 | 385 | | |
390 | 386 | | |
391 | 387 | | |
| |||
400 | 396 | | |
401 | 397 | | |
402 | 398 | | |
403 | | - | |
| 399 | + | |
404 | 400 | | |
405 | 401 | | |
406 | 402 | | |
407 | 403 | | |
408 | 404 | | |
409 | 405 | | |
410 | 406 | | |
411 | | - | |
| 407 | + | |
412 | 408 | | |
413 | 409 | | |
414 | 410 | | |
415 | 411 | | |
416 | 412 | | |
417 | 413 | | |
418 | 414 | | |
419 | | - | |
| 415 | + | |
420 | 416 | | |
421 | | - | |
422 | | - | |
| 417 | + | |
| 418 | + | |
423 | 419 | | |
424 | 420 | | |
425 | | - | |
| 421 | + | |
426 | 422 | | |
427 | 423 | | |
428 | 424 | | |
| |||
Lines changed: 51 additions & 24 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
233 | 233 | | |
234 | 234 | | |
235 | 235 | | |
236 | | - | |
237 | | - | |
238 | | - | |
239 | | - | |
240 | 236 | | |
241 | 237 | | |
242 | 238 | | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
243 | 245 | | |
244 | 246 | | |
245 | 247 | | |
| |||
254 | 256 | | |
255 | 257 | | |
256 | 258 | | |
257 | | - | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
258 | 262 | | |
259 | | - | |
260 | | - | |
| 263 | + | |
261 | 264 | | |
262 | 265 | | |
263 | | - | |
264 | | - | |
265 | | - | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
266 | 269 | | |
267 | 270 | | |
268 | 271 | | |
| 272 | + | |
269 | 273 | | |
270 | 274 | | |
271 | 275 | | |
| |||
274 | 278 | | |
275 | 279 | | |
276 | 280 | | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
282 | | - | |
283 | | - | |
284 | 281 | | |
285 | 282 | | |
286 | 283 | | |
| |||
289 | 286 | | |
290 | 287 | | |
291 | 288 | | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
292 | 317 | | |
293 | 318 | | |
294 | 319 | | |
| |||
404 | 429 | | |
405 | 430 | | |
406 | 431 | | |
407 | | - | |
408 | | - | |
409 | 432 | | |
410 | 433 | | |
411 | 434 | | |
| |||
435 | 458 | | |
436 | 459 | | |
437 | 460 | | |
438 | | - | |
| 461 | + | |
439 | 462 | | |
440 | 463 | | |
441 | 464 | | |
| |||
668 | 691 | | |
669 | 692 | | |
670 | 693 | | |
671 | | - | |
672 | | - | |
| 694 | + | |
| 695 | + | |
673 | 696 | | |
674 | | - | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
675 | 702 | | |
676 | 703 | | |
677 | | - | |
| 704 | + | |
678 | 705 | | |
679 | 706 | | |
680 | 707 | | |
| |||
0 commit comments