-
Notifications
You must be signed in to change notification settings - Fork 500
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Published dataset inaccessible after metadata update #10880
Comments
It's possible you could be the second known victim of the bug in the "Update-Current-Version" functionality that we recently announced. If so, it would unfortunately mean that the metadata for the latest version is lost and would have to be restored from a backup or re-entered. The way to verify would be to I think @scolapasta discovered a way to restore the version to a state where the missing metadata can be re-entered via the UI, which could be easier than trying to restore the datasetfield entries from a backup directly. Hopefully he can report here or in the email. If the datasetfields are still in the db, it's still possible you've hit some other issue. If so, we can help figure it out. |
Yes, the method to restore via the UI* is to go manually to the upload file page (using the db id of the dataset) and upload a file to create a draft. You can then view this draft via the UI to a) re add the metadata and b) delete the dummy file you uploaded.
|
@qqmyers & @scolapasta thanks for the info. I realize I need to subscribe to the mailing list, I missed the bug info. I'll plan to deploy the patched version as soon as I can. I do have daily backups so I should be able to restore the affected dataset. How do I identify the |
The dataset table has authority, identifier columns for the dataset persistent id so you can find the dataset id, and then the datasetversion table has a dataset_id column so you can find the version(s) associated with the dataset. |
I confirmed that this query:
does not return any rows. So I suspect that this is the "Update-Current-Version" bug you mentioned. To resolve this from the backup, would I just copy the rows with the matching I could also try the UI option, but I would prefer not requiring the user to re-enter their metadata. |
Unfortunately, it's more complex than that and, since we haven't seen any other instances except the one that was handled manually, we don't have a canned query to use. DatasetFields have associated DatasetFieldValues, there are DatasetFieldCompoundValues with more DatasetFields, some values are ControlledVocabularValues, etc. If you have the ability to instantiate the backup db somewhere, doing that and either inspecting the UI or looking in the json or OAI-ORE exports might be an easier way to find all of the values, though someone would still have to reenter the data via the UI (or API). |
Well, it appears I don't have a backup of the metadata anyway. The user had just created the dataset, published it, then attempted to update the metadata. We have nightly backups so unfortunately there's no way to recover it from my end. Given the complexity @qqmyers mentions, it was probably better just to have the user re-enter the metadata from my POV anyway. I used the UI trick @scolapasta detailed to get the dataset edit-able again, then had the user re-add their metadata. In case anyone else runs into the bug, these are the exact steps I took.
Thank you very much @qqmyers and @scolapasta for the quick help. This was easier to solve than I anticipated. Thankfully, we're still migrating a lot of our datasets over to our new Dataverse instance, so this was just a minor bump in the road :). |
Glad you were able to recover and thanks for the step-by-step instructions for others! |
@ jarulsamy did you check the subject? (is it showing correctly in the UI?) |
Yes, it does show currently in the UI after re-adding the correct metadata and re-publishing. |
OK, great! glad to see you don't seem to be having the same issue there that we were seeing (with both the value and the controlled vocab vlaue both being set). If you decide to check it directly in the db, and need help with the queries, let us know. In the meanwhile, I'll go ahead and close this issue. |
FYI, we have encountered this bug in v6.2 recently. We tried the dummy file upload option and now able to see new empty DRAFT version. Thank you for the workaround. |
What steps does it take to reproduce the issue?
We had a user update the metadata of an existing published dataset. When they committed the change, it appeared to be successful, however navigating to the dataset now produces an error. Specifically, they added another related publication URL.
Editing other metadata fields and re-publishing does not cause this issue.
On the dataset page (viewing files / metadata).
There is an internal server error displayed with very little information:
Looking at the logs, there is this large stack trace emitted when a user tries to navigate to the dataset:
This occurs to all users attempting to view this particular dataset. Viewing other datasets functions properly.
I expected the dataset information to be displayed correctly just like any other dataset.
Which version of Dataverse are you using?
v6.3 build 1607-8c99a74
Any related open or closed issues to this bug report?
Not that I can find.
Are you thinking about creating a pull request for this issue?
Not at this time, though I think I tracked down the error to this particular function (specifically line 1849, I believe
dsFieldTypeInputLevels
isnull
, and the attempted iteration is causing the panic):dataverse/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java
Lines 1813 to 1872 in d40ce32
It seems that my database may be missing some reference somehow. Not really sure, some insight from a developer would be much appreciated. I can share queries from my DB as well as any other info as needed.
Thanks.
The text was updated successfully, but these errors were encountered: