Stream: troubleshooting

Topic: EZID: dataset publication failing on updateIdentifierStatus


view this post on Zulip maría a. matienzo (Sep 18 2024 at 17:01):

we're trying to debug an issue in our production dataverse related to publication of metadata-only datasets. when we try to publish, we're seeing in the logs something like the following (when the log levels are set to FINE for the EZIdDOIProvider):

[2024-09-18T10:04:51.504-0700] [Payara 6.2024.7] [INFO] [] [edu.harvard.iq.dataverse.engine.command.impl.FinalizeDatasetPublicationCommand] [tid: _ThreadID=243 _ThreadName=__ejb-thread-pool12] [timeMillis: 1726679091504] [levelValue: 800] [[
  Finalizing publication of the dataset doi:10.60503/D3/EEKRZR]]

[2024-09-18T10:04:51.532-0700] [Payara 6.2024.7] [FINE] [] [edu.harvard.iq.dataverse.pidproviders.doi.ezid.EZIdDOIProvider] [tid: _ThreadID=243 _ThreadName=__ejb-thread-pool12] [timeMillis: 1726679091532] [levelValue: 500] [CLASSNAME: edu.harvard.iq.dataverse.pidproviders.doi.ezid.EZIdDOIProvider] [METHODNAME: publicizeIdentifier] [[
  publicizeIdentifier - dvObject]]

[2024-09-18T10:04:51.533-0700] [Payara 6.2024.7] [FINE] [] [edu.harvard.iq.dataverse.pidproviders.doi.ezid.EZIdDOIProvider] [tid: _ThreadID=243 _ThreadName=__ejb-thread-pool12] [timeMillis: 1726679091533] [levelValue: 500] [CLASSNAME: edu.harvard.iq.dataverse.pidproviders.doi.ezid.EZIdDOIProvider] [METHODNAME: updateIdentifierStatus] [[
  updateIdentifierStatus]]

[2024-09-18T10:04:51.533-0700] [Payara 6.2024.7] [WARNING] [] [edu.harvard.iq.dataverse.engine.command.impl.FinalizeDatasetPublicationCommand] [tid: _ThreadID=243 _ThreadName=__ejb-thread-pool12] [timeMillis: 1726679091533] [levelValue: 900] [[
  Failed to register the identifier doi:10.60503/D3/EEKRZR, or to register a file in the dataset; notifying the user(s), unlocking the dataset]]

are there further suggestions about how to dig into this? it seems isolated to a couple of records right now.

view this post on Zulip Philip Durbin 🚀 (Sep 18 2024 at 17:36):

Hmm, it would help to print out this Throwable to see what the problem was: https://github.com/IQSS/dataverse/blob/v6.3/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/FinalizeDatasetPublicationCommand.java#L424

view this post on Zulip maría a. matienzo (Sep 18 2024 at 19:00):

okay, this is is strange - saving is now failing on new datasets too:

2024-09-18T11:59:39.788-0700] [Payara 6.2024.7] [WARNING] [] [jakarta.enterprise.resource.webcontainer.faces.lifecycle] [tid: _ThreadID=110 _ThreadName=http-thread-pool::jk-connector(5)] [timeMillis: 1726685979788] [levelValue: 900] [[
  #{DatasetPage.save}: /dataset.xhtml @992,44 action="#{DatasetPage.save}": java.lang.NullPointerException: Cannot invoke "edu.harvard.iq.dataverse.GlobalId.asString()" because the return value of "edu.harvard.iq.dataverse.Dataset.getGlobalId()" is null
jakarta.faces.FacesException: #{DatasetPage.save}: /dataset.xhtml @992,44 action="#{DatasetPage.save}": java.lang.NullPointerException: Cannot invoke "edu.harvard.iq.dataverse.GlobalId.asString()" because the return value of "edu.harvard.iq.dataverse.Dataset.getGlobalId()" is null

view this post on Zulip maría a. matienzo (Sep 18 2024 at 19:03):

(this is an upgraded install from 6.1 to the patched 6.3)

view this post on Zulip Philip Durbin 🚀 (Sep 18 2024 at 19:04):

null global id (PID), yuck

view this post on Zulip maría a. matienzo (Sep 18 2024 at 19:05):

as far as i know, our EZID credentials are set up in the jvm config, and that shouldn't have changed

view this post on Zulip Philip Durbin 🚀 (Sep 18 2024 at 19:07):

In https://github.com/IQSS/dataverse/pull/10234 for 6.2 we did a fairly major refactoring of the PID provider code. I hope we didn't break EZID.

view this post on Zulip Philip Durbin 🚀 (Sep 18 2024 at 19:07):

We used to use EZID ourselves, before it became California only.

view this post on Zulip maría a. matienzo (Sep 18 2024 at 19:10):

i gather from the discussion on that pr and #10557 that the configuration format may have changed? is that the case?

view this post on Zulip Philip Durbin 🚀 (Sep 18 2024 at 19:11):

Yes, it's certainly possible!

view this post on Zulip Philip Durbin 🚀 (Sep 18 2024 at 19:11):

I'm not sure how helpful this is, but in dev I use these FAKE settings: https://github.com/IQSS/dataverse/blob/v6.3/docker-compose-dev.yml#L54-L59

view this post on Zulip Philip Durbin 🚀 (Sep 18 2024 at 19:12):

This might help: #docs > domain.xml example for configuring DataCite PID provider

view this post on Zulip Philip Durbin 🚀 (Sep 18 2024 at 19:13):

(I know you're on EZID, but it might help.)

view this post on Zulip maría a. matienzo (Sep 18 2024 at 19:14):

okay. yes, our configuration probably needs to look different. we'll probably need to do some testing on our side and coordinate with our devops folks.

view this post on Zulip maría a. matienzo (Sep 18 2024 at 19:15):

we currently only have dataverse.pid.ezid.username, dataverse.pid.ezid.password, and dataverse.pid.ezid.api-url set

view this post on Zulip Philip Durbin 🚀 (Sep 18 2024 at 19:19):

Ok. If you have any suggestions for the guides or release notes, please let us know!

view this post on Zulip maría a. matienzo (Sep 18 2024 at 20:10):

@Philip Durbin 🐉 will do. i think the big thing is that if configuration structure for Dataverse changes in a breaking way, that should be called out very clearly in the upgrade procedures.

view this post on Zulip Philip Durbin 🚀 (Sep 18 2024 at 20:12):

@María A. Matienzo I absolutely agree. https://github.com/IQSS/dataverse/releases/tag/v6.2 says "While backward compatibility for installations using a single PID Provider account is provided, updating to use the new microprofile settings is highly recommended and will be required in a future version."

But it sounds like you aren't seeing the promised backward compatibility. :thinking:

view this post on Zulip maría a. matienzo (Sep 18 2024 at 20:13):

@Philip Durbin 🐉 yeah, that seems to be the case :face_with_diagonal_mouth:

view this post on Zulip Philip Durbin 🚀 (Sep 18 2024 at 20:18):

I guess I would try following the DataCite pattern I showed in #docs > domain.xml example for configuring DataCite PID provider

view this post on Zulip maría a. matienzo (Sep 18 2024 at 20:18):

yup, we'll try that next

view this post on Zulip Philip Durbin 🚀 (Sep 18 2024 at 20:18):

great

view this post on Zulip Jay Sundu (Sep 18 2024 at 20:31):

Hi @Philip Durbin 🐉 is * dataverse.spi.pidproviders.directory not needed? I don't see it in your examples.

view this post on Zulip Philip Durbin 🚀 (Sep 18 2024 at 20:38):

Not needed. Someday it will be useful, if people create their own PID providers. They'll drop their own jar file in, like we have for exporters, if you're familiar with that. It's for extensibility. Modularity.

view this post on Zulip Jay Sundu (Sep 18 2024 at 21:13):

Thanks again @Philip Durbin 🐉 we got it working now.

view this post on Zulip Philip Durbin 🚀 (Sep 19 2024 at 11:01):

Phew! Should we add something to the release notes and the docs? Suggestions and pull requests welcome!


Last updated: Oct 30 2025 at 06:21 UTC