NVIDIA / NVIDIA/NeMo-Retriever

[BUG]: NV-Ingest fails when attempting to ingest large audio files

Open
#695 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.