Hi,
when testing 3rd-party-copy requests on our (semi-)productive dCache instance running v12.0.1 we ran into the problem that the transfers do not initiate because of an error in the RemoteTransferManager. We have reliably reproduced the error several times.
Copy request:
gfal-copy davs://bwlts-dcache-door.scc.kit.edu:2880/ka/scc_sdm/test_arturgo/test_3GB_1.file davs://bwlts-dcache-door.scc.kit.edu:2880/ka/scc_sdm/test_arturgo/test_3GB_2.file --checksum-mode both --force
Error in pool logs:
31 Aug 2026 11:28:03 (lsdf-02-106-e-wT) [door:WebDAV-bwlts-dcache-door@webdav-Domain:AAZaVGtEMgA RemoteTransferManager PoolAcceptFile 0000197A328BADE641DBBE6FDACE36446D71] Uncaught exception in thread lsdf-02-106-e-wT-6
java.lang.NoClassDefFoundError: Could not initialize class org.dcache.pool.movers.RemoteHttpDataTransferProtocol
at org.dcache.pool.classic.RemoteHttpTransferService.createMoverProtocol(RemoteHttpTransferService.java:177)
at org.dcache.pool.classic.AbstractMoverProtocolTransferService.createMover(AbstractMoverProtocolTransferService.java:86)
at org.dcache.pool.classic.RemoteHttpTransferService.createMover(RemoteHttpTransferService.java:140)
at org.dcache.pool.classic.PoolV4.createMover(PoolV4.java:727)
at org.dcache.pool.classic.PoolV4.lambda$queueIoRequest$5(PoolV4.java:743)
at org.dcache.pool.classic.MoverRequestScheduler.createRequest(MoverRequestScheduler.java:247)
at org.dcache.pool.classic.MoverRequestScheduler.lambda$getOrCreateMover$2(MoverRequestScheduler.java:217)
at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
at org.dcache.pool.classic.MoverRequestScheduler.getOrCreateMover(MoverRequestScheduler.java:214)
at org.dcache.pool.classic.IoQueueManager.getOrCreateMover(IoQueueManager.java:151)
at org.dcache.pool.classic.PoolV4.queueIoRequest(PoolV4.java:742)
at org.dcache.pool.classic.PoolV4.ioFile(PoolV4.java:755)
at org.dcache.pool.classic.PoolV4.messageArrived(PoolV4.java:971)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.dcache.cells.CellMessageDispatcher$LongReceiver.deliver(CellMessageDispatcher.java:286)
at org.dcache.cells.CellMessageDispatcher.call(CellMessageDispatcher.java:188)
at org.dcache.cells.AbstractCell.messageArrived(AbstractCell.java:302)
at dmg.cells.nucleus.CellAdapter.messageArrived(CellAdapter.java:856)
at dmg.cells.nucleus.CellNucleus$DeliverMessageTask.run(CellNucleus.java:1318)
at org.dcache.util.BoundedExecutor$Worker.run(BoundedExecutor.java:247)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at dmg.cells.nucleus.CellNucleus.lambda$wrapLoggingContext$2(CellNucleus.java:764)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.lang.ExceptionInInitializerError: Exception com.google.common.collect.Ordering$IncomparableValueException: Cannot compare value: MD5 [in thread "lsdf-02-106-e-wT-3"]
at com.google.common.collect.ExplicitOrdering.rank(ExplicitOrdering.java:46)
at com.google.common.collect.ExplicitOrdering.compare(ExplicitOrdering.java:40)
at java.base/java.util.TimSort.countRunAndMakeAscending(TimSort.java:355)
at java.base/java.util.TimSort.sort(TimSort.java:220)
at java.base/java.util.Arrays.sort(Arrays.java:1308)
at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:353)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at org.dcache.util.Checksums.buildGenericWantDigest(Checksums.java:190)
at org.dcache.pool.movers.RemoteHttpDataTransferProtocol.<clinit>(RemoteHttpDataTransferProtocol.java:201)
... 25 common frames omitted
Looking at the blame for org.dcache.util.Checksums.buildGenericWantDigest the most recent change was b20368c (Introducing RFC 9530 support).
Hi,
when testing 3rd-party-copy requests on our (semi-)productive dCache instance running v12.0.1 we ran into the problem that the transfers do not initiate because of an error in the RemoteTransferManager. We have reliably reproduced the error several times.
Copy request:
Error in pool logs:
Looking at the blame for org.dcache.util.Checksums.buildGenericWantDigest the most recent change was b20368c (Introducing RFC 9530 support).