Search code examples
.net-coreignite

Apache Ignite Crashing In Embedded Mode


I am trying to create an ignite service using aspnetcore background service functionality. When I start the service it works fine, but as soon as a client is attempting to connect I get the following exception:

[09:51:15,746][SEVERE][disco-notifier-worker-#75%ignite-instance-7b562b36-d203-4652-99ec-5fad30b09a3b%][] JVM will be halted immediately due to the failure: [failureCtx=FailureContext [type=SYSTEM_WORKER_TERMINATION, err=class o.a.i.IgniteException: Invalid array specification: Npgsql.TypeHandlers.TextHandler+<Npgsql-TypeHandling-INpgsqlTypeHandler<System-Char[]>-Read>d__7]]

I am using the below configuration for Ignition.Start():

{"IgniteInstanceName":null,"AutoGenerateIgniteInstanceName":true,"GridName":null,"BinaryConfiguration":null,"CacheConfiguration":null,"SpringConfigUrl":null,"JvmDllPath":null,"IgniteHome":null,"JvmClasspath":null,"JvmOptions":["-Xms1024m","-Xmx1024m"],"Assemblies":null,"SuppressWarnings":false,"LifecycleHandlers":null,"JvmInitialMemoryMb":-1,"JvmMaxMemoryMb":-1,"DiscoverySpi":{"IpFinder":{"LocalAddress":null,"MulticastGroup":"228.1.2.4","MulticastPort":47400,"AddressRequestAttempts":2,"ResponseTimeout":"00:00:00.5000000","TimeToLive":null,"Endpoints":["127.0.0.1:47500..47509"]},"SocketTimeout":"00:00:05","AckTimeout":"00:00:05","MaxAckTimeout":"00:10:00","NetworkTimeout":"00:00:05","JoinTimeout":"00:00:00","ForceServerMode":false,"ClientReconnectDisabled":false,"LocalAddress":null,"ReconnectCount":10,"LocalPort":47500,"LocalPortRange":100,"StatisticsPrintFrequency":"00:00:00","IpFinderCleanFrequency":"00:01:00","ThreadPriority":10,"TopologyHistorySize":1000},"CommunicationSpi":null,"EncryptionSpi":null,"ClientMode":false,"IncludedEventTypes":[12,22,45],"LocalEventListeners":null,"MetricsExpireTime":"10675199.02:48:05.4775807","MetricsHistorySize":10000,"MetricsLogFrequency":"00:01:00","MetricsUpdateFrequency":"00:00:02","NetworkSendRetryCount":3,"NetworkSendRetryDelay":"00:00:01","NetworkTimeout":"00:00:05","WorkDirectory":"D:\ApacheIgniteDataJr\","Localhost":null,"IsDaemon":false,"UserAttributes":null,"AtomicConfiguration":null,"TransactionConfiguration":null,"IsLateAffinityAssignment":true,"Logger":null,"FailureDetectionTimeout":"00:00:10","SystemWorkerBlockedTimeout":null,"ClientFailureDetectionTimeout":"00:00:30","PluginConfigurations":null,"EventStorageSpi":null,"MemoryConfiguration":null,"DataStorageConfiguration":{"StoragePath":null,"CheckpointFrequency":"00:03:00","CheckpointThreads":4,"LockWaitTime":"00:00:10","WalHistorySize":20,"WalSegments":10,"WalSegmentSize":67108864,"WalPath":"db/wal","WalArchivePath":"db/wal/archive","WalMode":1,"WalThreadLocalBufferSize":131072,"WalFlushFrequency":"00:00:02","WalFsyncDelayNanos":1000,"WalRecordIteratorBufferSize":67108864,"AlwaysWriteFullPages":false,"MetricsEnabled":false,"MetricsRateTimeInterval":"00:01:00","MetricsSubIntervalCount":5,"CheckpointWriteOrder":1,"WriteThrottlingEnabled":false,"WalCompactionEnabled":false,"MaxWalArchiveSize":1073741824,"SystemRegionInitialSize":41943040,"SystemRegionMaxSize":104857600,"PageSize":4096,"ConcurrencyLevel":16,"WalAutoArchiveAfterInactivity":"-00:00:00.0010000","CheckpointReadLockTimeout":null,"WalPageCompression":0,"WalPageCompressionLevel":null,"DataRegionConfigurations":[{"Name":"ProductName_Region","PersistenceEnabled":true,"InitialSize":104857600,"MaxSize":429496729,"SwapPath":null,"PageEvictionMode":0,"EvictionThreshold":0.9,"EmptyPagesPoolSize":100,"MetricsEnabled":false,"MetricsRateTimeInterval":"00:01:00","MetricsSubIntervalCount":5,"CheckpointPageBufferSize":0,"LazyMemoryAllocation":true}],"DefaultDataRegionConfiguration":{"Name":"Default_Region","PersistenceEnabled":false,"InitialSize":104857600,"MaxSize":429496729,"SwapPath":null,"PageEvictionMode":0,"EvictionThreshold":0.9,"EmptyPagesPoolSize":100,"MetricsEnabled":false,"MetricsRateTimeInterval":"00:01:00","MetricsSubIntervalCount":5,"CheckpointPageBufferSize":0,"LazyMemoryAllocation":true}},"SslContextFactory":null,"PeerAssemblyLoadingMode":0,"PublicThreadPoolSize":16,"StripedThreadPoolSize":16,"ServiceThreadPoolSize":16,"SystemThreadPoolSize":16,"AsyncCallbackThreadPoolSize":16,"ManagementThreadPoolSize":4,"DataStreamerThreadPoolSize":16,"UtilityCacheThreadPoolSize":16,"QueryThreadPoolSize":16,"SqlConnectorConfiguration":null,"ClientConnectorConfiguration":null,"ClientConnectorConfigurationEnabled":true,"LongQueryWarningTimeout":"00:00:03","PersistentStoreConfiguration":null,"IsActiveOnStart":true,"ConsistentId":null,"RedirectJavaConsoleOutput":true,"AuthenticationEnabled":false,"MvccVacuumFrequency":5000,"MvccVacuumThreadCount":2,"SqlQueryHistorySize":1000,"FailureHandler":null,"SqlSchemas":["PRODUCTNAME_MODELS"],"ExecutorConfiguration":null,"JavaPeerClassLoadingEnabled":false,"AsyncContinuationExecutor":0}

After starting the node, I am activating and setting baseline auto-adjustment flag.

What am I doing wrong here?


Solution

  • It is a bug in Ignite: https://issues.apache.org/jira/browse/IGNITE-15845, fixed for 2.12 release, which is planned for next week.

    1. You can try the release candidate and see if it works for you https://dist.apache.org/repos/dist/dev/ignite/2.12.0-rc2/apache-ignite-2.12.0-nuget.zip

    2. Or use a workaround - register SQL types (wherever [QuerySqlField] is used) manually in BinaryConfiguration or with ignite.GetBinary().GetBinaryType(typeof(TValue));