dcache icon indicating copy to clipboard operation
dcache copied to clipboard

7.2.17 get NPE when uploading file using WebDAV...

Open DmitryLitvintsev opened this issue 2 years ago • 3 comments

I see this in pool log:

java.lang.NullPointerException: null
        at org.dcache.notification.BillingMessageSerializer.serialize(BillingMessageSerializer.java:82)
        at org.dcache.notification.BillingMessageSerializer.serialize(BillingMessageSerializer.java:17)
        at org.apache.kafka.common.serialization.Serializer.serialize(Serializer.java:62)
        at org.apache.kafka.clients.producer.KafkaProducer.doSend(KafkaProducer.java:903)
        at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:865)
        at org.springframework.kafka.core.DefaultKafkaProducerFactory$CloseSafeProducer.send(DefaultKafkaProducerFactory.java:591)
        at org.springframework.kafka.core.KafkaTemplate.doSend(KafkaTemplate.java:404)
        at org.springframework.kafka.core.KafkaTemplate.send(KafkaTemplate.java:216)
        at org.springframework.kafka.core.KafkaTemplate.sendDefault(KafkaTemplate.java:195)
        at org.dcache.pool.classic.DefaultPostTransferService.sendBillingInfo(DefaultPostTransferService.java:152)
        at org.dcache.pool.classic.DefaultPostTransferService.lambda$execute$1(DefaultPostTransferService.java:146)
        at org.dcache.util.FireAndForgetTask.run(FireAndForgetTask.java:28)
        at org.dcache.util.CDCExecutorServiceDecorator$WrappedRunnable.run(CDCExecutorServiceDecorator.java:130)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)

The client (curl) finished successfully,

DmitryLitvintsev avatar Jul 05 '22 19:07 DmitryLitvintsev

Has this been looked at? I just deployed trunk and I see the same exception on upload

DmitryLitvintsev avatar Sep 16 '22 20:09 DmitryLitvintsev

I think you have a broken dCache deployment.

Commit a7a940bc0c refactored this file (BillingMessageSerializer.java) and changed the method names. The stack-trace method names do not match the new structure. Commit a7a940bc0c was first included with dCache v6.2.0, so this suggests we're looking at v6.1 or older code.

Even then, I'm struggling to find code that matches the line numbers within the stack-trace.

BillingMessageSerializer is a rather monolithic (everything in one function) class. It doesn't really call other methods within the class. This is especially true before a7a940bc0c. My guess (only a guess) is that this dCache is running some Fermi-custom version of BillingMessageSerializer that does "something" and then calls the regular code.

That custom code is somehow incompatible with 7.2.17. However, if my analysis is correct, the pool is running at lease one jar file from an unsupported version of dCache.

paulmillar avatar Sep 18 '22 17:09 paulmillar

There is also issue https://github.com/dCache/dcache/issues/6783 on that same problem. That issue observed on the clean install of trunk on all servers. So all is consistent.

DmitryLitvintsev avatar Sep 22 '22 14:09 DmitryLitvintsev

Is this issue fixed by #6783 's fix (1723a4fc) as well?

lemora avatar Oct 17 '22 07:10 lemora

#6783 fixed this

mksahakyan avatar Dec 14 '22 14:12 mksahakyan