Mi computadora está realizando una pantalla azul (KERNEL_SECURITY_CHECK_FAILURE) cuando ejecuto ffmpeg desde bash (desde python) e intento matar el proceso (Esto está en WINDOWS con Windows Subsystem para Linux).
Los procesos se abren desde python ( subprocess.Popen
) en la forma bash -c 'ffmpeg <args>'
, sin embargo, cuando el programa python intenta matarlos ( proc.kill()
) o python sale inesperadamente ( KeyboardInterrupt
), la línea de comando de python se cierra, mientras que las descargas permanecen abiertas, luego es inmediatamente seguido por el BSoD .
Un ejemplo del código es:
formatted_command = ['bash', '-c', "'", 'ffmpeg', '-i', '<input file>',
'-vf', 'ass=<sub file>', '-strict', '-2', '<output file>', "'"]
process_list.append(sp.Popen(formatted_command, creationflags=sp.CREATE_NEW_CONSOLE,
stderr=sp.PIPE, universal_newlines=True))
Y luego matarlo:
[proc.kill() for proc in process_list]
Tenga en cuenta que el BSoD solo ocurre cuando trato de matar los procesos (o cuando Python lo intenta, habiendo errado y matando los procesos que generó), no cuando salen con éxito.
Esto podría ser tanto un problema con WSL como con ffmpeg como con el subproceso o incluso con mi código, por lo que cualquier dirección sobre qué hacer (o cómo aclarar mi pregunta) sería muy apreciada.
Gracias por la ayuda.
Editar:
Aquí está mi carpeta C: \ Windows \ Minidump según lo solicitado por @ magicandre1981. Todos ellos probablemente son del mismo error: http://www.filedropper.com/minidump_2
WinDBG dice "Probablemente causado por: LXCORE.SYS (LXCORE! LxpFutexEvictWaitQueue + 47)", pero desafortunadamente no tengo idea de lo que esto significa para mí. ¡Cualquier ayuda sería apreciada!
Edición 2:
Los BSoD siempre aparecen cada vez que trato de eliminar los ataques externos (administrador de tareas, eliminación de subprocesos de python, proc.kill (), etc.), por lo que definitivamente es un problema con ffmpeg o WSL. Cuando envío directamente ^ C a los bashes (al hacer que la consola de Python también sea su stdin), salen bien, como si se completaran con éxito.
Esto me ha llevado a creer que es un problema tratar de matar el proceso fuera del subsistema, así que si hay alguna sugerencia sobre cómo decirle a bash que mate el proceso (sin que capture mi stdin y lo aleje de Python ), Agradecería.
¡Gracias por cualquier ayuda!