Comments (3)
I agree that it could be a Juju bug. Last time we encountered something similar (applications which were "stuck" and could not be removed in some scenarios), I went through a lot of trace logging in Juju, dumped the database in a bad state, etc. Ultimately, it's Mongo, and there aren't any cascading deletes or strict referential integrity. Juju refcounts inside Mongo documents to know when it's safe to remove an object, and it's spread across a couple of documents.
The trace logging in Juju is.. a lot, and I'm not a Juju developer, so determining exactly which loggers I needed to enable was a little bit trial and error, and it's been a couple of months. That particular exception says to me "that relation data still exists, but your application isn't marked as part of that relation, so go away". Either because of the async nature of the way things are handled (Juju uses its own transaction queue for Mongo to provide assurances around data integrity, so "remove this relation data as part of cleanup" may have been queued up as part of an operation where the tombstone was set to dying
but we can't get rid of the relation itself until we send these events), especially given that relation-broken
doesn't provide any contract around whether data should exist that I can remember. The wording of "as if this relation never existed" implies no.
Either way, it would not be the first "ghost/zombie" we've seen in Juju if something went wrong there.
from traefik-k8s-operator.
I haven't actually tried reproducing these steps, but my spidey sense would be that the first application hasn't finished removing by the time the second is related
from traefik-k8s-operator.
I haven't actually tried reproducing these steps, but my spidey sense would be that the first application hasn't finished removing by the time the second is related
Mmmh, that would be possible. However, as far as I can tell, the relation was gone (juju status does not show it, and the whole application was also "gone" in the same sense). I do realize that juju might think otherwise though...
My common sense would suggest that if accessing the data gives an error (the data is gone), then so should the relation. That would be an inconsistency in juju, that should unlist the relation before it gets rid of the data (or 'simultaneously')
from traefik-k8s-operator.
Related Issues (20)
- chore: update libraries to new major versions
- [traefik-route] middleware in router tls is removed HOT 9
- show-proxied-endpoints is bork on ingress v2
- Traefik unable to push certificate HOT 4
- Config option tls-ca is always required, even when tls-cert is signed by a trusted 3rd party CA
- [traefik-route] There's no "route departed/broken" for TraefikRouteRequirer HOT 1
- Traefik's server_cert_sans_dns has unexpected contents HOT 1
- Traefik generates TLS config only for the first defined HTTP router
- Unable to use Load Balancer's IP address for the ingress gateway HOT 7
- Traefik is stuck executing after the setup of some ingress relation failed HOT 1
- warn on `proxied_endpoints` in the separate ingress providers
- Allow traefik to use ACME http challenge for letsencrypt certificates
- changing ipaddress pool needs a good way to propagate into traefik service HOT 3
- Traefik blocks when get svc only returns hostname, not ip address HOT 2
- `traefik_route_k8s` lib should be owned by traefik-k8s-operator
- cert expiration monitoring HOT 3
- pydantic deprecation warnings HOT 3
- issue with TLS and tracing HOT 1
- add an action to export the server cert and ca cert HOT 2
- error on `start` HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from traefik-k8s-operator.