> manually specify the QueryEntity queryable fields and indexes in the CacheConfiguration
No need to do that. Just add those calls before ignite.GetOrCreateCache: ignite.GetBinary().GetBinaryType(typeof(TKey)); ignite.GetBinary().GetBinaryType(typeof(TValue)); (substitute actual type names as necessary) This will perform a forced type registration on .NET side and should hopefully fix the issue with cache startup. On Thu, Oct 28, 2021 at 4:27 PM Emilio Cherubini <emi...@ddrobotec.com> wrote: > Hi Pavel, > > Thanks for the clarification and for filing a ticket! > > Yes, I'm using a CacheConfiguration with a QueryEntity, like > CacheConfiguration configuration = new CacheConfiguration(cacheName, new > QueryEntity(typeof(TKey), typeof(TValue))) > { > } > > I tried to manually specify the QueryEntity queryable fields and indexes > in the CacheConfiguration instead of relying on the [QuerySqlField] > attributes like in > https://ignite.apache.org/docs/latest/SQL/sql-api#query-entities. > > But no success. > > I don't know how to register QueryEntity types manually using > ignite.GetBinary().GetBinaryType(typeof(YOUR_TYPE)). Or do I have to > specify a BinaryConfiguration to do that? > > Thanks again, > > Emilio > On 28/10/2021 13:56, Pavel Tupitsyn wrote: > > 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 >> > -- > Emilio Cherubini > Head of Software > emi...@ddrobotec.com > > ddrobotec > by Dynamic Devices AG > Technoparkstrasse 1 > 8005 Zurich > Switzerland > www.ddrobotec.com > >