influxdata / influxdata/influxdb-client-java
Timer task is disposed due to `restartTimerOnMaxSize` leading to data loss
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Java
- Sterne
- 477
- Forks
- 129
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
__Steps to reproduce:__
1. Submit data fast enough,
2. If timer is running while buffer is full ,timer task will be disposed.
We can see it in :
https://github.com/influxdata/influxdb-client-java/blob/d641b1163986f90dbcc2d1275fceff698636882d/client/src/main/java/com/influxdb/client/internal/flowable/FlowableBufferTimedFlushable.java#L156-L196
This bug will lead to #793. I think setting `restartTimerOnMaxSize` to false will be a good choice. Or we can add a flag when task is running and do not dispose the timer task.
__Specifications:__
- Client Version: 6.7.0
- InfluxDB Version: 2.6.1
- JDK Version: 11
- Platform: linux
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie mit client/src/main/java/com/influxdb/client/internal/flowable/FlowableBufferTimedFlushable.java an den referenzierten Zeilen und reproduzieren Sie dann den Fall, indem Sie schnell Daten übermitteln, während der Puffer voll ist. Bestätigen Sie, dass die Timer-Aufgabe während eines aktiven Flush-Vorgangs nicht verworfen wird und dass das daraus resultierende Verhalten nicht mehr zu Datenverlust oder Issue #793 führt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- backend
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 40/100