NVIDIA / NVIDIA/NeMo-Retriever
[BUG]: NV-Ingest fails when attempting to ingest large audio files
Open
Nobody has claimed this yet.
bug
- Dominant language
- Python
- Stars
- 3k
- Forks
- 349
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 116
Description
Version
Main
Which installation method(s) does this occur on?
No response
Describe the bug.
When trying ingest large .wav files ( >= ~800mb) I get the following error message:
Terminal response code 500 submitting job. Response: {"detail":"Nv-Ingest Internal Server Error: Invalid job specification: Failed to submit to Redis after 4 attempts: Error 104 while writing to socket. Connection reset by peer."}
Cannot fetch job index 0: Server Job ID is missing or invalid in state JobStateEnum.SUBMITTED.
Job 0 failed processing result: Cannot fetch job index 0: Server Job ID is missing or invalid in state JobStateEnum.SUBMITTED.
Processing failed for 0: Error processing result: Cannot fetch job index 0: Server Job ID is missing or invalid in state JobStateEnum.SUBMITTED.
1 job(s) failed during concurrent processing. Check logs for details.
Minimum reproducible example
from nv_ingest_client.client import Ingestor
ingestor = (
Ingestor()
.files("../data/large_audio_file.wav")
.extract(
document_type="wav",
)
)
results = ingestor.ingest()
Relevant log output
ConnectionResetError: [Errno 104] Connection reset by peer
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/conda/envs/nv_ingest_runtime/lib/python3.10/site-packages/nv_ingest_api/util/service_clients/redis/redis_client.py", line 797, in submit_message
pipe.execute()
File "/opt/conda/envs/nv_ingest_runtime/lib/python3.10/site-packages/redis/client.py", line 1530, in execute
return conn.retry.call_with_retry(
File "/opt/conda/envs/nv_ingest_runtime/lib/python3.10/site-packages/redis/retry.py", line 65, in call_with_retry
fail(error)
File "/opt/conda/envs/nv_ingest_runtime/lib/python3.10/site-packages/redis/client.py", line 1532, in <lambda>
lambda error: self._disconnect_raise_reset(conn, error),
File "/opt/conda/envs/nv_ingest_runtime/lib/python3.10/site-packages/redis/client.py", line 1508, in _disconnect_raise_reset
raise error
File "/opt/conda/envs/nv_ingest_runtime/lib/python3.10/site-packages/redis/retry.py", line 62, in call_with_retry
return do()
File "/opt/conda/envs/nv_ingest_runtime/lib/python3.10/site-packages/redis/client.py", line 1531, in <lambda>
lambda: execute(conn, stack, raise_on_error),
File "/opt/conda/envs/nv_ingest_runtime/lib/python3.10/site-packages/redis/client.py", line 1367, in _execute_transaction
connection.send_packed_command(all_cmds)
File "/opt/conda/envs/nv_ingest_runtime/lib/python3.10/site-packages/redis/connection.py", line 545, in send_packed_command
raise ConnectionError(f"Error {errno} while writing to socket. {errmsg}.")
redis.exceptions.ConnectionError: Error 104 while writing to socket. Connection reset by peer.
Other/Misc.
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Ingestor example for the large WAV file and trace submission through nv_ingest_api/util/service_clients/redis/redis_client.py, especially submit_message and the failing pipe.execute() call. Reproduce the socket reset and inspect the Redis submission path and related logs. Done means large WAV ingestion completes without the Redis connection reset or missing server job ID errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, redis
- Domain
- backend, databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100