Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: Orleans.Hosting.KubernetesHosting: System.MissingMethodException #55

Closed
highlyunavailable opened this issue Oct 23, 2021 · 3 comments · Fixed by #56
Closed

Fix: Orleans.Hosting.KubernetesHosting: System.MissingMethodException #55

highlyunavailable opened this issue Oct 23, 2021 · 3 comments · Fixed by #56

Comments

@highlyunavailable
Copy link
Contributor

highlyunavailable commented Oct 23, 2021

Multiple Kubernetes client updates have changed the method signatures and when using a newer version of the client (e.g. when using KubeOps in conjunction with Orleans in the same app) the following error is thrown:

Unhandled exception. System.MissingMethodException: Method not found: 'System.Threading.Tasks.Task`1<System.Object> k8s.KubernetesExtensions.CreateNamespacedCustomObjectAsync(k8s.IKubernetes, System.Object, System.String, System.String, System.String, System.String, System.String, System.Threading.CancellationToken)'.
    at Orleans.Clustering.Kubernetes.KubeMembershipTable.TryInitClusterVersion()
    at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
    at Orleans.Clustering.Kubernetes.KubeMembershipTable.TryInitClusterVersion()
    at Orleans.Clustering.Kubernetes.KubeMembershipTable.InitializeMembershipTable(Boolean tryInitTableVersion)
    at Orleans.Runtime.MembershipService.MembershipTableManager.Start()

The fix is to upgrade the Kubernetes C# SDK to the latest version, and I have a PR in with the Orleans repo (dotnet/orleans#7346) to do that as well as a PR ready for this repo once I see the disposition of their fix timing but both Orleans.Hosting.Kubernetes and Orleans.Clustering.Kubernetes should to be upgraded to match versions and move in lockstep so one doesn't drag the other down into an incompatible state.

@JonathonCwik
Copy link

Would like to bump this and ask if there's a work-around without the update?

@highlyunavailable
Copy link
Contributor Author

I'm not sure how to get my fix merged (maybe @galvesribeiro can comment?), but there's no real workaround - I've forked locally and done a manual upgrade and just build my own copy of this with my project.

@chillitom
Copy link

Related: dotnet/orleans#7406

Sounds like it would be sensible to open a PR against dotnet/orleans to merge this plugin into the main repo and then do the upgrade of client libs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants