HeartbeatPlugin ignores heartbeat intervals with a seconds component under 30 (uses TimeSpan.Seconds instead of TotalSeconds)
メンテナーはふだん 6 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
src/Exceptionless/Plugins/Default/100_HeartbeatPlugin.csを読み、特に16~18行目の間隔検証を確認してください。issueでは、誤ったTimeSpan.Secondsのチェックを指摘し、合計秒数またはTimeSpanを比較する方法を提案しています。src/Exceptionless/Extensions/ExceptionlessConfigurationExtensions.csでのUseSessionsの受け渡しを確認し、30秒未満と30秒を超える間隔のテストを追加するか、既存のテストを探してください。30秒以上の間隔が保持され、短い間隔には1分の既定値が使われることをもって完了とします。
索引モデルが issue の本文から書いたものです。
説明
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)).
- 主要言語
- C#
- スター
- 573
- フォーク
- 143
- 平均マージ
- 5日 9時間
- マージ済み PR(30日)
- 1
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
exceptionless/Exceptionless.Net のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
exceptionless/Exceptionless.Net#391 ·
メンテナーはふだん 6 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
exceptionless/Exceptionless.Net#390 ·
メンテナーはふだん 6 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
exceptionless/Exceptionless.Net#386 ·
メンテナーはふだん 6 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 35/100
exceptionless/Exceptionless.Net#389 ·
メンテナーはふだん 6 日以内に返信
-
bug
難易度 3/5 1〜2日 初心者へのやさしさ 72/100
exceptionless/Exceptionless.Net#388 ·
メンテナーはふだん 6 日以内に返信
exceptionless/Exceptionless.Net の issue をすべて見る
似ている issue
-
area: core priority: low type: bug
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
RicoSuter/Namotion.Interceptor#863 ·
メンテナーはふだん 1 日以内に返信
-
area-cli
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
0.3.0
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
メンテナーはふだん 2 日以内に返信
-
[Bug] Decompression leaves metadata that makes recompression throw and corrupt the content typeオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
BrighterCommand/Brighter#4683 ·
メンテナーはふだん 1 日以内に返信