HeartbeatPlugin ignores heartbeat intervals with a seconds component under 30 (uses TimeSpan.Seconds instead of TotalSeconds)
Maintainer antworten meist innerhalb von 6 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 1/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 88/100
Rechercherichtung
Lies src/Exceptionless/Plugins/Default/100_HeartbeatPlugin.cs, besonders die Intervallprüfung in den Zeilen 16–18; das Issue weist auf die fehlerhafte Prüfung mit TimeSpan.Seconds hin und schlägt vor, die Gesamtzahl der Sekunden oder einen TimeSpan zu vergleichen. Prüfe die Weitergabe von UseSessions in src/Exceptionless/Extensions/ExceptionlessConfigurationExtensions.cs und füge einen Test für Intervalle unter und über 30 Sekunden hinzu oder finde einen solchen Test. Als abgeschlossen gilt die Arbeit, wenn Intervalle von 30 Sekunden oder mehr beibehalten werden und kürzere Intervalle den Standardwert von einer Minute verwenden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
In Exceptionless 6.2.0 (core Exceptionless package), HeartbeatPlugin validates the configured interval with interval.Value.Seconds >= 30. TimeSpan.Seconds is only the 0-59 seconds component, so most whole-minute intervals are rejected and silently replaced with the 1 minute default.
Where
- https://github.com/exceptionless/Exceptionless.Net/blob/5792f00d175f94a35fe0559c8e9999234a8163be/src/Exceptionless/Plugins/Default/100_HeartbeatPlugin.cs#L16-L18
- https://github.com/exceptionless/Exceptionless.Net/blob/5792f00d175f94a35fe0559c8e9999234a8163be/src/Exceptionless/Extensions/ExceptionlessConfigurationExtensions.cs#L111-L121 (
UseSessions(heartbeatInterval: ...)passes the value through)
What happens
| Requested interval | .Seconds |
Interval used |
|---|---|---|
TimeSpan.FromSeconds(45) |
45 | 45 seconds |
TimeSpan.FromSeconds(90) |
30 | 90 seconds |
TimeSpan.FromSeconds(75) |
15 | 1 minute |
TimeSpan.FromMinutes(2) |
0 | 1 minute |
TimeSpan.FromMinutes(5) |
0 | 1 minute |
Any interval that is a whole number of minutes falls back to 1 minute, so config.UseSessions(heartbeatInterval: TimeSpan.FromMinutes(5)) sends heartbeats every minute instead of every 5 minutes.
Expected
Intervals of 30 seconds or more are honored; only intervals under 30 seconds fall back to the default.
With the 6.2.0 package, new HeartbeatPlugin(TimeSpan.FromMinutes(5)) stores an interval of 00:01:00, while new HeartbeatPlugin(TimeSpan.FromSeconds(90)) stores 00:01:30.
Steps to reproduce
config.UseSessions(heartbeatInterval: TimeSpan.FromMinutes(5));- Set a user identity and submit an event to start a session.
- Session heartbeat events are sent every minute, not every 5 minutes.
Suggested fix
Use interval.Value.TotalSeconds >= 30 (or interval.Value >= TimeSpan.FromSeconds(30)).
- Vorherrschende Sprache
- C#
- Sterne
- 573
- Forks
- 143
- Ø Merge
- 5 T. 9 Std.
- Gemergte PRs (30 T.)
- 1
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus exceptionless/Exceptionless.Net
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
exceptionless/Exceptionless.Net#391 ·
Maintainer antworten meist innerhalb von 6 Tagen
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
exceptionless/Exceptionless.Net#390 ·
Maintainer antworten meist innerhalb von 6 Tagen
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
exceptionless/Exceptionless.Net#386 ·
Maintainer antworten meist innerhalb von 6 Tagen
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 35/100
exceptionless/Exceptionless.Net#389 ·
Maintainer antworten meist innerhalb von 6 Tagen
-
bug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 72/100
exceptionless/Exceptionless.Net#388 ·
Maintainer antworten meist innerhalb von 6 Tagen
Alle Issues in exceptionless/Exceptionless.Net
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
area: core priority: low type: bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
RicoSuter/Namotion.Interceptor#863 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area-cli
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
0.3.0
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
Maintainer antworten meist innerhalb von 2 Tagen