Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

HeartbeatPlugin ignores heartbeat intervals with a seconds component under 30 (uses TimeSpan.Seconds instead of TotalSeconds)

オープン 初心者向け
#387 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 6 日以内に返信

まだ誰も着手していません。

評価

難易度
1/5
見積もり時間
1〜3時間
初心者へのやさしさ
88/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
csharp
領域
backend

調査の方向性

src/Exceptionless/Plugins/Default/100_HeartbeatPlugin.csを読み、特に16~18行目の間隔検証を確認してください。issueでは、誤ったTimeSpan.Secondsのチェックを指摘し、合計秒数またはTimeSpanを比較する方法を提案しています。src/Exceptionless/Extensions/ExceptionlessConfigurationExtensions.csでのUseSessionsの受け渡しを確認し、30秒未満と30秒を超える間隔のテストを追加するか、既存のテストを探してください。30秒以上の間隔が保持され、短い間隔には1分の既定値が使われることをもって完了とします。

索引モデルが issue の本文から書いたものです。

説明

bug

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

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

  1. config.UseSessions(heartbeatInterval: TimeSpan.FromMinutes(5));
  2. Set a user identity and submit an event to start a session.
  3. 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

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

exceptionless/Exceptionless.Net のほかの issue

exceptionless/Exceptionless.Net の issue をすべて見る

似ている issue

C# の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。