Issues
- status of ready nodes can be wrong for some timeK8SPSMDB-487Resolved issue: K8SPSMDB-487ege.gunes
- scaling down the cluster from 7 to 3 pods results in broken clusterK8SPSMDB-486Resolved issue: K8SPSMDB-486ege.gunes
- TLS documentation mentions incorrect secrets specification in cr.yamlK8SPSMDB-485Resolved issue: K8SPSMDB-485dmitriy.kostiuk
- Simplified migration of databases to KubernetesK8SPSMDB-484
- Document - removal of the support for MongoDB 3.6K8SPSMDB-482Resolved issue: K8SPSMDB-482dmitriy.kostiuk
- Remove PSMDB 3.6 from Version Service for OperatorK8SPSMDB-481Resolved issue: K8SPSMDB-481Tomislav Plavcic
- restore with backupSource doesn't error if destination for full backup not specifiedK8SPSMDB-480Resolved issue: K8SPSMDB-480ege.gunes
- Allow MongoDB PODs to have non-voting members.K8SPSMDB-479Resolved issue: K8SPSMDB-479ege.gunes
- TLS Mode -K8SPSMDB-478Resolved issue: K8SPSMDB-478
- operator can lose some version information when killedK8SPSMDB-477Resolved issue: K8SPSMDB-477ege.gunes
- Document - new feature - skip TLS verification for backupsK8SPSMDB-474Resolved issue: K8SPSMDB-474dmitriy.kostiuk
- Allow to skip TLS verification for backup storageK8SPSMDB-473Resolved issue: K8SPSMDB-473
- Endpoint field in PSMDB Custom Resource is not updatedK8SPSMDB-472Resolved issue: K8SPSMDB-472Dmytro Zghoba
- Scheduled backups with error status can't be deleted from k8s apiK8SPSMDB-471Resolved issue: K8SPSMDB-471Andrii Dema
- ServiceAnnotation and LoadBalancerSourceRanges fields don't propagate to k8s serviceK8SPSMDB-470Resolved issue: K8SPSMDB-470ege.gunes
- Replicaset wont join a sharded cluster if expose.enabled is trueK8SPSMDB-469Resolved issue: K8SPSMDB-469
- Remove GKE cluster correctlyK8SPSMDB-468Resolved issue: K8SPSMDB-468Slava Sarzhan
- Support for Rolling Index Builds on Replica SetsK8SPSMDB-467
- Restore backups from S3 without Kubernetes custom resourceK8SPSMDB-466Resolved issue: K8SPSMDB-466ege.gunes
- Document - control how often Oplgos are uploaded in PITRK8SPSMDB-465Resolved issue: K8SPSMDB-465dmitriy.kostiuk
- [PITR] Control how often oplogs are uploaded to S3K8SPSMDB-464Resolved issue: K8SPSMDB-464Dmytro Zghoba
- Update backup status as error if it's not startedK8SPSMDB-463Resolved issue: K8SPSMDB-463ege.gunes
- psmdb-backup object is not deleted if status is not readyK8SPSMDB-462Resolved issue: K8SPSMDB-462ege.gunes
- [PITR] Allow users to see available Oplog time framesK8SPSMDB-461ege.gunes
- [PITR] Automatically create full backup if PITR is enabledK8SPSMDB-460
- Document - cluster name limitationK8SPSMDB-459Resolved issue: K8SPSMDB-459dmitriy.kostiuk
- Document - architecture of Operator changeK8SPSMDB-458Resolved issue: K8SPSMDB-458dmitriy.kostiuk
- Roll back the major version with set FCVK8SPSMDB-457
- smartUpdate doesn't work in case of 1 node replicaK8SPSMDB-456Resolved issue: K8SPSMDB-456ege.gunes
- major downgrade is not possible when FCV is not upgraded to new versionK8SPSMDB-455Resolved issue: K8SPSMDB-455
- failing tests on 1.20 - no runtime for "docker" is configuredK8SPSMDB-454Resolved issue: K8SPSMDB-454Tomislav Plavcic
- Capture cluster provisioning progress in the Custom ResourceK8SPSMDB-453Resolved issue: K8SPSMDB-453ege.gunes
- Rework statuses for a Custom ResourceK8SPSMDB-451Resolved issue: K8SPSMDB-451ege.gunes
- cluster breaks if skipping major upgradesK8SPSMDB-450Resolved issue: K8SPSMDB-450Pavel Kasko
- setFCV option doesn't change version in replica set major upgradeK8SPSMDB-449Resolved issue: K8SPSMDB-449Pavel Kasko
- Document - new feature - major version upgradeK8SPSMDB-448Resolved issue: K8SPSMDB-448dmitriy.kostiuk
- Document - new feature - store custom configuration in Secrets and ConfigMapsK8SPSMDB-446Resolved issue: K8SPSMDB-446dmitriy.kostiuk
- Allow storing custom configuration in ConfigMapsK8SPSMDB-445Resolved issue: K8SPSMDB-445
- Allow storing custom configuration in SecretsK8SPSMDB-444Resolved issue: K8SPSMDB-444
- Custom configuration - new section in cr.yaml - mongosK8SPSMDB-443Resolved issue: K8SPSMDB-443Sergey Pronin
- Document - new feature - recover from S3 directlyK8SPSMDB-441Resolved issue: K8SPSMDB-441dmitriy.kostiuk
- cannot run 2 nodes and arbiter as per docsK8SPSMDB-440Resolved issue: K8SPSMDB-440dmitriy.kostiuk
- [BUG] Redundant deletion by issuing `Delete` without checking resource existenceK8SPSMDB-439
- [BUG] Arbiter statefulset gets mistakenly deleted when reading stale `replset.arbiter.enabled`K8SPSMDB-438
- Labels are not inherited by PVCsK8SPSMDB-437Resolved issue: K8SPSMDB-437ege.gunes
- Set imagePullPolicy for init containerK8SPSMDB-436Resolved issue: K8SPSMDB-436ege.gunes
- Mongos pods don't show custom labelsK8SPSMDB-435Resolved issue: K8SPSMDB-435ege.gunes
- [BUG] Nil pointer dereference when setting `spec.sharding.enabled` from false to trueK8SPSMDB-434Resolved issue: K8SPSMDB-434Mykola Marzhan
- [BUG] Config statefulset gets mistakenly deleted when reading stale `spec.sharding.enabled`K8SPSMDB-433
- Cluster Wide Scope for Operator Deployment (WATCH_NAMESPACE)K8SPSMDB-432Resolved issue: K8SPSMDB-432
50 of
[BUG] Redundant deletion by issuing `Delete` without checking resource existence
General
Escalation
General
Escalation
Description
Environment
None
Smart Checklist
Created April 17, 2021 at 3:45 PM
Updated March 5, 2024 at 4:55 PM
Activity
Show:
Lalit ChoudharyMay 6, 2021 at 11:08 AM
Hi
Thank you for the report.
Yes, please send PR and Dev will review.
Description
We find the MongoDB controller often issues deletion even when the resources do not exist. For example, in `deleteCfgIfNeeded`:
The controller directly issues deletion of config sts without checking its existence (and ignores `IsNotFound`). When sharding is always disabled, such deletion makes no change to the cluster since the config sts never exists. Given that `Get` (from local cache) is usually much faster than `Delete` (to the apiserver), checking the sts existence by issuing `Get` before issuing `Delete` of the sts would be better. Note that in the same `deleteCfgIfNeeded`, svc is deleted in this manner:
In addition, this approach also helps to check the local indexer staleness. If `Get` confirms the resource existence but `Delete` returns `NotFound` error, it indicates potential staleness in the local indexer.
Similar problems also exist in other methods like `deleteMongos`.
Fix
We are willing to send a PR for this issue. As mentioned before, `Get` before `Delete` would be better here.