-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
Stack overflow when BigQueryDenormalizedDestination read a source schema with an empty array. #5486
Comments
I just realised that I did a change in the source schema while investigating. estimates#line_items was initially an empty array, I've changed the source schema manually to view if it could fix the problem. This attribute was initially |
Hi @jadetr . |
@etsybaev , I'll try to give you more details. Hopefully it will be clearer. The source schema is coming from Harvest source connector. When testing locally I first got the source schema from Harvest and estimate's array where all empty. I tried to modify estimate's line_items manually to test the destination connector and see if I could have the BigQueryDenormalizedDestination code to "pass" instead of failing. I was hacking around with the destination code AND the source schema. I stopped there because I didn't know how to fix the destination connector and instead I've reported the bug. On August 28, I realised that I sent the "manually edited" source schema in the bug report. I just wanted to highlight that the source schema I sent was manually edited and wasn't what was returned by the actual Harvest source connector. More investigation Here is the content of the line_items schema in airbyte (array is empty). By doing this investigation, I saw that Harvest invoices schema was properly implemented. line_items are in the schema. Hope this long message clarify things. |
@jadetr , so did I got you right, for now we have in description this statement: But you're saying that originally it didn't contain the "items" part? Can I ask you please to update the ticket's description to contain the only origin schema\values to avoid confusion? Many thanks in advance! The StackOverflow error on the destination side happens when array object in schema doesn't contain the "items" block. Basically, the schema is supposed to always have it. So, as far as I see from the description, the "line_items" contains "items" block inside which seems to be as expected. Meanwhile, the "recipients" doesn't have it that may cause an issue |
@etsybaev , I've modified the ticket to reflect the actual Harvest schema. If you look in Harvest invoice's schema, there is no array defined for line_items. The line_items are defined as an object but they are in fact an array of objects. I'll test invoice sync and let you know if it works in a later message. Please note that the same behaviour happen with Hubspot source as well. There are plenty of empty arrays in Hubspot source schema. Here is one example. Hubspot company schema |
Enviroment
Current Behavior
Data is never synced.
Expected Behavior
Data from Harvest source should be synced to BigQuery.
Logs
Uploaded.
This is the line that fails:
2021-08-18 02:28:52 ERROR () LineGobbler(voidCall):85 - at io.airbyte.integrations.destination.bigquery.BigQueryDenormalizedDestination.getField(BigQueryDenormalizedDestination.java:122)
Steps to Reproduce
Are you willing to submit a PR?
I don't program in java, was able to make BigQueryDenormalizedDestination crash in dev with a json file that I cannot upload here.
./gradlew :airbyte-integrations:connectors:destination-bigquery-denormalized:build$(pwd)/secrets:/secrets -v $ (pwd)/sample_files:/sample_files airbyte/destination-bigquery-denormalized:dev write --config /secrets/config.json --catalog /sample_files/configured_catalog.json > output.txt 2>&1
docker run --rm -v
here is the json configured_catalog file
{
}
The text was updated successfully, but these errors were encountered: