Uploaded image for project: 'Distributed Tracing'
  1. Distributed Tracing
  2. TRACING-3213

Validation webhooks panics for invalid tenant configuration

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Undefined Undefined
    • rhosdt-2.9
    • None
    • Tempo
    • None
    • Tracing Sprint # 238

      2023/05/26 12:36:03 http: panic serving 10.244.0.1:48918: runtime error: invalid memory address or nil pointer dereference
      goroutine 15956 [running]:
      net/http.(*conn).serve.func1()
      	/usr/local/go/src/net/http/server.go:1854 +0xbf
      panic({0x17e07a0, 0x291b0b0})
      	/usr/local/go/src/runtime/panic.go:890 +0x263
      github.com/os-observability/tempo-operator/apis/tempo/v1alpha1.ValidateTenantConfigs({{{0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0, 0x0, 0x0, ...}, ...}, ...})
      	/workspace/apis/tempo/v1alpha1/tempostack_webhook.go:371 +0x5f
      github.com/os-observability/tempo-operator/apis/tempo/v1alpha1.(*validator).validateTenantConfigs(_, {{{0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0, 0x0, ...}, ...}, ...})
      	/workspace/apis/tempo/v1alpha1/tempostack_webhook.go:311 +0x4f
      github.com/os-observability/tempo-operator/apis/tempo/v1alpha1.(*validator).validate(0x800?, {0x1cc1670, 0xc000f02870}, {0x1caf918?, 0xc0009f8480?})
      	/workspace/apis/tempo/v1alpha1/tempostack_webhook.go:350 +0x8ed
      github.com/os-observability/tempo-operator/apis/tempo/v1alpha1.(*validator).ValidateCreate(0xc000b34630?, {0x1cc1670?, 0xc000f02870?}, {0x1caf918?, 0xc0009f8480?})
      	/workspace/apis/tempo/v1alpha1/tempostack_webhook.go:162 +0x2d
      sigs.k8s.io/controller-runtime/pkg/webhook/admission.(*validatorForType).Handle(_, {_, _}, {{{0xc000b34630, 0x24}, {{0xc000e2e120, 0x11}, {0xc000abc588, 0x8}, {0xc000abc5b0, ...}}, ...}})
      	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.1/pkg/webhook/admission/validator_custom.go:79 +0x2dd
      sigs.k8s.io/controller-runtime/pkg/webhook/admission.(*Webhook).Handle(_, {_, _}, {{{0xc000b34630, 0x24}, {{0xc000e2e120, 0x11}, {0xc000abc588, 0x8}, {0xc000abc5b0, ...}}, ...}})
      	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.1/pkg/webhook/admission/webhook.go:169 +0xfd
      sigs.k8s.io/controller-runtime/pkg/webhook/admission.(*Webhook).ServeHTTP(0xc00033b780, {0x7fc6422261c8?, 0xc0001ad540}, 0xc000831100)
      	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.13.1/pkg/webhook/admission/http.go:98 +0xed2
      github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerInFlight.func1({0x7fc6422261c8, 0xc0001ad540}, 0x1cc0900?)
      	/go/pkg/mod/github.com/prometheus/client_golang@v1.15.1/prometheus/promhttp/instrument_server.go:60 +0xd4
      net/http.HandlerFunc.ServeHTTP(0x1cc0990?, {0x7fc6422261c8?, 0xc0001ad540?}, 0xc000b9f828?)
      	/usr/local/go/src/net/http/server.go:2122 +0x2f
      github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerCounter.func1({0x1cc0990?, 0xc0001e68c0?}, 0xc000831100)
      	/go/pkg/mod/github.com/prometheus/client_golang@v1.15.1/prometheus/promhttp/instrument_server.go:147 +0xc5
      net/http.HandlerFunc.ServeHTTP(0x7ea7a5?, {0x1cc0990?, 0xc0001e68c0?}, 0x40da8a?)
      	/usr/local/go/src/net/http/server.go:2122 +0x2f
      github.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerDuration.func2({0x1cc0990, 0xc0001e68c0}, 0xc000831100)
      	/go/pkg/mod/github.com/prometheus/client_golang@v1.15.1/prometheus/promhttp/instrument_server.go:109 +0xc7
      net/http.HandlerFunc.ServeHTTP(0xc0001e68c0?, {0x1cc0990?, 0xc0001e68c0?}, 0x1a02157?)
      	/usr/local/go/src/net/http/server.go:2122 +0x2f
      net/http.(*ServeMux).ServeHTTP(0xc0006dfc55?, {0x1cc0990, 0xc0001e68c0}, 0xc000831100)
      	/usr/local/go/src/net/http/server.go:2500 +0x149
      net/http.serverHandler.ServeHTTP({0x1cb35b8?}, {0x1cc0990, 0xc0001e68c0}, 0xc000831100)
      	/usr/local/go/src/net/http/server.go:2936 +0x316
      net/http.(*conn).serve(0xc000b8e1b0, {0x1cc1670, 0xc0002ee9c0})
      	/usr/local/go/src/net/http/server.go:1995 +0x612
      created by net/http.(*Server).Serve
      	/usr/local/go/src/net/http/server.go:3089 +0x5ed
      

      with the following CR:

      apiVersion: tempo.grafana.com/v1alpha1
      kind: TempoStack
      metadata:
        name: simplest
      spec:
        images:
          tempo: docker.io/grafana/tempo:0.0.0
          tempoGateway: quay.io/observatorium/api:0.0.0
          tempoGatewayOpa: quay.io/observatorium/opa-openshift:0.0.0
          tempoQuery: docker.io/grafana/tempo-query:0.0.0
        storage:
          secret:
            name: minio-test
            type: s3
        storageSize: 200M
        tenants:
          mode: static
          authentication:
          - tenantName: test-oidc
            tenantId: test-oidc
        template:
          gateway:
            enabled: true
          queryFrontend:
            jaegerQuery:
              enabled: true
      

            rhn-support-iblancas Israel Blancas Alvarez
            agerstma@redhat.com Andreas Gerstmayr
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: