Open jcralbino opened 9 months ago
This could be resolved by inserting an if statement at https://github.com/kubernetes-sigs/external-dns/blob/master/source/service.go#L744
if ep != nil {
endpoints = append(endpoints, ep)
}
However, since it is ERROR, does that mean we crashed it intentionally? Happy to create a PR if that is not the case. :blush:
For SREs, dealing with an issue like this is a headache, especially when the service is in a crashloopbackoff
state due to a user supplying a poison pill.
The SIGSEGV error signifies that something in the code has mishandled pointers, and the code outputs a stack trace. In simple terms, fundamentally, the code is accessing memory incorrectly. The memory address provided can be useful for debugging. For instance, if it's close to zero, it probably indicates a null pointer dereference; as it's something like 0x1ab0201, it might be intentional use of of an invalid/null pointer?.
Looks like a nasty bug; the suggested fix might not really get to the core issue—it's likely just a case of incorrect error handling which leads to a potential memory leak or|and service crash.
For SREs, dealing with an issue like this is a headache, especially when the service is in a
crashloopbackoff
state due to a user supplying a poison pill.The SIGSEGV error signifies that something in the code has mishandled pointers, and the code outputs a stack trace. In simple terms, fundamentally, the code is accessing memory incorrectly. The memory address provided can be useful for debugging. For instance, if it's close to zero, it probably indicates a null pointer dereference; as it's something like 0x1ab0201, it might be intentional use of of an invalid/null pointer?.
Looks like a nasty bug; the suggested fix might not really get to the core issue—it's likely just a case of incorrect error handling which leads to a potential memory leak or|and service crash.
IMO It seems the code does not handle when endpoint is invalid: we should not add a nil to endpoints list. Can you suggest the proper way to fix the issue? Thanks
I wrongly assumed. You are right, should fix current problem.
Looks like it should be fixed. The fix is there https://github.com/kubernetes-sigs/external-dns/pull/4293
The Kubernetes project currently lacks enough contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/remove-lifecycle stale
/close
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/remove-lifecycle rotten
/close
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle rotten
/remove-lifecycle rotten
I'm still experiencing this issue on version 0.14.2, seems like it hasn't been fixed?
The Kubernetes project currently lacks enough contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
lifecycle/stale
is appliedlifecycle/stale
was applied, lifecycle/rotten
is appliedlifecycle/rotten
was applied, the issue is closedYou can:
/remove-lifecycle stale
/close
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
What happened: The ExternalDNS tried to create a DNSEntry with more than 63 characters and it crashed we have in our case hostname=64 characters orb-postgresql-policies-headless_orb_mg-t-cn-network-k8s-cluster
What you expected to happen:
The external-dns should move to the next entry, and present only a error in the log
If we consider the fact that each label/name object in k8s is limited to 63 characters. The fqdn hostname template {{.Name}}-{{.Namespace} , will be in total 126 characters. ( if we consider the worst case scenario)
As the dns hostname is limited to 63 characters, trying to create something higher than 63 should not work. But this use case will crash the external-dns.
This bug introduces additional risk and reduces the resilience and availability of this Software
How to reproduce it (as minimally and precisely as possible): Create a dns hostname entry with more than 63 characters.
Anything else we need to know?: the flag fqdn-template used is
--fqdn-template={{.Name}}_{{.Namespace}}_26hostname-suffix-character.22charact.in.subdomain"
Environment: