-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Issue with latest Hyperion release with Akka 1.3 #2976
Comments
Check if you are not referencing older version of hyperion somewhere. Had the same error referencing v0.9.2 instead of v0.9.5. |
The example project i gave above was a brand new project that had never referenced the previous versions |
I had the same issue with my project. I also tried a brand new but same error still appeared. |
Seems there is something strange. There are two different packages for Hyperion v0.9.5.
and when I forced downloading it again, it has
Notice the additional So i seem Edit: |
I just created a new project. .Net 4.5.2 Works as expected. Please note we had some issues with our versioning scheme of the pre-releases/beta's. It turns out nuget/myget did not support the scheme which we where using. We didn't noticed this, until very recently. |
I've cleaned up all nuget caches and all packages but still the same error. I've check the Akka.Serialization.Hyperion.dll (1.3.0-beta46), and in IL, it's using the wrong constructor
|
@zbynek001 so this is a Hyperion bug then? |
No, it's in Akka.Serialization.Hyperion package |
Hi, I am getting the same error with Hyperion 0.9.5, Akka.Serialization.Hyperion v1.3.0-beta47 and Akka 1.3.0 |
Just asked for the error on gitter... Problem here is that the new optional parameter was introduced but forces all usages (here Akka.Serialization.Hyperion) to be recompiled because the default value will be compiled at the caller site Would it be an overloaded ctor there would be no problem. A recompile of "Akka.Serialization.Hyperion" with latest Hyperion package should fix this |
Related issue: akkadotnet/Hyperion#71 |
I can reproduce the error with @mithril52 's sample |
Props to https://github.com/bitdiffer/bitdiffer Issue is you have two different versions of Hyperion in your respective projects. I have no idea how that's possible, but we're nuking it from orbit and going to stage a new release of Hyperion 0.9.6 immediately and update the serializer as well. |
There are two issues:
Since the older |
Ok. The reason it works in my comp. Was because of multiple nuget caches. And it fails for me now as well. :P never been so glad to have something fail :P |
Issue was that we were compiling against the Hyperion 0.9.5 instance on our MyGet feed instead of the one uploaded to NuGet.org. For whatever reason, they had different versions of the binary. |
close #2976 - dropped ref to nightlies for Hyperion restore
Please install the latest beta of Akka.Serialization.Hyperion, v1.3.0-beta48. This fixes the issue and is compiled with the right binary. |
still getting exception with latest "Akka.Serialization.Hyperion 1.3.0-beta48". |
@Ralf1108 can you throw a copy of the package you just downloaded here and do a bin compare like I showed how to do earlier? I'm out of time today to fix this issue, but literally anyone off the street can send a pull request into Akka.NET. I've pointed you in the right direction. Please follow through and send in a PR yourself if this continues to be an issue. |
yes, i am already trying to do that |
there still seems to be a cache in the build system which holds the old/broken Hyperion.dll which is used for compilation of the "Akka.Serialization.Hyperion.dll" |
Shouldn't be, since we tear down the build server VM after 30 minutes of idle time. |
@Ralf1108 can you link the exacty CTOR change diff? I'm just going to call that directly so the build server will blow up on compilation if it's wrong. |
as said, BitDiffer is not able to show me the diff. I can fiddle it out in the IL code. You could try to provide the default value for the ctor parameter "ignoreISerializable" in the "Akka.Serialization.Hyperion.dll". If the broken hyperion is used the build should fail. |
offending line in ctors is: IKnownTypesProvider knownTypesProvider = this.CreateKnownTypesProvider(cDisplayClass40.system, settings.KnownTypesProvider); IL code shows:
For me it looks like the default value for the optional parameter was not compiled in, but I am no IL code expert. |
see #3003 |
and it actually failed :) |
time for explicit Hyperion 0.9.6 ? ;-) did you execute the "nuget clean cache" on the build controller? |
yep, it failed only on the Windows machines that run on bare metal (.4.5) Reason is... wait for it... The machine was imaged with the old NuGet packaged cached locally. I'm going to just publish 0.9.6 and move past the issue that way. |
then we need a new "Akka.Serialization.Hyperion" as well ;-) |
akkadotnet/Hyperion#73 - waiting for another member of @akkadotnet/core to go merge that one :p |
Hey guys, sorry but this issue is not fixed yet, exception still thrown. Releasing a new Hyperion version only fixed the mess with cached older Hyperion versions. |
ups, didn't see that :-) |
@Aaronontheweb a recompiled "Akka.Serialization.Hyperion" is also on its way? |
Akka.Serialization.Hyperion beta-50 was just published. That will resolve the issue. |
I just tried the upgrade on @mithril52's reproduction sample and verified that this issue is indeed resolved by v1.3.0-beta50. Please upgrade. |
Yes, can verify that issue is resolved 👍 |
After upgrading to v1.3, I'm trying to run Lighthouse. I noticed that the LighthouseHostFactory never "reads" the "serialization" config from HOCON.
I tried to uninstall it ... got this: |
@jalchr seems to be the same issue. Try recompile Lighthouse library with latest Hyperion |
@jalchr is it possible, that Lighthouse use latest Akka.Serialization.Hyperion? |
Lighthouse still needs to be updated afaik. |
@Ralf1108 I'm already compiling it against all latest packages. Still getting that error. What surprised me what that Wire is calling Hyperion O_o
|
WireSerializer targets Hyperion. |
I am running into the same issue. Currently I am referencing 1.3.3-beta56 for Akka.Serialization.Hyperion and 0.9.8 for Hyperion. If it helps, I have my own custom HyperionSerializer implementing Akka.Serialization.Serializer. Anything I am doing wrong? The error I get is
|
@leo12chandu have you specified assembly along with the type in your HOCON serializer config? Or have you defined a public constructor for it? It clearly cannot find the valid constructor. |
That was it, our constructor was not public. Thank You. |
When trying to use Hyperion as the default serializer in Akka 1.3, I get the error below:
=================================================================
System.Reflection.TargetInvocationException occurred
HResult=0x80131604
Message=Exception has been thrown by the target of an invocation.
Source=mscorlib
StackTrace:
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at Akka.Serialization.Serialization..ctor(ExtendedActorSystem system)
at Akka.Actor.Internal.ActorSystemImpl..ctor(String name, Config config)
at Akka.Actor.ActorSystem.Create(String name, Config config)
at HyperionIssueTestApp.Program.Main(String[] args) in c:\users\b025423\documents\visual studio 2017\Projects\HyperionIssueTestApp\HyperionIssueTestApp\Program.cs:line 31
Inner Exception 1:
MissingMethodException: Method not found: 'Void Hyperion.SerializerOptions..ctor(Boolean, Boolean, System.Collections.Generic.IEnumerable
1<Hyperion.Surrogate>, System.Collections.Generic.IEnumerable
1<Hyperion.SerializerFactories.ValueSerializerFactory>, System.Collections.Generic.IEnumerable`1<System.Type>)'.I've attached a simplified project that demonstrates the issue. If I leave the serializer as default, it works fine. Also, Using this same project with 1.2.3 Akka was working fine.
HyperionIssueTestApp.zip
The text was updated successfully, but these errors were encountered: