You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by colinc <co...@yahoo.co.uk> on 2019/08/14 08:18:20 UTC

IgniteQueue.removeAll() throwing NPE

I am using IgniteQueue to store some POJOs in memory which are removed at a
15 minute interval after some processing. During the processing, elements
are added and removed from the queue multiple times using removeAll() api.
Below is my queue configuration - 

@Override
    public IgniteQueue<R> create(QueueName queueName, int capacity) {
        return ignite.queue(queueName.getQueueName(),// Queue name.
                capacity,                           // Queue capacity. 0 for
unbounded queue.
                getCollectionConfiguration());
    }

    private CollectionConfiguration getCollectionConfiguration() {
        CollectionConfiguration colCfg = new CollectionConfiguration();
        colCfg.setCollocated(true);
        colCfg.setCacheMode(REPLICATED);
        colCfg.setAtomicityMode(TRANSACTIONAL);

        return colCfg;
    }

Recently, we have sapprted receiving the below NPE - 

2019-08-09 18:18:39,241 ERROR [Inbound-Main-Pool-13] [TransactionId:
e5b5bfe3-5246-4d54-a4d6-acd550240e13 Request ID - 27845] [ APP=Server,
ACTION=APP_PROCESS, USER=tsgops ] ProcessWorkflowProcessor - Error while
processing CLIENT process
class org.apache.ignite.IgniteException: Failed to serialize object
[typeName=LinkedList]
               at
org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:990)
               at
org.apache.ignite.internal.processors.datastructures.GridCacheQueueAdapter$QueueIterator.remove(GridCacheQueueAdapter.java:687)
               at
java.util.AbstractCollection.removeAll(AbstractCollection.java:376)
               at
org.apache.ignite.internal.processors.datastructures.GridCacheQueueProxy.removeAll(GridCacheQueueProxy.java:180)
               at
com.me.app.service.support.APPOrderProcessIgniteQueueService.removeAll(APPOrderProcessIgniteQueueService.java:63)
               at
com.me.app.service.support.APPOrderContextProcessInputManager.removeAllFromCurrentProcessing(APPOrderContextProcessInputManager.java:201)
               at
com.me.app.service.support.APPOrderContextProcessInputManager.lambda$removeAll$3(APPOrderContextProcessInputManager.java:100)
               at java.lang.Iterable.forEach(Iterable.java:75)
               at
com.me.app.service.support.APPOrderContextProcessInputManager.removeAll(APPOrderContextProcessInputManager.java:100)
               at
com.me.app.service.support.APPOrderContextProcessInputManager.removeAll(APPOrderContextProcessInputManager.java:90)
               at
com.me.app.processor.support.ProcessWorkflowProcessor.processOrders(ProcessWorkflowProcessor.java:602)
               at
com.me.app.processor.support.ProcessWorkflowProcessor.lambda$null$13(ProcessWorkflowProcessor.java:405)
               at java.util.HashMap.forEach(HashMap.java:1289)
               at
com.me.app.processor.support.ProcessWorkflowProcessor.lambda$null$14(ProcessWorkflowProcessor.java:368)
               at java.util.HashMap.forEach(HashMap.java:1289)
               at
com.me.app.processor.support.ProcessWorkflowProcessor.lambda$null$15(ProcessWorkflowProcessor.java:354)
               at java.util.HashMap.forEach(HashMap.java:1289)
               at
com.me.app.processor.support.ProcessWorkflowProcessor.lambda$null$16(ProcessWorkflowProcessor.java:345)
               at java.util.HashMap.forEach(HashMap.java:1289)
               at
com.me.app.processor.support.ProcessWorkflowProcessor.lambda$executeProcess$17(ProcessWorkflowProcessor.java:337)
               at java.util.HashMap.forEach(HashMap.java:1289)
               at
com.me.app.processor.support.ProcessWorkflowProcessor.executeProcess(ProcessWorkflowProcessor.java:330)
               at
com.me.app.processor.support.ProcessWorkflowProcessor.executeProcess(ProcessWorkflowProcessor.java:302)
               at
com.me.app.processor.support.ProcessWorkflowProcessor.lambda$processProcessFromQueue$6(ProcessWorkflowProcessor.java:282)
               at
com.me.app.locking.support.IgniteLockingService.execute(IgniteLockingService.java:39)
               at
com.me.app.locking.support.IgniteLockingService.execute(IgniteLockingService.java:68)
               at
com.me.app.processor.support.ProcessWorkflowProcessor.processProcessFromQueue(ProcessWorkflowProcessor.java:281)
               at
com.me.app.facade.listener.support.APPProcessEventListener.listen(APPProcessEventListener.java:49)
               at
com.me.app.facade.listener.support.APPProcessEventListener.listen(APPProcessEventListener.java:19)
               at
com.me.app.common.listener.support.AbstractEventListener.onMessage(AbstractEventListener.java:44)
               at
com.me.app.common.listener.support.AbstractEventListener$$FastClassBySpringCGLIB$$f1379f74.invoke(<generated>)
               at
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
               at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:721)
               at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
               at
org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85)
               at
com.me.app.common.aop.aspect.MetricsTrackingAspect.trackMetrics(MetricsTrackingAspect.java:142)
               at
com.me.app.common.aop.aspect.MetricsTrackingAspect.logMetricsForListener(MetricsTrackingAspect.java:71)
               at sun.reflect.GeneratedMethodAccessor657.invoke(Unknown
Source)
               at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
               at java.lang.reflect.Method.invoke(Method.java:498)
               at
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)
               at
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618)
               at
org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
               at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
               at
org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85)
               at
com.me.app.core.aop.aspect.LogContextAspect.logMetricsForListener(LogContextAspect.java:43)
               at sun.reflect.GeneratedMethodAccessor596.invoke(Unknown
Source)
               at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
               at java.lang.reflect.Method.invoke(Method.java:498)
               at
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)
               at
org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618)
               at
org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
               at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
               at
org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
               at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
               at
com.ryantenney.metrics.spring.TimedMethodInterceptor.invoke(TimedMethodInterceptor.java:48)
               at
com.ryantenney.metrics.spring.TimedMethodInterceptor.invoke(TimedMethodInterceptor.java:34)
               at
com.ryantenney.metrics.spring.AbstractMetricMethodInterceptor.invoke(AbstractMetricMethodInterceptor.java:59)
               at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
               at
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:656)
               at
com.me.app.facade.listener.support.APPProcessEventListener$$EnhancerBySpringCGLIB$$de3aafae.onMessage(<generated>)
               at
com.me.msg.listeners.MsgListenerSupport.fireIncomingMessageToListener(MsgListenerSupport.java:140)
               at
com.me.msg.listeners.MsgListenerSupport.fireIncomingMessage(MsgListenerSupport.java:103)
               at
com.me.msg.listeners.MsgListenerSupport.fireOnIncomingMessage(MsgListenerSupport.java:84)
               at
com.me.msg.SimpleMsgConnectionDriver$2.run(SimpleMsgConnectionDriver.java:326)
               at
com.me.util.TransactionId$TransactionRunnable.run(TransactionId.java:116)
               at com.me.msg.executor.MsgWorkItem.run(MsgWorkItem.java:41)
               at
com.me.msg.executor.MsgWorkerImpl.run(MsgWorkerImpl.java:109)
               at java.lang.Thread.run(Thread.java:748)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to
serialize object [typeName=LinkedList]
               at
org.apache.ignite.internal.processors.datastructures.GridTransactionalCacheQueueImpl.removeItem(GridTransactionalCacheQueueImpl.java:211)
               at
org.apache.ignite.internal.processors.datastructures.GridCacheQueueAdapter$QueueIterator.remove(GridCacheQueueAdapter.java:682)
               ... 67 more
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to
serialize object [typeName=LinkedList]
               at
org.apache.ignite.internal.util.IgniteUtils.marshal(IgniteUtils.java:10050)
               at
org.apache.ignite.internal.util.IgniteUtils.marshal(IgniteUtils.java:10108)
               at
org.apache.ignite.internal.processors.cache.GridCacheUtils.marshal(GridCacheUtils.java:780)
               at
org.apache.ignite.internal.processors.cache.GridCacheUtils.marshal(GridCacheUtils.java:753)
               at
org.apache.ignite.internal.processors.cache.transactions.IgniteTxEntry.marshal(IgniteTxEntry.java:902)
               at
org.apache.ignite.internal.processors.cache.GridCacheMessage.marshalTx(GridCacheMessage.java:372)
               at
org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxPrepareRequest.prepareMarshal(GridDistributedTxPrepareRequest.java:389)
               at
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onSend(GridCacheIoManager.java:1114)
               at
org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:1148)
               at
org.apache.ignite.internal.processors.cache.distributed.near.GridNearPessimisticTxPrepareFuture.preparePessimistic(GridNearPessimisticTxPrepareFuture.java:366)
               at
org.apache.ignite.internal.processors.cache.distributed.near.GridNearPessimisticTxPrepareFuture.prepare(GridNearPessimisticTxPrepareFuture.java:176)
               at
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.prepareNearTxLocal(GridNearTxLocal.java:3273)
               at
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.commitNearTxLocalAsync(GridNearTxLocal.java:3333)
               at
org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.commit(GridNearTxLocal.java:3300)
               at
org.apache.ignite.internal.processors.datastructures.GridTransactionalCacheQueueImpl$4.call(GridTransactionalCacheQueueImpl.java:200)
               at
org.apache.ignite.internal.processors.cache.GridCacheUtils.retryTopologySafe(GridCacheUtils.java:1479)
               at
org.apache.ignite.internal.processors.datastructures.GridTransactionalCacheQueueImpl.removeItem(GridTransactionalCacheQueueImpl.java:189)
               ... 68 more
Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed to
serialize object [typeName=LinkedList]
               at
org.apache.ignite.internal.binary.BinaryClassDescriptor.write(BinaryClassDescriptor.java:835)
               at
org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal0(BinaryWriterExImpl.java:206)
               at
org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:147)
               at
org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:134)
               at
org.apache.ignite.internal.binary.GridBinaryMarshaller.marshal(GridBinaryMarshaller.java:251)
               at
org.apache.ignite.internal.binary.BinaryMarshaller.marshal0(BinaryMarshaller.java:82)
               at
org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.marshal(AbstractNodeNameAwareMarshaller.java:58)
               at
org.apache.ignite.internal.util.IgniteUtils.marshal(IgniteUtils.java:10044)
               ... 84 more
Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed to
serialize object [typeName=T2]
               at
org.apache.ignite.internal.binary.BinaryClassDescriptor.write(BinaryClassDescriptor.java:835)
               at
org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal0(BinaryWriterExImpl.java:206)
               at
org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:147)
               at
org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:134)
               at
org.apache.ignite.internal.binary.BinaryWriterExImpl.doWriteObject(BinaryWriterExImpl.java:496)
               at
org.apache.ignite.internal.binary.BinaryWriterExImpl.doWriteCollection(BinaryWriterExImpl.java:764)
               at
org.apache.ignite.internal.binary.BinaryClassDescriptor.write(BinaryClassDescriptor.java:707)
               ... 91 more
Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed to
write field [name=val1]
               at
org.apache.ignite.internal.binary.BinaryFieldAccessor.write(BinaryFieldAccessor.java:159)
               at
org.apache.ignite.internal.binary.BinaryClassDescriptor.write(BinaryClassDescriptor.java:807)
               ... 97 more
Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed to
marshal object with optimized marshaller:
org.apache.ignite.internal.processors.datastructures.GridCacheQueueAdapter$RemoveProcessor@6d82c986
               at
org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal0(BinaryWriterExImpl.java:186)
               at
org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:147)
               at
org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:134)
               at
org.apache.ignite.internal.binary.BinaryWriterExImpl.doWriteObject(BinaryWriterExImpl.java:496)
               at
org.apache.ignite.internal.binary.BinaryWriterExImpl.writeObjectField(BinaryWriterExImpl.java:1160)
               at
org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.write0(BinaryFieldAccessor.java:682)
               at
org.apache.ignite.internal.binary.BinaryFieldAccessor.write(BinaryFieldAccessor.java:155)
               ... 98 more
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to
serialize object:
org.apache.ignite.internal.processors.datastructures.GridCacheQueueAdapter$RemoveProcessor@6d82c986
               at
org.apache.ignite.internal.marshaller.optimized.OptimizedMarshaller.marshal0(OptimizedMarshaller.java:206)
               at
org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.marshal(AbstractNodeNameAwareMarshaller.java:58)
               at
org.apache.ignite.internal.util.IgniteUtils.marshal(IgniteUtils.java:10044)
               at
org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal0(BinaryWriterExImpl.java:179)
               ... 104 more
Caused by: java.lang.NullPointerException
               at
org.apache.ignite.internal.processors.datastructures.GridCacheQueueAdapter$RemoveProcessor.writeExternal(GridCacheQueueAdapter.java:1021)
               at
org.apache.ignite.internal.marshaller.optimized.OptimizedObjectOutputStream.writeExternalizable(OptimizedObjectOutputStream.java:317)
               at
org.apache.ignite.internal.marshaller.optimized.OptimizedClassDescriptor.write(OptimizedClassDescriptor.java:814)
               at
org.apache.ignite.internal.marshaller.optimized.OptimizedObjectOutputStream.writeObject0(OptimizedObjectOutputStream.java:240)
               at
org.apache.ignite.internal.marshaller.optimized.OptimizedObjectOutputStream.writeObjectOverride(OptimizedObjectOutputStream.java:158)
               at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344)
               at
org.apache.ignite.internal.marshaller.optimized.OptimizedMarshaller.marshal0(OptimizedMarshaller.java:201)
            ... 107 more


P.S. We don't have any class T2 with field val1

Also, the error is not reproducible locally nor on environment on demand. It
occurs only once and then every subsequent calls to remove from queue work
fine.

Thanks.

Posted on behalf of Gurpreet who has been unsuccessful in posting to this
forum.



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: IgniteQueue.removeAll() throwing NPE

Posted by dmagda <dm...@apache.org>.
The issue is being discussed on SO:
https://stackoverflow.com/questions/57473783/ignite-2-5-ignitequeue-removeall-throwing-npe

Created a ticket:
https://issues.apache.org/jira/browse/IGNITE-12101



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/