Hi everyone.. How do we resolve "Exception while f...
# ui
w
Hi everyone.. How do we resolve "Exception while fetching data (/browse/entities) : java.lang.RuntimeException: Failed to retrieve entities of type Dataset" in the UI ?
sorry i'm new to datahub..
datahub is running in k8s
b
Ah, same issue for me. I previously tried restarting gms and frontend and it worked for me one time. I'm running older version of datahub at the moment though. (Like 0.7x)
e
Can you check the datahub-gms container logs?
Copy code
docker logs datahub-gms
b
gms logs has nothing that screams about exceptions. like Jim, im running on k8s (not using Helm chart, but each container is a deployment)
this happens after i ingested a dataset and wanted to see it show up in the UI. It says
Copy code
SimpleDataFetcherExceptionHandler - Exception while fetching data (/browse) : java lang runtime exception: failed to execute browse: entity type DATASET, path [csv], filters: null, start: 0, count: 10 ...
caused by java.lang.RuntimeException: Failed to execute browse: entity type DATASET, path [csv], filters: null, start: 0, count: 10 ...
caused by : java.lang.RuntimeException: Failed to batch load Datasets ...
caused by com.linkedin.data.template.TemplateOutputCastException: Output has type java.lang.String, but does not have a registered coercer andd cannot be coerced to type java.net.URI....
rebooting gms and frontend doesnt help. any ideas?
i noticed another similar thread taking place here, which suggest that ingestion is the culprit here.. https://datahubspace.slack.com/archives/CUMUWQU66/p1629351883371800
e
We will take a look at this asap. cc @green-football-43791 @big-carpet-38439
b
i have 2 instances running in k8s, and not using the datahub ingest libraries - rather, i build the MCEs and use the rest emitter to send the data to GMS. It ran ok initially (i could create the dataset and see it in the UI), then a few datasets later, the UI threw the error when i tried to navigate to the dataset.
b
This seems to be a case of a bad URL somewhere. You can see it's trying to cast a string to a URI... The newer versions should have better ingest-time validation to prevent this sort of data from getting in
@better-orange-49102: We recently introduced more strict validations on ingest. I'd highly recommend bumping your version to get this. It will prevent some of these pieces of data getting into your system in the first place, and thus should help mitigate these read-time exceptions
@worried-traffic-82020: Which versions of DataHub GMS container and ingestion framework are you working with?
b
Alright thanks for the explanation I'll upgrade the code and try it
Also, I'll try to load the urls for each dataset individually and see which dataset has issues loading.
w
@big-carpet-38439 I was using the chart version 0.8.8. This issue happens after ingesting a lot of data, a roll back didn't seem to help as well.
I upgraded to 0.8.10 today and the issue seems to be resolved now. Didn't try a bulk load though..
b
@big-carpet-38439 for the sake of troubleshooting what part of the metadata causes rendering issues, can i check, does the UI directly load from mysql or ES when displaying a dataset? i want to fiddle with the string in mysql and see if it can resolve the display error, but am not sure if UI also queries ES when displaying the dataset. This is because i can load some dataset directly in the UI, but not others. Am suspecting that those which cannot load are the ones causing the errors.
nvm, seems like an illegal string sequence causing the error
in the fieldpath description
removing the substring allows the dataset to be rendered correctly, but the browsing hiearchy remains broken
e
@better-orange-49102 What was the substring that was causing it?
b
I'm surprised the browsing hierarchy is broken. Maybe we can all schedule a time to hop on in a huddle to see whats going on?
b
Inside mysql, for the the description of a fieldPath, the string was being recorded as
"This is a "1_" string"
. Removing the extra double quotes inside causes the dataset to be rendered correctly. I'm not certain what's the original string that causes it be processed that way though, gonna check with my colleague next week.
I'll love to schedule a call, but because the instance is inside a intranet, it's hard to discuss also. I'll continue poking away and share any findings.
so if i delete away all the datasets that cannot be rendered in UI inside mySQL, the browsing and listing of datasets is restored (abeit i now have a bunch of datasets in the listings that are deleted). i assume this is because dataset listings uses information from both ES and mySQL.
b
this is correct @better-orange-49102
It seems that the string above needed to escaped. Do you know where this metadata was written from?
b
It was a manually constructed MCE. We created a web form to allow users to create tables from flat file sources.
b
I see - on the recent versions we will be doing stricter validation at write time, which should help prevent this type of data