Hi there,
How long does it usually take, for a post to be seen on the forum? Maybe I
made a mistake so I will provide my question here. Excuse me if I am being
impatient:
=========================================
Good afternoon everyone,
I have recently run into an issue and I think the problem lies in the
server node configuration. I will attache the output of the stack trace at
the bottom, however I first wish to explain what the software does and how
we are using ignite.
I start multiple server nodes with peerClassEnabled set to true, using a
TcpDiscoveryVmIpFinder and dont set anything other than a port range for
the ipFinder.
Using the REST protocol a ComputeTaskAdapter task is executed which starts
a service and this in turn starts a grpc server, I have placed some scala
code to show what I mean.
class StartService extends ComputeTaskAdapter[String, Any]{
var ignite: Ignite = null;
@IgniteInstanceResource
def setIgnite(someIgnite: Ignite): Unit = {
ignite = someIgnite
}
def map(...)={
...
// port is an integer
val server = new GrpcServer(ignite, port);
val service = new ServiceImpl(name, server);
/*
within the method execute of the Service interface, server.start() is called
*/
val serviceconfig = new ServiceConfiguration();
serviceconfig.setName(name);
serviceconfig.setTotalCount(1);
serviceconfig.setMaxPerNodeCount(1);
ignite.services().deploy(serviceconfig);
...
}
}
this task returns a map with some non important variables.
The grpc server takes the ignite instance created within the above
mentioned computeTask as a variable, I am not sure if this could be the
cause of the issue.
Using grpc protocol, we create a ComputeTask which is executed by the grpc
server some more code below:
class GrpcServer(val ignite:Ignite, val port:Int) extends ..Some Grpc
stuff..{
def someGrpcProtocol(request: Message):Future[String]={
val newTask = new SomeTask();
ignite.compute(ignite.cluster()).execute(newTask, someinput);
Future("Request is being processed");
}
}
If a single server node is started, the program runs without problems.
However, adding more nodes and trying to execute the new tasks on a remote
node or on a node that has a certain attribute gives me a massive stack
trace in the face.
Basically, if I want to execute a task on a node where the service and grpc
server do not reside, the exception happens.
I have placed all custom classes within a jar that lies in the libs folder
of the ignite-bin project.
We are currently on version 2.7
If you require anything else just let me know, ill be on it asap.
Thanks for any help that may come my way.
Cheers!
Here is most of the stack trace:
class org.apache.ignite.binary.BinaryObjectException: Failed to read field
[name=server]
at
org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:192)
at
org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:875)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1764)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1716)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.readField(BinaryReaderExImpl.java:1984)
at
org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.read0(BinaryFieldAccessor.java:703)
at
org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:188)
at
org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:875)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1764)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1716)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.readField(BinaryReaderExImpl.java:1984)
at
org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.read0(BinaryFieldAccessor.java:703)
at
org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:188)
at
org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:875)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1764)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1716)
at
org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:313)
at
org.apache.ignite.internal.binary.BinaryMarshaller.unmarshal0(BinaryMarshaller.java:102)
at
org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:82)
at
org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:10140)
at
org.apache.ignite.internal.processors.job.GridJobWorker.initialize(GridJobWorker.java:440)
at
org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1119)
at
org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:1923)
at
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1569)
at
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1197)
at
org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:127)
at
org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1093)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed to
deserialize object [typeName=io.grpc.internal.ServerImpl]
at
org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:914)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1764)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1716)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.readField(BinaryReaderExImpl.java:1984)
at
org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.read0(BinaryFieldAccessor.java:703)
at
org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:188)
... 29 more
Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed to
read field [name=registry]
at
org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:192)
at
org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:875)
... 34 more
Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed to
deserialize object [typeName=io.grpc.internal.InternalHandlerRegistry]
at
org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:914)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1764)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1716)
at
org.apache.ignite.internal.binary.BinaryReaderExImpl.readField(BinaryReaderExImpl.java:1984)
at
org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.read0(BinaryFieldAccessor.java:703)
at
org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:188)
... 35 more
=======================================
Thanks and kind regards,
Pascoe