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 43a4f61..7ec73f3 100644 (file)
@@ -153,6 +153,7 @@ class ApplicationTests
 
                await("Offsets committed")
                                .atMost(Duration.ofSeconds(10))
+                               .pollDelay(Duration.ofSeconds(1))
                                .untilAsserted(() ->
                                {
                                        checkSeenOffsetsForProgress();