Closed Jabolol closed 1 month ago
Oh this is even more strange. I would have expected GCS to be fine with handling any number of concurrent uploads.
Oh this is even more strange. I would have expected GCS to be fine with handling any number of concurrent uploads.
GCS does handle upload correctly, the issue is that dlt
fails to generate those files when running concurrently.
[Errno 2] No such file or directory: '/Users/$USER/.dlt/pipelines/open_collective_/load/normalized/1725807796.518212/started_jobs/expenses.b5d4a81f6e.0.reference'
In this error, 1725807796.518212
is the asset ID that gets loaded to GCS so that Big Query performs a LOAD
, but since dlt
does not load that, it does not get uploaded and Big Query fails.
Here's a failing Big Query load, for reference:
Ah! I misunderstood. Hrm still very odd. Do we know how large these files are? I’m curious if the k8s node is running out of space locally. They aren’t equipped with very large disk space. I’ll double check the exact spec but if we are generating hundreds of gigabytes of data then it might fail to write but I’d expect a different error
Which area(s) are affected? (leave empty if unsure)
No response
To Reproduce
Materialise a partitioned run of any asset that has partitions, such as this one, and select a range of more than 2 entries.
Describe the Bug
When running a partitioned pipeline,
dlt
intermittently fails with aDestinationHasFailedJobs
error. Upon investigation, it appears that the failure is caused by a missingjsonl
file in the Google Cloud Storage bucket. For example:After some retries, the job sometimes succeeds.
This issue occurs specifically when multiple materializations are running concurrently. During this process,
dlt
converts the data to ajsonl
file, which it then attempts to upload to the GCS bucket.When only a single materialization is running, the
jsonl
file is successfully uploaded, and the process completes without error. However, when multiple materializations are active, the file is sometimes missing, causing the subsequentLOAD
operation in BigQuery to fail due to the missing files.Expected Behavior
dlt
should create the files even when running concurrently.