dcache
dcache copied to clipboard
7.2.17 get NPE when uploading file using WebDAV...
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,
Has this been looked at? I just deployed trunk and I see the same exception on upload
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.
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.
Is this issue fixed by #6783 's fix (1723a4fc) as well?
#6783 fixed this