BUG: Video scorers block the event loop while decoding frames and audio
Les mainteneurs répondent en général sous 2 jours
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 35/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- À l'abandon
- Stack technique
- opencv, python
- Domaine
- backend, performance
Piste de recherche
Read pyrit/score/video_scorer.py and inspect _score_frames_async and _score_video_audio_async; compare with AudioTranscriptHelper._transcribe_audio_async, which already uses asyncio.to_thread. Check the scorer tests for coverage of frame and audio decoding. Done means OpenCV and PyAV decoding no longer block the event loop; linked pull request #3359 is already open.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Describe the bug
VideoTrueFalseScorer and VideoFloatScaleScorer decode video directly on the event loop. In pyrit/score/video_scorer.py, _score_frames_async calls _extract_frames (OpenCV) and _score_video_audio_async calls AudioTranscriptHelper.extract_audio_from_video (PyAV) without asyncio.to_thread. While a video is decoded, every other attack, scorer and target request on the loop is frozen.
The style guide says cv2 and av calls must go through asyncio.to_thread, and AudioTranscriptHelper._transcribe_audio_async already does this.
Steps to Reproduce
Score a 1080p, 300-frame video with VideoTrueFalseScorer(num_sampled_frames=10) while a coroutine ticks every 10 ms with asyncio.sleep(0.01), and record the longest gap between ticks.
Expected Results
Ticks keep arriving about every 10 ms.
Actual Results
The longest gap is about 2.4 s. With the decodes moved to asyncio.to_thread, it drops to about 150 ms.
Versions
Linux, Python 3.13.16, PyRIT 1.2.0.dev0 from main (a799842b)
- Langage dominant
- Python
- Étoiles
- 4.6k
- Forks
- 962
- Merge moyen
- 2 j 13 h
- PR mergées (30 j)
- 423
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de microsoft/PyRIT
-
BUG: Overlapping scorer-evaluation globs duplicate CSVs and change accuracyPeut-être pris @its-amann l’a pris il y a 1 jour. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
microsoft/PyRIT#3430 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
BUG: MarkdownInjectionScorer misses shortcut-reference images with path-based exfiltration, and raw HTML <img>Peut-être pris @aatif101 l’a pris il y a 3 jours. OuverteBug: triage
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
microsoft/PyRIT#3343 · 2 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
-
Detect Azure SAS tokens, SharedAccessKey connection strings, and Databricks PATs in CredentialLeakScorerPeut-être pris @nithin42 l’a pris aujourd’hui. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 2 jours
-
BUG: OpenAITTSTarget accepts any speed, so an out-of-range value is only sent to the API on every requestPeut-être pris @ShivamSharma43 l’a pris il y a 1 jour. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 25/100
microsoft/PyRIT#3445 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
-
BUG: LetterBijectionConverter accepts a negative fixed_size and then leaves the prompt unchangedPeut-être pris @ShivamSharma43 l’a pris il y a 1 jour. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 35/100
microsoft/PyRIT#3434 · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de microsoft/PyRIT
Issues similaires
-
Difficulté 1/5 1-3 heures Accessibilité débutants 88/100
fossasia/visdom-dev#69 ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour
-
Frontend build fails with Frappe version-16: DataImport is no longer exported by @framework/uiOuvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
BUG: PROD: v1.3.0-beta Onboarding Profile Picture Misaligns When Name Validation Error AppearsPeut-être pris @RitikaSen27 l’a pris aujourd’hui. Ouvertebug good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
AOSSIE-Org/PictoPy#1647 · 2 commentaires ·
Les mainteneurs répondent en général sous 2 jours
-
[oblt-aw][autodoc] Update workflow docs for gh-aw v0.92.5 and detector permission scopePeut-être pris @github-actions l’a pris aujourd’hui. Ouverte
Difficulté 1/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour