]> juplo.de Git - demos/kafka/training/commitdiff
Sporadische Timing-Fehler in dem Test ausgeschlossen
authorKai Moritz <kai@juplo.de>
Wed, 11 May 2022 16:25:36 +0000 (18:25 +0200)
committerKai Moritz <kai@juplo.de>
Sun, 5 Jun 2022 12:14:46 +0000 (14:14 +0200)
* Ohne die Verzögerung des Pollings von Awaitility schlug der neue
  Test manchmal fehl, wenn der letzte Fehler, der auf die DLQ verschoben
  werden musste, genau auf dem letzten verarbeiteten Datensatz aufgetreten
  ist.
* Der Timeing-Fehler kann gezielt ausgelöst werden, wenn das Poll-Intervall
  quasi auf Null (1 Nanosekunde) gesetzt wird.
* Das zurückhaltendere Polling führt dazu, dass der Timing-Fehler im Test
  nicht mehr auftritt.
* _Schluss:_ Das Tooling war durch das penetrannte Polling von Awaitility
  einfach so überlastet, dass der Offset-Commit nicht schnell genug
  angekommen ist.

src/test/java/de/juplo/kafka/ApplicationTests.java

index 43a4f6124d8fa931b0791149f84227959352ad2d..7ec73f353278aa29f8f76ddf7b1f3eeac7896422 100644 (file)
@@ -153,6 +153,7 @@ class ApplicationTests
 
                await("Offsets committed")
                                .atMost(Duration.ofSeconds(10))
+                               .pollDelay(Duration.ofSeconds(1))
                                .untilAsserted(() ->
                                {
                                        checkSeenOffsetsForProgress();