Hi Pavel,

Thanks for the clarification and for filing a ticket!

Yes, I'm using a CacheConfiguration with a QueryEntity, like

CacheConfigurationconfiguration= newCacheConfiguration(cacheName, newQueryEntity(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-2812: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-2812: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-2812:57:19.3081| 0| ERROR| VERTIGO | GridDiscoveryManager
    | Exceptionin discovery notifier worker thread.
    2021-10-2812: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-2812:57:19.3081| 0| ERROR| VERTIGO | FailureProcessor | No
    deadlocked threads detected.
    2021-10-2812:57:19.3567| 0| ERROR| VERTIGO | FailureProcessor |
    Thread dump at 2021/10/2810:57:19UTC

--
Emilio Cherubini
Head of Software

emi...@ddrobotec.com

ddrobotec
by Dynamic Devices AG
Technoparkstrasse 1
8005 Zurich
Switzerland

www.ddrobotec.com

Reply via email to