Bug #7283
Replication exception during setReplicationStatus()
100%
Description
Replication seems to be failing due to the following exception:
/var/log/dataone/replicate/cn-replication.log
[ERROR] 2015-07-28 16:26:19,699 (ReplicationService:setReplicationStatus:219) Error in calling setReplicationStatus() for identifier autogen.2015051410063088508, target node urn:node:mnDemo6 and status of REQUESTED: Couldn't resolve the multipart request: null
org.dataone.service.exceptions.ServiceFailure: Couldn't resolve the multipart request: null
at org.dataone.service.util.ExceptionHandler.deserializeXml(ExceptionHandler.java:633)
at org.dataone.service.util.ExceptionHandler.deserializeXmlAndThrowException(ExceptionHandler.java:517)
at org.dataone.service.util.ExceptionHandler.deserializeAndThrowException(ExceptionHandler.java:363)
at org.dataone.service.util.ExceptionHandler.deserializeAndThrowException(ExceptionHandler.java:313)
at org.dataone.service.util.ExceptionHandler.filterErrors(ExceptionHandler.java:107)
at org.dataone.service.util.ExceptionHandler.filterErrors(ExceptionHandler.java:82)
at org.dataone.client.rest.HttpMultipartRestClient.doPutRequest(HttpMultipartRestClient.java:426)
at org.dataone.client.v2.impl.MultipartCNode.setReplicationStatus(MultipartCNode.java:1658)
The problem comes from CNResourceHandler.setReplicationStatus(pid) on the second of these lines:
Map files = collectMultipartFiles();
failure = ExceptionHandler.deserializeXml(new FileInputStream(files.get("failure")),
"Replication failed for an unknown reason.");
Turning on DEBUG logging shows the first line runs successfully:
metacat 20150728-22:28:31: [DEBUG]: done iterating the request... [edu.ucsb.nceas.metacat.restservice.D1ResourceHandler]
This could be the culprit: collectMultipartFiles() doesn't seem to add an entry to the return map with a "failure" key,
which probably yields a NPE in the FileInputStream constructor.
History
#1 Updated by Ben Leinfelder over 9 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 30
Committed change to metacat - can rebuild and deploy in dev environment to verify.
#2 Updated by Ben Leinfelder over 9 years ago
- Status changed from In Progress to Testing
- % Done changed from 30 to 50
Okay, the 3 CN devs have this change applied - test as you wish!
#3 Updated by Ben Leinfelder over 9 years ago
- Status changed from Testing to Closed
- % Done changed from 50 to 100
Looks like those particular errors have been resolved by this change.