Hi Emilio,

This is a bug, I've filed a ticket:
https://issues.apache.org/jira/browse/IGNITE-15845

What does the config look like? You have some QueryEntity defined, am I
right?

I think a workaround is to register QueryEntity types manually before
creating the cache:
ignite.GetBinary().GetBinaryType(typeof(YOUR_TYPE))

Let me know if this works.

Thanks,
Pavel


On Thu, Oct 28, 2021 at 2:21 PM Emilio Cherubini <emi...@ddrobotec.com>
wrote:

> Hi,
>
> Since we started using MassTransit Ignite struggles when creating or
> getting a cache using ignite.GetOrCreateCache<TKey, TValue>(configuration).
> Ignite exits after the error has been triggered.
>
> The relevant error I guess is
> Failure in Java callback Apache.Ignite.Core.Common.IgniteException:
> Invalid array specification:
> MassTransit.Initializers.PropertyConverters.MessageDataPropertyConverter
> +<MassTransit-Initializers-IPropertyConverter<MassTransit-MessageData<System-Byte\[\]>\,MassTransit-MessageData<System-String>>-Convert>d__4`
> 1
>
> The failure happens under Windows and Linux (Docker) with .Net Core 3.1.
> Using GridGain Ignite 8.8.10.
>
> Not sure what is happening here, GetOrCreateCache() fails in specific
> locations, and in some unit tests.
>
> Any insights on this issue will be greatly appreciated.
>
> Regards,
>
> Emilio
>
> The relevant bits from the log are:
> 2021-10-28 12:57:19.2740 | 0 | ERROR | VERTIGO | IgniteTests | Failure in
> Java callback Apache.Ignite.Core.Common.IgniteException: Invalid array
> specification:
> MassTransit.Initializers.PropertyConverters.MessageDataPropertyConverter
> +<MassTransit-Initializers-IPropertyConverter<MassTransit-MessageData<System-Byte\[\]>\,MassTransit-MessageData<System-String>>-Convert>d__4`
> 1
>    at Apache.Ignite.Core.Impl.Binary.TypeNameParser.ParseArrayDefinition()
>    at Apache.Ignite.Core.Impl.Binary.TypeNameParser.Parse()
>    at Apache.Ignite.Core.Impl.Binary.TypeNameParser..ctor(String typeName,
> Int32& pos)
>    at Apache.Ignite.Core.Impl.Binary.TypeNameParser.Parse(String typeName)
>    at Apache.Ignite.Core.Binary.BinaryBasicNameMapper.GetTypeName(String
> name)
>    at
> Apache.Ignite.Core.Impl.Binary.TypeResolver.<>c__DisplayClass8_0.<FindType>b__0(Type
> x)
>    at System.Linq.Enumerable.TryGetFirst[TSource](IEnumerable`1 source,
> Func`2 predicate, Boolean& found)
>    at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source,
> Func`2 predicate)
>    at Apache.Ignite.Core.Impl.Binary.TypeResolver.FindType(Assembly asm,
> String typeName, IBinaryNameMapper mapper)
>    at
> Apache.Ignite.Core.Impl.Binary.TypeResolver.<>c__DisplayClass4_0.<ResolveNonGenericType>b__1(Assembly
> a)
>    at System.Linq.Enumerable.SelectArrayIterator`2.MoveNext()
>    at System.Linq.Enumerable.TryGetFirst[TSource](IEnumerable`1 source,
> Func`2 predicate, Boolean& found)
>    at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source,
> Func`2 predicate)
>    at
> Apache.Ignite.Core.Impl.Binary.TypeResolver.ResolveNonGenericType(String
> assemblyName, String typeName, ICollection`1 assemblies, IBinaryNameMapper
> nameMapper)
>    at Apache.Ignite.Core.Impl.Binary.TypeResolver.ResolveType(String
> assemblyName, TypeNameParser typeName, ICollection`1 assemblies,
> IBinaryNameMapper nameMapper)
>    at Apache.Ignite.Core.Impl.Binary.TypeResolver.ResolveType(String
> typeName, String assemblyName, IBinaryNameMapper nameMapper)
>    at Apache.Ignite.Core.Impl.Binary.Marshaller.ResolveType(String
> typeName)
>    at Apache.Ignite.Core.Impl.Binary.Marshaller.GetDescriptor(Boolean
> userType, Int32 typeId, Boolean requiresType, String typeName, Type
> knownType)
>    at Apache.Ignite.Core.Impl.Binary.Marshaller.GetDescriptor(String
> typeName, Boolean requiresType)
>    at
> Apache.Ignite.Core.Impl.Unmanaged.UnmanagedCallbacks.<>c__DisplayClass98_0.<BinaryTypeGet>b__0()
>    at
> Apache.Ignite.Core.Impl.Unmanaged.UnmanagedCallbacks.SafeCall[T](Func`1
> func, Boolean allowUnitialized)
> 2021-10-28 12:57:19.3055 | 0 | ERROR | VERTIGO | IgniteTests | Failure in
> Java callback Apache.Ignite.Core.Common.IgniteException: Invalid array
> specification:
> MassTransit.Initializers.PropertyConverters.MessageDataPropertyConverter
> +<MassTransit-Initializers-IPropertyConverter<MassTransit-MessageData<System-Byte\[\]>\,MassTransit-MessageData<System-String>>-Convert>d__4`
> 1
>    at Apache.Ignite.Core.Impl.Binary.TypeNameParser.ParseArrayDefinition()
>    at Apache.Ignite.Core.Impl.Binary.TypeNameParser.Parse()
>    at Apache.Ignite.Core.Impl.Binary.TypeNameParser..ctor(String typeName,
> Int32& pos)
>    at Apache.Ignite.Core.Impl.Binary.TypeNameParser.Parse(String typeName)
>    at Apache.Ignite.Core.Binary.BinaryBasicNameMapper.GetTypeName(String
> name)
>    at
> Apache.Ignite.Core.Impl.Binary.TypeResolver.<>c__DisplayClass8_0.<FindType>b__0(Type
> x)
>    at System.Linq.Enumerable.TryGetFirst[TSource](IEnumerable`1 source,
> Func`2 predicate, Boolean& found)
>    at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source,
> Func`2 predicate)
>    at Apache.Ignite.Core.Impl.Binary.TypeResolver.FindType(Assembly asm,
> String typeName, IBinaryNameMapper mapper)
>    at
> Apache.Ignite.Core.Impl.Binary.TypeResolver.<>c__DisplayClass4_0.<ResolveNonGenericType>b__1(Assembly
> a)
>    at System.Linq.Enumerable.SelectArrayIterator`2.MoveNext()
>    at System.Linq.Enumerable.TryGetFirst[TSource](IEnumerable`1 source,
> Func`2 predicate, Boolean& found)
>    at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source,
> Func`2 predicate)
>    at
> Apache.Ignite.Core.Impl.Binary.TypeResolver.ResolveNonGenericType(String
> assemblyName, String typeName, ICollection`1 assemblies, IBinaryNameMapper
> nameMapper)
>    at Apache.Ignite.Core.Impl.Binary.TypeResolver.ResolveType(String
> assemblyName, TypeNameParser typeName, ICollection`1 assemblies,
> IBinaryNameMapper nameMapper)
>    at Apache.Ignite.Core.Impl.Binary.TypeResolver.ResolveType(String
> typeName, String assemblyName, IBinaryNameMapper nameMapper)
>    at Apache.Ignite.Core.Impl.Binary.Marshaller.ResolveType(String
> typeName)
>    at Apache.Ignite.Core.Impl.Binary.Marshaller.GetDescriptor(Boolean
> userType, Int32 typeId, Boolean requiresType, String typeName, Type
> knownType)
>    at Apache.Ignite.Core.Impl.Binary.Marshaller.GetDescriptor(String
> typeName, Boolean requiresType)
>    at
> Apache.Ignite.Core.Impl.Unmanaged.UnmanagedCallbacks.<>c__DisplayClass98_0.<BinaryTypeGet>b__0()
>    at
> Apache.Ignite.Core.Impl.Unmanaged.UnmanagedCallbacks.SafeCall[T](Func`1
> func, Boolean allowUnitialized)
>    at
> Apache.Ignite.Core.Impl.Unmanaged.UnmanagedCallbacks.BinaryTypeGet(Int64
> memPtr)
>    at
> Apache.Ignite.Core.Impl.Unmanaged.UnmanagedCallbacks.InLongOutLong(Int32
> type, Int64 val)
> 2021-10-28 12:57:19.3081 | 0 | ERROR | VERTIGO | GridDiscoveryManager |
> Exception in discovery notifier worker thread.
> 2021-10-28 12:57:19.3081 | 0 | ERROR | VERTIGO | IgniteTests | Critical
> system error detected. Will be handled accordingly to configured handler
> [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0,
> super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet
> [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]],
> failureCtx=FailureContext [type=SYSTEM_WORKER_TERMINATION, err=class
> o.a.i.IgniteException: Invalid array specification:
> MassTransit.Initializers.PropertyConverters.MessageDataPropertyConverter
> +<MassTransit-Initializers-IPropertyConverter<MassTransit-MessageData<System-Byte\[\]>\,MassTransit-MessageData<System-String>>-Convert>d__4`
> 1]]
> 2021-10-28 12:57:19.3081 | 0 | ERROR | VERTIGO | FailureProcessor | No
> deadlocked threads detected.
> 2021-10-28 12:57:19.3567 | 0 | ERROR | VERTIGO | FailureProcessor |
> Thread dump at 2021/10/28 10:57:19 UTC
>

Reply via email to