-
Notifications
You must be signed in to change notification settings - Fork 535
Description
There are several reports of publications failing, potentially intermittently for develop and older versions. From looking into this, I think the issue (or at least one of them) is a bug in Dataverse in which the check when generating GlobalIds for files has been sending a null value instead of the proposed identifier. I suspect that a change at DataCite which would have changed it's response to seeing a call to /metadata/null from a error to a 200 status code (looks like they send page 1 of the list of 16M DOIs now) has uncovered this. If DataCite responds quickly, Dataverse now sits in a while loop generating new IDs over and over as the 200 response is interpreted as all of them existing. (If DataCite is bogged down (perhaps due to lots of calls to check null identifiers from somewhere...), it may instead respond with 502 status, which I've also seen, which then causes publication to fail. This case shows exceptions in the log, whereas the first doesn't ever report a problem and just hangs for minutes until some timeout occurs.)
I think a useful fix would be to correct the DV bug by sending the newly generated ID, i.e. by refactoring the GlobalIdServiceBeans to test alreadyExists(GlobalId) so that the ID doesn't have to belong to a DVObject before it can be tested. Hoping to do this now and be able to back port to v4.9.4...