Я знаю, что подобный стек был опубликован другими. Мой вопрос «похоже, что Ignite пытается десериализовать GridClosureProcessor (или замыкание из него?). Если это так, почему он это делает? MyCallable упоминается сверху (на самом деле не в стеке).
В этом пути к коду не происходит размещения кэша, если они не являются внутренними. Я упоминаю об этом из-за комментария к другому сообщению о том, что «Неизвестная пара» может быть вызвана неправильным типом кэша.
Я сосредотачиваюсь на
Не удалось десериализовать объект
[TypeName = org.apache.ignite.internal.processors.closure.GridClosureProcessor $ С2]
Вот и все остальное.
[2019-04-08 22: 20: 23,724] [ОШИБКА] [pub- # 63] [GridJobWorker] Не удалось
инициализировать работу
[JobId = 800890ff961-7ff6a786-9d4d-43d8-91a0-70225c5e3a4a,
ses = GridJobSessionImpl [ses = GridTaskSessionImpl
[TaskName = com.obfucorp.aa.project.core.jobs.MyCallable,
dep = GridDeployment [ts = 1554761996013, depMode = SHARED,
clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6,
clsLdrId = 730290ff961-8d93b961-09f2-48c3-bd2f-49db31aae61e, userVer = 0,
LOC = истина,
sampleClsName = o.a.i.i.processors.cache.GridCacheProcessor $ RemovedItemsCleanupTask $ 1,
pendingUndeploy = false, undeployed = false, использование = 1],
taskClsName = com.obfucorp.aa.project.core.jobs.MyCallable,
sesId = 700890ff961-7ff6a786-9d4d-43d8-91a0-70225c5e3a4a,
startTime = 1554762023663, endTime = 9223372036854775807,
taskNodeId = 7ff6a786-9d4d-43d8-91a0-70225c5e3a4a,
clsLdr=sun.misc.Launcher$AppClassLoader@764c12b6, closed = false,
cpSpi = ноль, failSpi = ноль, loadSpi = ноль, использование = 1, fullSup = false,
внутренний = ложь, topPred = ноль,
subjId = 7ff6a786-9d4d-43d8-91a0-70225c5e3a4a, mapFut = IgniteFuture
[orig = GridFutureAdapter [ignoreInterrupts = false, состояние = INIT, res = null,
hash = 314803578]], execName = null],
jobId = 800890ff961-7ff6a786-9d4d-43d8-91a0-70225c5e3a4a]] class
org.apache.ignite.IgniteCheckedException: не удалось десериализовать объект
[TypeName = org.apache.ignite.internal.processors.closure.GridClosureProcessor $ С2]
в
org.apache.ignite.internal.util.IgniteUtils.unmarshal (IgniteUtils.java:9908)
в
org.apache.ignite.internal.processors.job.GridJobWorker.initialize (GridJobWorker.java:438)
в
org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest (GridJobProcessor.java:1117)
в
org.apache.ignite.internal.processors.job.GridJobProcessor $ JobExecutionListener.onMessage (GridJobProcessor.java:1921)
в
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener (GridIoManager.java:1555)
в
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0 (GridIoManager.java:1183)
в
org.apache.ignite.internal.managers.communication.GridIoManager.access $ 4200 (GridIoManager.java:126)
в
org.apache.ignite.internal.managers.communication.GridIoManager $ 9.run (GridIoManager.java:1090)
в
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)
в
java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624)
at java.lang.Thread.run (Thread.java:748) Причина: класс
org.apache.ignite.binary.BinaryObjectException: не удалось десериализовать
объект
[TypeName = org.apache.ignite.internal.processors.closure.GridClosureProcessor $ С2]
в
org.apache.ignite.internal.binary.BinaryClassDescriptor.read (BinaryClassDescriptor.java:875)
в
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0 (BinaryReaderExImpl.java:1762)
в
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize (BinaryReaderExImpl.java:1714)
в
org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize (GridBinaryMarshaller.java:310)
в
org.apache.ignite.internal.binary.BinaryMarshaller.unmarshal0 (BinaryMarshaller.java:99)
вorg.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal (AbstractNodeNameAwareMarshaller.java:82) в org.apache.ignite.internal.util.IgniteUtils.unmarshal (IgniteUtils.java:9902) ... или более 10 классов, вызванных:apache.ignite.binary.BinaryInvalidTypeException: неизвестная пара [platformId = 0, typeId = -1409390795] в org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId (BinaryContext.java:696) в org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0 (BinaryReaderExImpl.java:1755) в org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize (BinaryReaderExImpl.java:1714) в org.apache.ignite.internal.binary.BinaryOjects.Java: 1799) в org.apache.ignite.internal.binary.BinaryReaderExImpl.readObject (BinaryReaderExImpl.java:1329) в org.apache.ignite.internal.processors.closure.GridClosureProcessor $ C2.readBinary (GridClosureProcessor.java:)в org.apache.ignite.internal.binary.BinaryClassDescriptor.read (BinaryClassDescriptor.java: 834) ... еще 16 причин: java.lang.ClassNotFoundException: неизвестная пара [platformId = 0, typeId = -1409390795] в org.apache.ignite.internal.MarshallerContextImpl.getClassName (MarshallerContextImpl.java:385 at)org.apache.ignite.internal.MarshallerContextImpl.getClass (MarshallerContextImpl.java:335) в org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId (BinaryContext.java:687) ... еще 22 *
1016 * обновление - хотел отметить, что происходит новое развертывание.Там нет старых файлов или ничего не сохранилось вокруг.Все классы либо извлекаются из четных, либо заново скомпилированы.ty.
Павел, вот код (Scala) (отредактированный)
object MyCallable {
type FooList = Array[Foo]
}
class MyCallable(cacheName: String) extends IgniteCallable[FooList] with Serializable with LazyLogging {
@IgniteInstanceResource
private var ignite: Ignite = _
override def call(): FooList = {
logger.debug("callable called.");
val fooCache = ignite.getOrCreateCache[String, Foo](cacheName)
val qry = new ScanQuery[String, Foo]()
qry.setLocal(true)
val cursor = fooCache.query(qry)
val ret = cursor.iterator().asScala.map(e => e.getValue).toArray
logger.info("load status array: {}", ret.mkString)
return ret
}
@IgniteInstanceResource
def setIgnite(ignite: Ignite): Unit = {
this.ignite = ignite
}
}