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