-
Notifications
You must be signed in to change notification settings - Fork 24
Description
Created with Support of Github Copilot...
I am running Traefik v3.6.7 with the latest version of traefikoidc (likely > v0.8.13) as a plugin in a Kubernetes cluster. I am using Redis (DragonflyDB) as the cache backend.
After a short period of operation or under load, the plugin crashes causing a panic that is caught by Traefik's recovery middleware. The error indicates a reflection issue on a zero Value, which typically points to a compatibility problem between the code (specifically the sync.Pool or struct initialization in the recent caching refactors) and the Yaegi interpreter used by Traefik.
Environment:
Traefik Version: v3.6.7 (built on 2026-01-14)
Plugin Version: Latest (v0.8.20)
Cache Backend: Redis (DragonflyDB v1.36.0)
Deployment: Kubernetes
Logs / Stack Trace:
2026-01-19T10:31:12+01:00 ERR plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/internal/cache/backends/redis_pool.go:243:5: panic: github.com/lukaszraczylo/traefikoidc/internal/cache/backends.Do(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc
...
2026-01-19T10:31:12+01:00 ERR Recovered from panic in HTTP handler [IP-REDACTED]: reflect: call of reflect.Value.Field on zero Value middlewareName=traefik-internal-recovery middlewareType=Recovery
...
panic({0x60ef560?, 0xc007b41518?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
Click to expand full stack trace
2026-01-19T10:28:35+01:00 Traefik can reject some encoded characters in the request path.When your backend is not fully compliant with [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986),it is recommended to set these options to `false` to avoid split-view situation.Refer to the documentation for more details: https://doc.traefik.io/traefik/v3.6/migrate/v3/#encoded-characters-configuration-default-values
2026-01-19T10:28:35+01:00 Traefik version 3.6.7 built on 2026-01-14T14:04:03Z version=3.6.7
2026-01-19T10:28:35+01:00 Version check is enabled.
2026-01-19T10:28:35+01:00 Traefik checks for new releases to notify you if your version is out of date.
2026-01-19T10:28:35+01:00 It also collects usage data during this process.
2026-01-19T10:28:35+01:00 Check the documentation to get more info: https://doc.traefik.io/traefik/contributing/data-collection/
2026-01-19T10:28:35+01:00
Stats collection is disabled.
Help us improve Traefik by turning this feature on :)
More details on: https://doc.traefik.io/traefik/contributing/data-collection/
2026-01-19T10:28:35+01:00 Enabling ProxyProtocol for trusted IPs [***] entryPointName=web
2026-01-19T10:28:35+01:00 Enabling ProxyProtocol for trusted IPs [***] entryPointName=websecure
2026-01-19T10:28:35+01:00 Loading plugins... plugins=["traefik-xff-to-xrealip","traefikoidc"]
2026-01-19T10:28:36+01:00 Plugins loaded. plugins=["traefik-xff-to-xrealip","traefikoidc"]
2026-01-19T10:28:36+01:00 Starting provider aggregator *aggregator.ProviderAggregator
2026-01-19T10:28:36+01:00 Starting provider *file.Provider
2026-01-19T10:28:36+01:00 Starting provider *traefik.Provider
2026-01-19T10:28:36+01:00 Starting provider *ingress.Provider
2026-01-19T10:28:36+01:00 ingress label selector is: "" providerName=kubernetes
2026-01-19T10:28:36+01:00 Creating in-cluster Provider client providerName=kubernetes
2026-01-19T10:28:36+01:00 Starting provider *acme.ChallengeTLSALPN
2026-01-19T10:28:36+01:00 Starting provider *crd.Provider
2026-01-19T10:28:36+01:00 label selector is: "" providerName=kubernetescrd
2026-01-19T10:28:36+01:00 Creating in-cluster Provider client providerName=kubernetescrd
2026-01-19T10:28:36+01:00 Cross-namespace reference between IngressRoutes and resources is enabled, please ensure that this is expected (see AllowCrossNamespace option) providerName=kubernetescrd
2026-01-19T10:28:36+01:00 ExternalName service loading is enabled, please ensure that this is expected (see AllowExternalNameServices option) providerName=kubernetescrd
2026-01-19T10:28:36+01:00 ExternalName service loading is enabled, please ensure that this is expected (see AllowExternalNameServices option) providerName=kubernetes
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Initializing cache manager with Redis backend: dragonflydb.traefik.svc.cluster.local:6379
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Redis backend wrapped with health checker
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Using Redis-only cache backend
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Cache manager initialized with redis backend configuration
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 UniversalCacheManager: Started consolidated cleanup routine for all caches
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Fetching provider metadata from: https://***/adfs/.well-known/openid-configuration
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Fetching provider metadata from: https://***/adfs/.well-known/openid-configuration
2026-01-19T10:28:36+01:00 No domain found in rule Path(`/robots.txt`), the TLS options applied for this router will depend on the SNI of each request entryPointName=websecure routerName=websecure-traefik-robots-55b6322d5635073e6fe7@kubernetescrd
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Fetching provider metadata from: https://***/adfs/.well-known/openid-configuration
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Fetching provider metadata from: https://***/adfs/.well-known/openid-configuration
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Fetching provider metadata from: https://***/adfs/.well-known/openid-configuration
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Fetching provider metadata from: https://***/adfs/.well-known/openid-configuration
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Fetching provider metadata from: https://***/adfs/.well-known/openid-configuration
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Fetching provider metadata from: https://***/adfs/.well-known/openid-configuration
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Fetching provider metadata from: https://***/adfs/.well-known/openid-configuration
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Fetching provider metadata from: https://***/adfs/.well-known/openid-configuration
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Fetching provider metadata from: https://***/adfs/.well-known/openid-configuration
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Fetching provider metadata from: https://***/adfs/.well-known/openid-configuration
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Fetching provider metadata from: https://***/adfs/.well-known/openid-configuration
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Fetching provider metadata from: https://***/adfs/.well-known/openid-configuration
INFO: TraefikOidcPlugin: 2026/01/19 10:28:36 Fetching provider metadata from: https://***/adfs/.well-known/openid-configuration
INFO: TraefikOidcPlugin: 2026/01/19 10:30:27 ScopeFilter: Filtered unsupported scopes for https://***/adfs: [offline_access] (not in provider's scopes_supported)
2026-01-19T10:31:12+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/internal/cache/backends/redis_pool.go:243:5: panic: github.com/lukaszraczylo/traefikoidc/internal/cache/backends.Do(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:12+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/internal/cache/backends/redis.go:134:16: panic: github.com/lukaszraczylo/traefikoidc/internal/cache/backends.Get.func(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:12+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/internal/cache/backends/redis.go:350:2: panic: github.com/lukaszraczylo/traefikoidc/internal/cache/backends.executeWithRetry(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:12+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/internal/cache/backends/redis.go:122:5: panic: github.com/lukaszraczylo/traefikoidc/internal/cache/backends.Get(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:12+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/internal/cache/resilience/health_check_backend.go:62:29: panic: github.com/lukaszraczylo/traefikoidc/internal/cache/resilience.Get(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:12+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/universal_cache.go:318:5: panic: github.com/lukaszraczylo/traefikoidc.Get(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:12+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/cache_manager.go:144:9: panic: github.com/lukaszraczylo/traefikoidc.Get(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:12+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/token_manager.go:31:5: panic: github.com/lukaszraczylo/traefikoidc.VerifyToken(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:12+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/token_manager.go:150:9: panic: github.com/lukaszraczylo/traefikoidc.verifyToken(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:12+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/token_manager.go:817:19: panic: github.com/lukaszraczylo/traefikoidc.validateStandardTokens(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:12+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/auth_flow.go:316:5: panic: github.com/lukaszraczylo/traefikoidc.isUserAuthenticated(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:12+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/middleware.go:30:2: panic: github.com/lukaszraczylo/traefikoidc.ServeHTTP(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:12+01:00 plugins-storage/sources/gop-663649738/src/github.com/jeppestaerk/traefik-xff-to-xrealip/main.go:39:9: panic: github.com/jeppestaerk/traefik-xff-to-xrealip.ServeHTTP(...) module=github.com/jeppestaerk/traefik-xff-to-xrealip plugin=plugin-traefik-xff-to-xrealip runtime=
2026-01-19T10:31:12+01:00 Recovered from panic in HTTP handler [10.0.125.244:57997 - /assets/react-dom-CU5xapJY.js]: reflect: call of reflect.Value.Field on zero Value middlewareName=traefik-internal-recovery middlewareType=Recovery
2026-01-19T10:31:12+01:00 Stack: goroutine 4935 [running]:
github.com/traefik/traefik/v3/pkg/middlewares/recovery.recoverFunc({0x79cc640, 0xc00e062b00}, 0xc005a50000)
github.com/traefik/traefik/v3/pkg/middlewares/recovery/recovery.go:52 +0x231
panic({0x60ef560?, 0xc007b41518?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc007b41518?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc007b41518?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc007b41518?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc007b41518?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc007b41518?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc007b41518?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc007b41518?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc007b41518?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc007b41518?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc007b41518?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc007b41518?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc007b41518?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc007b41518?})
runtime/panic.go:792 +0x132
reflect.Value.Field({0x0?, 0x0?, 0xc00a8489d8?}, 0xc009a08990?)
reflect/value.go:1272 +0xcf
reflect.Value.FieldByIndex({0x0?, 0x0?, 0x7f7eb590e7e8?}, {0xc003189428?, 0xc004876960?, 0x0?})
reflect/value.go:1305 +0x4e
github.com/traefik/yaegi/interp.getPtrIndexSeq.func2(0x47b833?)
github.com/traefik/yaegi@v0.16.1/interp/run.go:2110 +0xc9
github.com/traefik/yaegi/interp.runCfg(0xc0045ec640, 0xc00f0ed080, 0xc003ec1520?, 0x5d4b100?)
github.com/traefik/yaegi@v0.16.1/interp/run.go:234 +0x265
github.com/traefik/yaegi/interp.genFunctionWrapper.func1.1({0xc004876870, 0x2, 0x8?})
github.com/traefik/yaegi@v0.16.1/interp/run.go:1042 +0x805
reflect.Value.call({0xc00470b560?, 0xc0048767e0?, 0x0?}, {0x6e272d2, 0x4}, {0xc004876810, 0x2, 0x30?})
reflect/value.go:584 +0xca6
reflect.Value.Call({0xc00470b560?, 0xc0048767e0?, 0x480849?}, {0xc004876810?, 0x6dd8200?, 0xc0063bc401?})
reflect/value.go:368 +0xb9
github.com/traefik/yaegi/interp.call.func9.2({0xc004876810?, 0xc0048767e0?, 0x0?})
github.com/traefik/yaegi@v0.16.1/interp/run.go:1310 +0x36
github.com/traefik/yaegi/interp.call.func9(0xc00f0ecfd0)
github.com/traefik/yaegi@v0.16.1/interp/run.go:1330 +0xcc5
github.com/traefik/yaegi/interp.runCfg(0xc004489540, 0xc00f0ecfd0, 0xc007b19660?, 0xc004993c40?)
github.com/traefik/yaegi@v0.16.1/interp/run.go:234 +0x265
github.com/traefik/yaegi/interp.getFunc.func1.1({0xc007b413e0, 0x1, 0x1?})
github.com/traefik/yaegi@v0.16.1/interp/run.go:1919 +0x5f5
reflect.Value.call({0xc004935c70?, 0xc00ee5ef10?, 0x47b833?}, {0x6e272d2, 0x4}, {0xc007b413c8, 0x1, 0x18?})
reflect/value.go:584 +0xca6
reflect.Value.Call({0xc004935c70?, 0xc00ee5ef10?, 0x480849?}, {0xc007b413c8?, 0x6dd8200?, 0xaa6da01?})
reflect/value.go:368 +0xb9
github.com/traefik/yaegi/interp.call.func9.2({0xc007b413c8?, 0xc00ee5ef10?, 0x41bd34?})
github.com/traefik/yaegi@v0.16.1/interp/run.go:1310 +0x36
github.com/traefik/yaegi/interp.call.func9(0xc007b7abb0)
github.com/traefik/yaegi@v0.16.1/interp/run.go:1330 +0xcc5
github.com/traefik/yaegi/interp.runCfg(0xc0044cf7c0, 0xc007b7abb0, 0xc007b19640?, 0xc004935c70?)
github.com/traefik/yaegi@v0.16.1/interp/run.go:234 +0x265
github.com/traefik/yaegi/interp.genFunctionWrapper.func1.1({0xc001c27ef0, 0x2, 0x4?})
github.com/traefik/yaegi@v0.16.1/interp/run.go:1042 +0x805
reflect.Value.call({0xc004935cc0?, 0xc001c27dd0?, 0x8?}, {0x6e272d2, 0x4}, {0xc001c27ec0, 0x2, 0xc001c27e90?})
reflect/value.go:584 +0xca6
reflect.Value.Call({0xc004935cc0?, 0xc001c27dd0?, 0x480849?}, {0xc001c27ec0?, 0xc001c27e90?, 0xc004935c70?})
reflect/value.go:368 +0xb9
github.com/traefik/yaegi/interp.call.func9.2({0xc001c27ec0?, 0xc001c27dd0?, 0x2?})
github.com/traefik/yaegi@v0.16.1/interp/run.go:1310 +0x36
github.com/traefik/yaegi/interp.call.func9(0xc007b7a9a0)
github.com/traefik/yaegi@v0.16.1/interp/run.go:1330 +0xcc5
github.com/traefik/yaegi/interp.runCfg(0xc0044848c0, 0xc007b7a9a0, 0xc007b194a0?, 0x5e630a0?)
github.com/traefik/yaegi@v0.16.1/interp/run.go:234 +0x265
...54 frames elided...
github.com/traefik/traefik/v3/pkg/middlewares/headers.secureHeader.ServeHTTP(...)
github.com/traefik/traefik/v3/pkg/middlewares/headers/secure.go:49
github.com/traefik/traefik/v3/pkg/middlewares/headers.(*Header).ServeHTTP(0xc007edb380, {0x79b65c0, 0xc0084abea0}, 0xc005a50a00)
github.com/traefik/traefik/v3/pkg/middlewares/headers/header.go:63 +0x11a
github.com/traefik/traefik/v3/pkg/middlewares/headers.(*headers).ServeHTTP(0x79ca658?, {0x79b65c0?, 0xc0084abea0?}, 0x3?)
github.com/traefik/traefik/v3/pkg/middlewares/headers/headers.go:65 +0x26
github.com/traefik/traefik/v3/pkg/middlewares/observability.(*middlewareTracing).ServeHTTP(0xc004b9e990, {0x79b65c0, 0xc0084abea0}, 0xc005a50a00)
github.com/traefik/traefik/v3/pkg/middlewares/observability/middleware.go:67 +0x4a9
reflect.Value.call({0x62cd4c0?, 0xc007eeb0f8?, 0x474d1c?}, {0x6e272d2, 0x4}, {0xc000f2c600, 0x2, 0x30?})
reflect/value.go:584 +0xca6
reflect.Value.Call({0x62cd4c0?, 0xc007eeb0f8?, 0x480849?}, {0xc000f2c600?, 0x6dd8200?, 0xc008691d01?})
reflect/value.go:368 +0xb9
github.com/traefik/yaegi/interp.callBin.func2({0x62cd4c0?, 0xc007eeb0f8?, 0xc000524bb0?}, {0xc000f2c600?, 0x5e630a0?, 0xc008691da8?})
github.com/traefik/yaegi@v0.16.1/interp/run.go:1465 +0x25
github.com/traefik/yaegi/interp.callBin.func11(0xc000524bb0)
github.com/traefik/yaegi@v0.16.1/interp/run.go:1653 +0x158
github.com/traefik/yaegi/interp.runCfg(0xc0010d3cc0, 0xc000524bb0, 0xc0079c9e80?, 0x6cfb900?)
github.com/traefik/yaegi@v0.16.1/interp/run.go:234 +0x265
github.com/traefik/yaegi/interp.genFunctionWrapper.func1.1({0xc000f2c4e0, 0x2, 0x4?})
github.com/traefik/yaegi@v0.16.1/interp/run.go:1042 +0x805
github.com/traefik/yaegi/stdlib._net_http_Handler.ServeHTTP(...)
github.com/traefik/yaegi@v0.16.1/stdlib/go1_22_net_http.go:296
github.com/traefik/traefik/v3/pkg/server/middleware.(*traceablePlugin).ServeHTTP(0x79ca658?, {0x79b65c0?, 0xc0084abea0?}, 0x6e4cd49?)
github.com/traefik/traefik/v3/pkg/server/middleware/plugins.go:54 +0x26
github.com/traefik/traefik/v3/pkg/middlewares/observability.(*middlewareTracing).ServeHTTP(0xc004b9ec60, {0x79b65c0, 0xc0084abea0}, 0xc005a50a00)
github.com/traefik/traefik/v3/pkg/middlewares/observability/middleware.go:67 +0x4a9
github.com/traefik/traefik/v3/pkg/middlewares/contenttype.(*contentType).ServeHTTP(0xc007eec380, {0x79b65c0, 0xc0084abea0}, 0xc005a50a00)
github.com/traefik/traefik/v3/pkg/middlewares/contenttype/content_type.go:46 +0x116
github.com/klauspost/compress/gzhttp.NewWrapper.func1.1({0x7f7eb58956e0, 0xc00e062b00}, 0xc005a50a00)
github.com/klauspost/compress@v1.18.0/gzhttp/compress.go:517 +0x5df
net/http.HandlerFunc.ServeHTTP(0xc0092ba868?, {0x7f7eb58956e0?, 0xc00e062b00?}, 0xc007d49a40?)
net/http/server.go:2294 +0x29
github.com/traefik/traefik/v3/pkg/middlewares/compress.(*compress).chooseHandler(0xc007d49a40?, {0xc0065a85b8?, 0x6e65423?}, {0x7f7eb58956e0?, 0xc00e062b00?}, 0x8?)
github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:177 +0xa2
github.com/traefik/traefik/v3/pkg/middlewares/compress.(*compress).ServeHTTP(0xc007d49a40, {0x7f7eb58956e0, 0xc00e062b00}, 0xc005a50a00)
github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:167 +0x29d
github.com/traefik/traefik/v3/pkg/middlewares/observability.(*middlewareTracing).ServeHTTP(0xc004b9ee10, {0x7f7eb58956e0, 0xc00e062b00}, 0xc005a50a00)
github.com/traefik/traefik/v3/pkg/middlewares/observability/middleware.go:67 +0x4a9
github.com/traefik/traefik/v3/pkg/middlewares/accesslog.(*ConcatFieldHandler).ServeHTTP(0xc004b9ee40, {0x7f7eb58956e0, 0xc00e062b00}, 0xc005a50a00)
github.com/traefik/traefik/v3/pkg/middlewares/accesslog/field_middleware.go:98 +0x247
github.com/traefik/traefik/v3/pkg/middlewares/observability.(*routerTracing).ServeHTTP(0xc007edb480, {0x7f7eb58956e0, 0xc00e062b00}, 0xc005a50a00)
github.com/traefik/traefik/v3/pkg/middlewares/observability/router.go:59 +0x763
github.com/traefik/traefik/v3/pkg/middlewares/observability.(*semConvServerMetrics).ServeHTTP(0x544a694f69515761?, {0x7f7eb58956e0?, 0xc00e062b00?}, 0x4c83e5?)
github.com/traefik/traefik/v3/pkg/middlewares/observability/semconv.go:50 +0xeb8
github.com/traefik/traefik/v3/pkg/middlewares/accesslog.(*FieldHandler).ServeHTTP(0xc007edb540, {0x7f7eb58956e0, 0xc00e062b00}, 0xc005a50a00)
github.com/traefik/traefik/v3/pkg/middlewares/accesslog/field_middleware.go:33 +0x11e
github.com/traefik/traefik/v3/pkg/middlewares/accesslog.(*Handler).ServeHTTP(0xc000770840, {0x7f7eb58956e0, 0xc00e062b00}, 0xc005a50a00, {0x794cd40, 0xc007edb540})
github.com/traefik/traefik/v3/pkg/middlewares/accesslog/logger.go:212 +0x13ef
github.com/traefik/traefik/v3/pkg/server/middleware.(*ObservabilityMgr).BuildEPChain.(*Handler).AliceConstructor.func4.1({0x7f7eb58956e0?, 0xc00e062b00?}, 0x304d6c536e6c6b49?)
github.com/traefik/traefik/v3/pkg/middlewares/accesslog/logger.go:86 +0x3a
net/http.HandlerFunc.ServeHTTP(0xc000f2c480?, {0x7f7eb58956e0?, 0xc00e062b00?}, 0x0?)
net/http/server.go:2294 +0x29
github.com/traefik/traefik/v3/pkg/middlewares/observability.(*entryPointTracing).ServeHTTP(0xc004b9ef00?, {0x7f7eb58956e0?, 0xc00e062b00?}, 0xc005a50a00?)
github.com/traefik/traefik/v3/pkg/middlewares/observability/entrypoint.go:52 +0x25e
github.com/traefik/traefik/v3/pkg/server/middleware.(*ObservabilityMgr).observabilityContextHandler.WithObservabilityHandler.func1({0x7f7eb58956e0, 0xc00e062b00}, 0xc005a50780)
github.com/traefik/traefik/v3/pkg/middlewares/observability/observability.go:28 +0x97
net/http.HandlerFunc.ServeHTTP(0xc007e77300?, {0x7f7eb58956e0?, 0xc00e062b00?}, 0x8?)
net/http/server.go:2294 +0x29
github.com/traefik/traefik/v3/pkg/muxer/http.(*Muxer).ServeHTTP(0xc004b58090, {0x7f7eb58956e0, 0xc00e062b00}, 0xc005a50000)
github.com/traefik/traefik/v3/pkg/muxer/http/mux.go:53 +0x151
github.com/traefik/traefik/v3/pkg/middlewares/recovery.(*recovery).ServeHTTP(0xc0059d25d0, {0x79adc38, 0xc007db4038}, 0xc005a50000)
github.com/traefik/traefik/v3/pkg/middlewares/recovery/recovery.go:36 +0x147
github.com/traefik/traefik/v3/pkg/middlewares/snicheck.SNICheck.ServeHTTP({{0x7957260?, 0xc0059d25d0?}, 0xc004c37e30?}, {0x79adc38, 0xc007db4038}, 0xc005a50000)
github.com/traefik/traefik/v3/pkg/middlewares/snicheck/snicheck.go:49 +0x162
github.com/traefik/traefik/v3/pkg/middlewares.(*HTTPHandlerSwitcher).ServeHTTP(0x41c765?, {0x79adc38, 0xc007db4038}, 0xc005a50000)
github.com/traefik/traefik/v3/pkg/middlewares/handler_switcher.go:23 +0x91
github.com/traefik/traefik/v3/pkg/middlewares/requestdecorator.(*RequestDecorator).ServeHTTP(0xc000529ce8, {0x79adc38, 0xc007db4038}, 0xc00576dcc0, 0xc006ffc970)
github.com/traefik/traefik/v3/pkg/middlewares/requestdecorator/request_decorator.go:47 +0x2ee
github.com/traefik/traefik/v3/pkg/server.newHTTPServer.WrapHandler.func5.1({0x79adc38?, 0xc007db4038?}, 0xc0014ca600?)
github.com/traefik/traefik/v3/pkg/middlewares/requestdecorator/request_decorator.go:89 +0x53
net/http.HandlerFunc.ServeHTTP(0xc000771140?, {0x79adc38?, 0xc007db4038?}, 0x9?)
net/http/server.go:2294 +0x29
github.com/traefik/traefik/v3/pkg/middlewares/forwardedheaders.(*XForwarded).ServeHTTP(0xc000771140, {0x79adc38, 0xc007db4038}, 0xc00576dcc0)
github.com/traefik/traefik/v3/pkg/middlewares/forwardedheaders/forwarded_header.go:201 +0xc2
github.com/traefik/traefik/v3/pkg/server.newHTTPServer.DisableAutoDetection.func7({0x79adc38, 0xc007db4038}, 0xc00576dcc0)
github.com/traefik/traefik/v3/pkg/middlewares/contenttype/content_type.go:56 +0xc5
net/http.HandlerFunc.ServeHTTP(0x0?, {0x79adc38?, 0xc007db4038?}, 0x689005?)
net/http/server.go:2294 +0x29
github.com/traefik/traefik/v3/pkg/server.newHTTPServer.encodeQuerySemicolons.func8({0x79adc38, 0xc007db4038}, 0xc00576dcc0)
github.com/traefik/traefik/v3/pkg/server/server_entrypoint_tcp.go:803 +0x207
net/http.HandlerFunc.ServeHTTP(0xc007d8f830?, {0x79adc38?, 0xc007db4038?}, 0x5?)
net/http/server.go:2294 +0x29
github.com/traefik/traefik/v3/pkg/server.newHTTPServer.sanitizePath.func10({0x79adc38, 0xc007db4038}, 0xc005719040)
github.com/traefik/traefik/v3/pkg/server/server_entrypoint_tcp.go:821 +0x11c
net/http.HandlerFunc.ServeHTTP(0x491ebd?, {0x79adc38?, 0xc007db4038?}, 0x40df4e?)
net/http/server.go:2294 +0x29
github.com/traefik/traefik/v3/pkg/server.newHTTPServer.normalizePath.func11({0x79adc38?, 0xc007db4038?}, 0x10?)
github.com/traefik/traefik/v3/pkg/server/server_entrypoint_tcp.go:857 +0x94
net/http.HandlerFunc.ServeHTTP(0x0?, {0x79adc38?, 0xc007db4038?}, 0x0?)
net/http/server.go:2294 +0x29
github.com/traefik/traefik/v3/pkg/server.newHTTPServer.denyFragment.func12({0x79adc38, 0xc007db4038}, 0xc005719040)
github.com/traefik/traefik/v3/pkg/server/server_entrypoint_tcp.go:784 +0xee
net/http.HandlerFunc.ServeHTTP(0xc00e6d49c0?, {0x79adc38?, 0xc007db4038?}, 0xc00ba8a000?)
net/http/server.go:2294 +0x29
net/http.serverHandler.ServeHTTP({0x6dfbe4?}, {0x79adc38?, 0xc007db4038?}, 0xc00ba8a000?)
net/http/server.go:3301 +0x8e
net/http.initALPNRequest.ServeHTTP({{0x79ca658?, 0xc004d454a0?}, 0xc008410388?, {0xc0008ca800?}}, {0x79adc38, 0xc007db4038}, 0xc005719040)
net/http/server.go:3974 +0x231
net/http.(*http2serverConn).runHandler(0x4501f2?, 0x0?, 0x0?, 0xc007d96000?)
net/http/h2_bundle.go:6529 +0xf5
created by net/http.(*http2serverConn).scheduleHandler in goroutine 731
net/http/h2_bundle.go:6463 +0x21d
middlewareName=traefik-internal-recovery middlewareType=Recovery
INFO: TraefikOidcPlugin: 2026/01/19 10:31:14 Redis backend health status changed from {%!s(*interp.node=&{<nil> [] 0xc002ae8280 [] 0xc002ae88c0 0xc002ae8a00 <nil> 0xc0004efd48 128401 0 0 0 0 45 2063062 0xc0068fc770 0xc0038152c0 <nil> [] 0xc0068f6990 0 <nil> 0x1e62ec0 0xc002072eb0 {<nil> <nil> 0} from false <nil>}) {%!s(*abi.Type=&{4 0 330746896 15 4 4 5 0x40fd60 0x793b860 22560 2982688}) %!s(unsafe.Pointer=0xc005295bf4) %!s(reflect.flag=389)}} to {%!s(*interp.node=&{<nil> [] 0xc002ae8280 [] 0xc002ae8a00 <nil> <nil> 0xc0004efd48 128402 1 0 0 0 45 2063068 0xc0068fc7e0 0xc0038152c0 <nil> [] 0xc0068f6990 0 <nil> 0x1e62ec0 0xc002072ec0 {<nil> <nil> 0} to false <nil>}) {%!s(*abi.Type=&{4 0 330746896 15 4 4 5 0x40fd60 0x793b860 22560 2982688}) %!s(unsafe.Pointer=0xc005295bf8) %!s(reflect.flag=389)}}
2026-01-19T10:31:18+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/internal/cache/backends/redis_pool.go:243:5: panic: github.com/lukaszraczylo/traefikoidc/internal/cache/backends.Do(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:18+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/internal/cache/backends/redis.go:134:16: panic: github.com/lukaszraczylo/traefikoidc/internal/cache/backends.Get.func(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:18+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/internal/cache/backends/redis.go:350:2: panic: github.com/lukaszraczylo/traefikoidc/internal/cache/backends.executeWithRetry(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:18+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/internal/cache/backends/redis.go:122:5: panic: github.com/lukaszraczylo/traefikoidc/internal/cache/backends.Get(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:18+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/internal/cache/resilience/health_check_backend.go:62:29: panic: github.com/lukaszraczylo/traefikoidc/internal/cache/resilience.Get(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:18+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/universal_cache.go:318:5: panic: github.com/lukaszraczylo/traefikoidc.Get(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:18+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/helpers.go:253:10: panic: github.com/lukaszraczylo/traefikoidc.Get(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:18+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/token_manager.go:31:5: panic: github.com/lukaszraczylo/traefikoidc.VerifyToken(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:18+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/token_manager.go:150:9: panic: github.com/lukaszraczylo/traefikoidc.verifyToken(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:18+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/token_manager.go:817:19: panic: github.com/lukaszraczylo/traefikoidc.validateStandardTokens(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:18+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/auth_flow.go:316:5: panic: github.com/lukaszraczylo/traefikoidc.isUserAuthenticated(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:18+01:00 plugins-storage/sources/gop-663649738/src/github.com/lukaszraczylo/traefikoidc/middleware.go:30:2: panic: github.com/lukaszraczylo/traefikoidc.ServeHTTP(...) module=github.com/lukaszraczylo/traefikoidc plugin=plugin-traefikoidc runtime=
2026-01-19T10:31:18+01:00 plugins-storage/sources/gop-663649738/src/github.com/jeppestaerk/traefik-xff-to-xrealip/main.go:39:9: panic: github.com/jeppestaerk/traefik-xff-to-xrealip.ServeHTTP(...) module=github.com/jeppestaerk/traefik-xff-to-xrealip plugin=plugin-traefik-xff-to-xrealip runtime=
2026-01-19T10:31:18+01:00 Recovered from panic in HTTP handler [10.0.125.244:57997 - /assets/unist-util-stringify-position-Ch_qCilz.js]: reflect: call of reflect.Value.Field on zero Value middlewareName=traefik-internal-recovery middlewareType=Recovery
2026-01-19T10:31:18+01:00 Stack: goroutine 5099 [running]:
github.com/traefik/traefik/v3/pkg/middlewares/recovery.recoverFunc({0x79cc640, 0xc00a98c010}, 0xc00535bcc0)
github.com/traefik/traefik/v3/pkg/middlewares/recovery/recovery.go:52 +0x231
panic({0x60ef560?, 0xc00fbc5788?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc00fbc5788?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc00fbc5788?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc00fbc5788?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc00fbc5788?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc00fbc5788?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc00fbc5788?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc00fbc5788?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc00fbc5788?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc00fbc5788?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc00fbc5788?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc00fbc5788?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc00fbc5788?})
runtime/panic.go:792 +0x132
github.com/traefik/yaegi/interp.runCfg.func1()
github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x60ef560?, 0xc00fbc5788?})
runtime/panic.go:792 +0x132
reflect.Value.Field({0x0?, 0x0?, 0xc0006dfce0?}, 0xc011db4990?)
reflect/value.go:1272 +0xcf
reflect.Value.FieldByIndex({0x0?, 0x0?, 0x0?}, {0xc003189428?, 0xc0069f5050?, 0x0?})
reflect/value.go:1305 +0x4e
github.com/traefik/yaegi/interp.getPtrIndexSeq.func2(0x47b833?)
github.com/traefik/yaegi@v0.16.1/interp/run.go:2110 +0xc9
github.com/traefik/yaegi/interp.runCfg(0xc0045ec640, 0xc009f9fad0, 0xc003ec1520?, 0x5d4b100?)
github.com/traefik/yaegi@v0.16.1/interp/run.go:234 +0x265
github.com/traefik/yaegi/interp.genFunctionWrapper.func1.1({0xc0069f4f60, 0x2, 0x8?})
github.com/traefik/yaegi@v0.16.1/interp/run.go:1042 +0x805
reflect.Value.call({0xc00470b560?, 0xc0069f4ed0?, 0x0?}, {0x6e272d2, 0x4}, {0xc0069f4f00, 0x2, 0x30?})
reflect/value.go:584 +0xca6
reflect.Value.Call({0xc00470b560?, 0xc0069f4ed0?, 0x480849?}, {0xc0069f4f00?, 0x6dd8200?, 0xc0063bc401?})
reflect/value.go:368 +0xb9
github.com/traefik/yaegi/interp.call.func9.2({0xc0069f4f00?, 0xc0069f4ed0?, 0x0?})
github.com/traefik/yaegi@v0.16.1/interp/run.go:1310 +0x36
github.com/traefik/yaegi/interp.call.func9(0xc009f9f970)
github.com/traefik/yaegi@v0.16.1/interp/run.go:1330 +0xcc5
github.com/traefik/yaegi/interp.runCfg(0xc004489540, 0xc009f9f970, 0xc007b19660?, 0xc004993c40?)
github.com/traefik/yaegi@v0.16.1/interp/run.go:234 +0x265
github.com/traefik/yaegi/interp.getFunc.func1.1({0xc00fbc55a8, 0x1, 0x1?})
github.com/traefik/yaegi@v0.16.1/interp/run.go:1919 +0x5f5
reflect.Value.call({0xc004935c70?, 0xc013b16b80?, 0xc011db65a8?}, {0x6e272d2, 0x4}, {0xc00fbc5590, 0x1, 0x18?})
reflect/value.go:584 +0xca6
reflect.Value.Call({0xc004935c70?, 0xc013b16b80?, 0x480849?}, {0xc00fbc5590?, 0x6dd8200?, 0x1?})
reflect/value.go:368 +0xb9
github.com/traefik/yaegi/interp.call.func9.2({0xc00fbc5590?, 0xc013b16b80?, 0xc014b60f00?})
github.com/traefik/yaegi@v0.16.1/interp/run.go:1310 +0x36
github.com/traefik/yaegi/interp.call.func9(0xc00afeac60)
github.com/traefik/yaegi@v0.16.1/interp/run.go:1330 +0xcc5
github.com/traefik/yaegi/interp.runCfg(0xc0044cf7c0, 0xc00afeac60, 0xc007b19640?, 0xc004935c70?)
github.com/traefik/yaegi@v0.16.1/interp/run.go:234 +0x265
github.com/traefik/yaegi/interp.genFunctionWrapper.func1.1({0xc001ca3860, 0x2, 0x4?})
github.com/traefik/yaegi@v0.16.1/interp/run.go:1042 +0x805
reflect.Value.call({0xc004935cc0?, 0xc001ca3740?, 0x8?}, {0x6e272d2, 0x4}, {0xc001ca3830, 0x2, 0xc001ca3800?})
reflect/value.go:584 +0xca6
reflect.Value.Call({0xc004935cc0?, 0xc001ca3740?, 0x480849?}, {0xc001ca3830?, 0xc001ca3800?, 0xc004935c70?})
reflect/value.go:368 +0xb9
github.com/traefik/yaegi/interp.call.func9.2({0xc001ca3830?, 0xc001ca3740?, 0x2?})
github.com/traefik/yaegi@v0.16.1/interp/run.go:1310 +0x36
github.com/traefik/yaegi/interp.call.func9(0xc00afeaa50)
github.com/traefik/yaegi@v0.16.1/interp/run.go:1330 +0xcc5
github.com/traefik/yaegi/interp.runCfg(0xc0044848c0, 0xc00afeaa50, 0xc007b194a0?, 0x5e630a0?)
github.com/traefik/yaegi@v0.16.1/interp/run.go:234 +0x265
...54 frames elided...
github.com/traefik/traefik/v3/pkg/middlewares/headers.secureHeader.ServeHTTP(...)
github.com/traefik/traefik/v3/pkg/middlewares/headers/secure.go:49
github.com/traefik/traefik/v3/pkg/middlewares/headers.(*Header).ServeHTTP(0xc007edb380, {0x79b65c0, 0xc007819c20}, 0xc0065ec3c0)
github.com/traefik/traefik/v3/pkg/middlewares/headers/header.go:63 +0x11a
github.com/traefik/traefik/v3/pkg/middlewares/headers.(*headers).ServeHTTP(0x79ca658?, {0x79b65c0?, 0xc007819c20?}, 0x3?)
github.com/traefik/traefik/v3/pkg/middlewares/headers/headers.go:65 +0x26
github.com/traefik/traefik/v3/pkg/middlewares/observability.(*middlewareTracing).ServeHTTP(0xc004b9e990, {0x79b65c0, 0xc007819c20}, 0xc0065ec3c0)
github.com/traefik/traefik/v3/pkg/middlewares/observability/middleware.go:67 +0x4a9
reflect.Value.call({0x62cd4c0?, 0xc007eeb0f8?, 0x474d1c?}, {0x6e272d2, 0x4}, {0xc0049a4090, 0x2, 0x30?})
reflect/value.go:584 +0xca6
reflect.Value.Call({0x62cd4c0?, 0xc007eeb0f8?, 0x480849?}, {0xc0049a4090?, 0x6dd8200?, 0xc011da7d01?})
reflect/value.go:368 +0xb9
github.com/traefik/yaegi/interp.callBin.func2({0x62cd4c0?, 0xc007eeb0f8?, 0xc007bd6b00?}, {0xc0049a4090?, 0x5e630a0?, 0xc011da7da8?})
github.com/traefik/yaegi@v0.16.1/interp/run.go:1465 +0x25
github.com/traefik/yaegi/interp.callBin.func11(0xc007bd6b00)
github.com/traefik/yaegi@v0.16.1/interp/run.go:1653 +0x158
github.com/traefik/yaegi/interp.runCfg(0xc0010d3cc0, 0xc007bd6b00, 0xc0079c9e80?, 0x6cfb900?)
github.com/traefik/yaegi@v0.16.1/interp/run.go:234 +0x265
github.com/traefik/yaegi/interp.genFunctionWrapper.func1.1({0xc004945f20, 0x2, 0x4?})
github.com/traefik/yaegi@v0.16.1/interp/run.go:1042 +0x805
github.com/traefik/yaegi/stdlib._net_http_Handler.ServeHTTP(...)
github.com/traefik/yaegi@v0.16.1/stdlib/go1_22_net_http.go:296
github.com/traefik/traefik/v3/pkg/server/middleware.(*traceablePlugin).ServeHTTP(0x79ca658?, {0x79b65c0?, 0xc007819c20?}, 0x6e4cd49?)
github.com/traefik/traefik/v3/pkg/server/middleware/plugins.go:54 +0x26
github.com/traefik/traefik/v3/pkg/middlewares/observability.(*middlewareTracing).ServeHTTP(0xc004b9ec60, {0x79b65c0, 0xc007819c20}, 0xc0065ec3c0)
github.com/traefik/traefik/v3/pkg/middlewares/observability/middleware.go:67 +0x4a9
github.com/traefik/traefik/v3/pkg/middlewares/contenttype.(*contentType).ServeHTTP(0xc007eec380, {0x79b65c0, 0xc007819c20}, 0xc0065ec3c0)
github.com/traefik/traefik/v3/pkg/middlewares/contenttype/content_type.go:46 +0x116
github.com/klauspost/compress/gzhttp.NewWrapper.func1.1({0x7f7eb58956e0, 0xc00a98c010}, 0xc0065ec3c0)
github.com/klauspost/compress@v1.18.0/gzhttp/compress.go:517 +0x5df
net/http.HandlerFunc.ServeHTTP(0xc006f80868?, {0x7f7eb58956e0?, 0xc00a98c010?}, 0xc007d49a40?)
net/http/server.go:2294 +0x29
github.com/traefik/traefik/v3/pkg/middlewares/compress.(*compress).chooseHandler(0xc007d49a40?, {0xc003f07d40?, 0x6e65423?}, {0x7f7eb58956e0?, 0xc00a98c010?}, 0x8?)
github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:177 +0xa2
github.com/traefik/traefik/v3/pkg/middlewares/compress.(*compress).ServeHTTP(0xc007d49a40, {0x7f7eb58956e0, 0xc00a98c010}, 0xc0065ec3c0)
github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:167 +0x29d
github.com/traefik/traefik/v3/pkg/middlewares/observability.(*middlewareTracing).ServeHTTP(0xc004b9ee10, {0x7f7eb58956e0, 0xc00a98c010}, 0xc0065ec3c0)
github.com/traefik/traefik/v3/pkg/middlewares/observability/middleware.go:67 +0x4a9
github.com/traefik/traefik/v3/pkg/middlewares/accesslog.(*ConcatFieldHandler).ServeHTTP(0xc004b9ee40, {0x7f7eb58956e0, 0xc00a98c010}, 0xc0065ec3c0)
github.com/traefik/traefik/v3/pkg/middlewares/accesslog/field_middleware.go:98 +0x247
github.com/traefik/traefik/v3/pkg/middlewares/observability.(*routerTracing).ServeHTTP(0xc007edb480, {0x7f7eb58956e0, 0xc00a98c010}, 0xc0065ec3c0)
github.com/traefik/traefik/v3/pkg/middlewares/observability/router.go:59 +0x763
github.com/traefik/traefik/v3/pkg/middlewares/observability.(*semConvServerMetrics).ServeHTTP(0xc004d908c0?, {0x7f7eb58956e0?, 0xc00a98c010?}, 0x4c83e5?)
github.com/traefik/traefik/v3/pkg/middlewares/observability/semconv.go:50 +0xeb8
github.com/traefik/traefik/v3/pkg/middlewares/accesslog.(*FieldHandler).ServeHTTP(0xc007edb540, {0x7f7eb58956e0, 0xc00a98c010}, 0xc0065ec3c0)
github.com/traefik/traefik/v3/pkg/middlewares/accesslog/field_middleware.go:33 +0x11e
github.com/traefik/traefik/v3/pkg/middlewares/accesslog.(*Handler).ServeHTTP(0xc000770840, {0x7f7eb58956e0, 0xc00a98c010}, 0xc0065ec3c0, {0x794cd40, 0xc007edb540})
github.com/traefik/traefik/v3/pkg/middlewares/accesslog/logger.go:212 +0x13ef
github.com/traefik/traefik/v3/pkg/server/middleware.(*ObservabilityMgr).BuildEPChain.(*Handler).AliceConstructor.func4.1({0x7f7eb58956e0?, 0xc00a98c010?}, 0xc006f81378?)
github.com/traefik/traefik/v3/pkg/middlewares/accesslog/logger.go:86 +0x3a
net/http.HandlerFunc.ServeHTTP(0xc004945e90?, {0x7f7eb58956e0?, 0xc00a98c010?}, 0x18?)
net/http/server.go:2294 +0x29
github.com/traefik/traefik/v3/pkg/middlewares/observability.(*entryPointTracing).ServeHTTP(0xc004b9ef00?, {0x7f7eb58956e0?, 0xc00a98c010?}, 0xc0065ec3c0?)
github.com/traefik/traefik/v3/pkg/middlewares/observability/entrypoint.go:52 +0x25e
github.com/traefik/traefik/v3/pkg/server/middleware.(*ObservabilityMgr).observabilityContextHandler.WithObservabilityHandler.func1({0x7f7eb58956e0, 0xc00a98c010}, 0xc0065ec140)
github.com/traefik/traefik/v3/pkg/middlewares/observability/observability.go:28 +0x97
net/http.HandlerFunc.ServeHTTP(0xc007e77300?, {0x7f7eb58956e0?, 0xc00a98c010?}, 0x8?)
net/http/server.go:2294 +0x29
github.com/traefik/traefik/v3/pkg/muxer/http.(*Muxer).ServeHTTP(0xc004b58090, {0x7f7eb58956e0, 0xc00a98c010}, 0xc00535bcc0)
github.com/traefik/traefik/v3/pkg/muxer/http/mux.go:53 +0x151
github.com/traefik/traefik/v3/pkg/middlewares/recovery.(*recovery).ServeHTTP(0xc0059d25d0, {0x79adc38, 0xc0045b9aa8}, 0xc00535bcc0)
github.com/traefik/traefik/v3/pkg/middlewares/recovery/recovery.go:36 +0x147
github.com/traefik/traefik/v3/pkg/middlewares/snicheck.SNICheck.ServeHTTP({{0x7957260?, 0xc0059d25d0?}, 0xc004c37e30?}, {0x79adc38, 0xc0045b9aa8}, 0xc00535bcc0)
github.com/traefik/traefik/v3/pkg/middlewares/snicheck/snicheck.go:49 +0x162
github.com/traefik/traefik/v3/pkg/middlewares.(*HTTPHandlerSwitcher).ServeHTTP(0x41c765?, {0x79adc38, 0xc0045b9aa8}, 0xc00535bcc0)
github.com/traefik/traefik/v3/pkg/middlewares/handler_switcher.go:23 +0x91
github.com/traefik/traefik/v3/pkg/middlewares/requestdecorator.(*RequestDecorator).ServeHTTP(0xc000529ce8, {0x79adc38, 0xc0045b9aa8}, 0xc00535b400, 0xc004c0a970)
github.com/traefik/traefik/v3/pkg/middlewares/requestdecorator/request_decorator.go:47 +0x2ee
github.com/traefik/traefik/v3/pkg/server.newHTTPServer.WrapHandler.func5.1({0x79adc38?, 0xc0045b9aa8?}, 0xc000d6dbf0?)
github.com/traefik/traefik/v3/pkg/middlewares/requestdecorator/request_decorator.go:89 +0x53
net/http.HandlerFunc.ServeHTTP(0xc000771140?, {0x79adc38?, 0xc0045b9aa8?}, 0x9?)
net/http/server.go:2294 +0x29
github.com/traefik/traefik/v3/pkg/middlewares/forwardedheaders.(*XForwarded).ServeHTTP(0xc000771140, {0x79adc38, 0xc0045b9aa8}, 0xc00535b400)
github.com/traefik/traefik/v3/pkg/middlewares/forwardedheaders/forwarded_header.go:201 +0xc2
github.com/traefik/traefik/v3/pkg/server.newHTTPServer.DisableAutoDetection.func7({0x79adc38, 0xc0045b9aa8}, 0xc00535b400)
github.com/traefik/traefik/v3/pkg/middlewares/contenttype/content_type.go:56 +0xc5
net/http.HandlerFunc.ServeHTTP(0x0?, {0x79adc38?, 0xc0045b9aa8?}, 0x689005?)
net/http/server.go:2294 +0x29
github.com/traefik/traefik/v3/pkg/server.newHTTPServer.encodeQuerySemicolons.func8({0x79adc38, 0xc0045b9aa8}, 0xc00535b400)
github.com/traefik/traefik/v3/pkg/server/server_entrypoint_tcp.go:803 +0x207
net/http.HandlerFunc.ServeHTTP(0xc00f80cfc0?, {0x79adc38?, 0xc0045b9aa8?}, 0x12?)
net/http/server.go:2294 +0x29
github.com/traefik/traefik/v3/pkg/server.newHTTPServer.sanitizePath.func10({0x79adc38, 0xc0045b9aa8}, 0xc0054643c0)
github.com/traefik/traefik/v3/pkg/server/server_entrypoint_tcp.go:821 +0x11c
net/http.HandlerFunc.ServeHTTP(0xc0008d07b0?, {0x79adc38?, 0xc0045b9aa8?}, 0xc0054643c0?)
net/http/server.go:2294 +0x29
github.com/traefik/traefik/v3/pkg/server.newHTTPServer.normalizePath.func11({0x79adc38?, 0xc0045b9aa8?}, 0x7?)
github.com/traefik/traefik/v3/pkg/server/server_entrypoint_tcp.go:857 +0x94
net/http.HandlerFunc.ServeHTTP(0x0?, {0x79adc38?, 0xc0045b9aa8?}, 0xc0039ee960?)
net/http/server.go:2294 +0x29
github.com/traefik/traefik/v3/pkg/server.newHTTPServer.denyFragment.func12({0x79adc38, 0xc0045b9aa8}, 0xc0054643c0)
github.com/traefik/traefik/v3/pkg/server/server_entrypoint_tcp.go:784 +0xee
net/http.HandlerFunc.ServeHTTP(0xc006f97540?, {0x79adc38?, 0xc0045b9aa8?}, 0x200000003?)
net/http/server.go:2294 +0x29
net/http.serverHandler.ServeHTTP({0xc007b28a80?}, {0x79adc38?, 0xc0045b9aa8?}, 0xc006f97540?)
net/http/server.go:3301 +0x8e
net/http.initALPNRequest.ServeHTTP({{0x79ca658?, 0xc004d454a0?}, 0xc008410388?, {0xc0008ca800?}}, {0x79adc38, 0xc0045b9aa8}, 0xc0054643c0)
net/http/server.go:3974 +0x231
net/http.(*http2serverConn).runHandler(0x4501f2?, 0x0?, 0x7ae805?, 0xc004d49cb0?)
net/http/h2_bundle.go:6529 +0xf5
created by net/http.(*http2serverConn).scheduleHandler in goroutine 731
net/http/h2_bundle.go:6463 +0x21d
middlewareName=traefik-internal-recovery middlewareType=Recovery
Analysis / Potential Cause:
The panic reflect: call of reflect.Value.Field on zero Value originating in redis_pool.go strongly suggests an issue with the recent caching optimizations introduced around v0.8.13 (specifically PR #104 "LRU + cache conflicts prevention").
It appears that the Yaegi interpreter (which Traefik uses to run plugins) is struggling with the sync.Pool implementation or the struct reuse pattern found in internal/cache/backends/resp.go (variables readerPool / writerPool) or redis_pool.go.
When Yaegi tries to access a field on a struct retrieved from the pool, it encounters a nil/zero value where it expects a valid struct, or the reflection mechanism used by Yaegi to access the field fails.
Metadata
Metadata
Assignees
Labels
Projects
Status