diff --git a/vllm/multimodal/media/audio.py b/vllm/multimodal/media/audio.py index ae0a9f55bdce..47c2743bb99a 100644 --- a/vllm/multimodal/media/audio.py +++ b/vllm/multimodal/media/audio.py @@ -34,10 +34,14 @@ # Public libsndfile error codes exposed via `soundfile.LibsndfileError.code`, soundfile # being librosa's main backend. Used to validate if an audio loading error is due to a # server error vs a client error (invalid audio file). +# 0 = sf_error(NULL) race condition: when multiple threads fail sf_open_virtual +# concurrently, one thread may clear the global error before another reads it, +# producing code=0 ("Garbled error message from libsndfile" in soundfile). +# See: https://github.com/bastibe/python-soundfile/issues/479 # 1 = unrecognised format (file is not a supported audio container) # 3 = malformed file (corrupt or structurally invalid audio) # 4 = unsupported encoding (codec not supported by this libsndfile build) -_BAD_SF_CODES = {1, 3, 4} +_BAD_SF_CODES = {0, 1, 3, 4} def load_audio_pyav(