Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Isolate webhook telemetry sampling tests from concurrent tracing providers

Abierto
#2,667 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
30/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
csharp

Línea de trabajo

Start with WebHooksJobTests.ProcessQueueEntryAsync_GeneralWebHook_DeliversWithSafeTelemetry in tests/Exceptionless.Tests and run the filtered command from the issue to reproduce the sampled and unsampled cases. Then check which other tests register HTTP tracing providers (Program/ApmExtensions, AssistantDiagnosticsTests) and how fixtures and collections isolate them. Done when both sampler cases pass repeatedly with retries disabled, the full API shard passes, and the span-count assertions are unchanged.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

The required API check for #2629 failed in the unchanged, already-merged WebHooksJobTests.ProcessQueueEntryAsync_GeneralWebHook_DeliversWithSafeTelemetry(sampled: false): expected 0 client spans, observed 5. Failing shard. The test file is identical to main at 0f2bda22b.

Local reproduction on .NET/ASP.NET Core 10.0.12 with the repository's OpenTelemetry 1.19.x packages:

  • Both isolated theory cases pass without retries (2/2).
  • Add the following temporary provider at the start of that test's Arrange section, before its existing provider. The unsampled case fails deterministically with expected 0, actual 5; the sampled case passes. All earlier request-header/cookie assertions still pass.
using var competingTracing = Sdk.CreateTracerProviderBuilder()
    .SetSampler(new AlwaysOnSampler())
    .AddHttpClientInstrumentation()
    .Build();
dotnet build tests/Exceptionless.Tests --no-restore
dotnet tests/Exceptionless.Tests/bin/Debug/net10.0/Exceptionless.Tests.dll --filter-method '*GeneralWebHook*' --minimum-expected-tests 1

This establishes that a competing process-wide provider is sufficient to produce the CI signature; it does not identify which hosted test/provider was active at that instant. Program/ApmExtensions and AssistantDiagnosticsTests register HTTP tracing providers, and the CI log shows API hosts starting around the failure.

Implement the smallest deterministic isolation of sampling/provider lifetimes (consider an isolated nonparallel collection or process boundary after checking fixture disposal). Preserve all span counts, URL-redaction, cookie, redirect, baggage, and propagation assertions. Do not add sleeps, acceptance retries, or skip/relax the flaky-test gate. Verify both sampler cases repeatedly with retries disabled and run the affected complete API shard. Keep any production webhook behavior change separately justified.

The temporary provider was removed from #2629; the forwarding PR does not change this test. A later green rerun alone does not close this issue.

Lenguaje dominante
C#
Estrellas
2.5k
Forks
508
Merge medio
2 d 17 h
PR fusionados (30 d)
40

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de exceptionless/Exceptionless

Todos los issues de exceptionless/Exceptionless

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.