IgniteException:无法启动处理器:GridProcessorAdapter

时间:2018-01-31 11:58:19

标签: c# ignite

使用Apache Ignite.Net 2.3.0

在测试服务器上部署应用程序 - Windows 2016

Ignite服务器无法启动.NET记录错误:

2018-01-31 14:37:32.7464|WARN|This operating system has been tested less rigorously: Windows Server 2016 10.0 amd64. Our team will appreciate the feedback if you experience any problems running ignite in this environment. 
2018-01-31 14:37:33.2150|WARN|Checkpoints are disabled (to enable configure any GridCheckpointSpi implementation) 
2018-01-31 14:37:33.2643|WARN|Collision resolution is disabled (all jobs will be activated upon arrival). 
2018-01-31 14:37:34.0801|WARN|Marshaller is automatically set to o.a.i.i.binary.BinaryMarshaller (other nodes must have the same marshaller type). 
2018-01-31 14:37:34.1706|ERROR|Exception during start processors, node will be stopped and close connections 
2018-01-31 14:37:34.1706|ERROR|Got exception while starting (will rollback startup routine). 
2018-01-31 14:37:34.1706|WARN|Attempt to stop starting grid. This operation cannot be guaranteed to be successful. 
2018-01-31 14:37:34.5644|ERROR|Server start fail 
2018-01-31 14:37:45.2964|ERROR|Message: Server node failed

内部JAVA记录错误:

Message: Failed to start processor: GridProcessorAdapter []
StackTrace:    at Apache.Ignite.Core.Impl.Unmanaged.UnmanagedCallbacks.Error(Void* target, Int32 errType, SByte* errClsChars, Int32 errClsCharsLen, SByte* errMsgChars, Int32 errMsgCharsLen, SByte* stackTraceChars, Int32 stackTraceCharsLen, Void* errData, Int32 errDataLen)
   at Apache.Ignite.Core.Impl.Unmanaged.IgniteJniNativeMethods.IgnitionStart(Void* ctx, SByte* cfgPath, SByte* gridName, Int32 factoryId, Int64 dataPtr)
   at Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils.IgnitionStart(UnmanagedContext ctx, String cfgPath, String gridName, Boolean clientMode, Boolean userLogger)
   at Apache.Ignite.Core.Ignition.Start(IgniteConfiguration cfg)
   at Core.IgniteServer.Run() in ...
Inner exception: 
Message: class org.apache.ignite.IgniteException: Failed to start processor: GridProcessorAdapter []
    at org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:966)
    at org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap.start(PlatformAbstractBootstrap.java:53)
    at org.apache.ignite.internal.processors.platform.PlatformIgnition.start(PlatformIgnition.java:75)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start processor: GridProcessorAdapter []
    at org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:1873)
    at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:969)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1909)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1652)
    at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1080)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:578)
    at org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap.start(PlatformAbstractBootstrap.java:48)
    ... 1 more
Caused by: class org.apache.ignite.IgniteCheckedException: Reading marshaller mapping from file -1726098484.classname1 failed.
    at org.apache.ignite.internal.MarshallerMappingFileStore.restoreMappings(MarshallerMappingFileStore.java:176)
    at org.apache.ignite.internal.MarshallerContextImpl.onMarshallerProcessorStarted(MarshallerContextImpl.java:511)
    at org.apache.ignite.internal.processors.marshaller.GridMarshallerMappingProcessor.start(GridMarshallerMappingProcessor.java:114)
    at org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:1870)
    ... 7 more
Caused by: java.io.FileNotFoundException: C:\Windows\TEMP\ignite\work\marshaller\-1726098484.classname1 (Access is denied)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at org.apache.ignite.internal.MarshallerMappingFileStore.restoreMappings(MarshallerMappingFileStore.java:168)
    ... 10 more

我怀疑服务器正在运行(或之前运行)另一个不同的Ignite服务,所以我添加了发现设置(如here所述):

DiscoverySpi = new TcpDiscoverySpi
{
    LocalPort = _config.Value.Ignite.LocalPort,
    LocalPortRange = _config.Value.Ignite.PortRange,
    IpFinder = new TcpDiscoveryStaticIpFinder
    {
        Endpoints = new []{ $"127.0.0.1:{_config.Value.Ignite.LocalPort}..{_config.Value.Ignite.LocalPort + _config.Value.Ignite.PortRange}" }
    }
},
CommunicationSpi = new TcpCommunicationSpi
{
    LocalPort = _config.Value.Ignite.LocalPort - 400
}
来自应用配置的

LocalPortPortRange值。尝试使用不同的端口设置,错误是相同的

检查此文件 -  C:\ Windows \ TEMP \ ignite \ work \ marshaller-1726098484.classname1它存在,但包含来自不同项目的类和命名空间。

我是否需要为内部对象设置提供其他设置?或者更多配置?

1 个答案:

答案 0 :(得分:5)

看起来Ignite工作目录与另一个节点发生冲突。

尝试将IgniteConfiguration.WorkDirectory属性显式设置为某个已知为空并且该节点专用的目录。