apache / apache/solr-operator

Operator resource update failed after authentication is disabled

Open
#446 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
283
Forks
148
PR merge metrics
No merged PRs in 30d

Description

I created a SolrCloud and enable authentication, and then I closed authentication for some reason.
When I changed CR, I found that operator can not work.
```
2022-06-13T02:04:45.551Z INFO controller-runtime.manager.controller.solrcloud Starting workers {"reconciler group": "solr.apache.org", "reconciler kind": "SolrCloud", "worker count": 1}
2022-06-13T02:04:45.871Z ERROR controller-runtime.manager.controller.solrcloud.ManagedUpdateSelector Error retrieving cluster status, delaying pod update selection {"reconciler group": "solr.apache.org", "reconciler kind": "SolrCloud", "name": "solr-project1", "namespace": "project-1", "error": "Recieved bad response code of 401 from solr with response: \n\n\nError 401 Authentication failed, Response code: 401\n\n

HTTP ERROR 401 Authentication failed, Response code: 401

\n\n\n\n\n\nURI:/solr/admin/collectionsSTATUS:401MESSAGE:Authentication failed, Response code: 401SERVLET:default\n\n\n\n"}
github.com/go-logr/zapr.(*zapLogger).Error
/go/pkg/mod/github.com/go-logr/zapr@v0.2.0/zapr.go:132
github.com/apache/solr-operator/controllers/util.DeterminePodsSafeToUpdate
/workspace/controllers/util/solr_update_util.go:122
github.com/apache/solr-operator/controllers.(*SolrCloudReconciler).Reconcile
/workspace/controllers/solrcloud_controller.go:421
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.8.3/pkg/internal/controller/controller.go:298
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.8.3/pkg/internal/controller/controller.go:253
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func1.2
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.8.3/pkg/internal/controller/controller.go:216
k8s.io/apimachinery/pkg/util/wait.JitterUntilWithContext.func1
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:185
k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:155
k8s.io/apimachinery/pkg/util/wait.BackoffUntil
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:156
k8s.io/apimachinery/pkg/util/wait.JitterUntil
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:133
k8s.io/apimachinery/pkg/util/wait.JitterUntilWithContext
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:185
k8s.io/apimachinery/pkg/util/wait.UntilWithContext
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:99
2022-06-13T02:04:47.203Z ERROR controller-runtime.manager.controller.solrcloud.ManagedUpdateSelector Error retrieving cluster status, delaying pod update selection {"reconciler group": "solr.apache.org", "reconciler kind": "SolrCloud", "name": "solr-project1", "namespace": "project-1", "error": "Recieved bad response code of 401 from solr with response: \n\n\nError 401 Authentication failed, Response code: 401\n\n

HTTP ERROR 401 Authentication failed, Response code: 401

\n\n\n\n\n\nURI:/solr/admin/collectionsSTATUS:401MESSAGE:Authentication failed, Response code: 401SERVLET:default\n\n\n\n"}
github.com/go-logr/zapr.(*zapLogger).Error
/go/pkg/mod/github.com/go-logr/zapr@v0.2.0/zapr.go:132
github.com/apache/solr-operator/controllers/util.DeterminePodsSafeToUpdate
/workspace/controllers/util/solr_update_util.go:122
github.com/apache/solr-operator/controllers.(*SolrCloudReconciler).Reconcile
/workspace/controllers/solrcloud_controller.go:421
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.8.3/pkg/internal/controller/controller.go:298
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.8.3/pkg/internal/controller/controller.go:253
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func1.2
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.8.3/pkg/internal/controller/controller.go:216
k8s.io/apimachinery/pkg/util/wait.JitterUntilWithContext.func1
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:185
k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:155
k8s.io/apimachinery/pkg/util/wait.BackoffUntil
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:156
k8s.io/apimachinery/pkg/util/wait.JitterUntil
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:133
k8s.io/apimachinery/pkg/util/wait.JitterUntilWithContext
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:185
k8s.io/apimachinery/pkg/util/wait.UntilWithContext
/go/pkg/mod/k8s.io/apimachinery@v0.20.2/pkg/util/wait/wait.go:99
```

I used solr-operator v0.5.1, and I think it is a bug?

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in controllers/util/solr_update_util.go around line 122, then follow the SolrCloud reconciliation path at controllers/solrcloud_controller.go line 421. Reproduce changing a SolrCloud resource after authentication is disabled and trace the 401 response; done means reconciliation proceeds without repeatedly failing cluster-status retrieval.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
authentication, devops
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.