Corrupción del archivo de historial con MCEBuddy 2.5.8 64bit - 20230215

Tipo de Solicitud:
BUG / NUEVA CARACTERÍSTICA

Versión y Tipo de MCEBuddy (32 o 64 bits):
2.5.8 64 bits – 20230215
Sistema Operativo y Tipo (32 o 64 bits):
Windows 10 Pro 64b
Resumen del problema o sugerencia:
Con esta versión sigo recibiendo la corrupción mencionada. Reinicio (todo funciona), pero el error vuelve tras un período indeterminado.

Volver a la compilación anterior soluciona el problema.

Eliminar las dos últimas secciones del archivo history (ver abajo) también lo arregla, hasta que MCEBuddy vuelve a escribir en el archivo.


Sección de registros

ERROR --> Unable to open INI file -> C:\Program Files\MCEBuddy2x\config\history.
Error : SharpConfig.ParserException: Line 184: closing bracket missing.
   at SharpConfig.ConfigurationReader.ParseSection(String line, Int32 lineNumber)
   at SharpConfig.ConfigurationReader.Parse(StringReader reader, Configuration config)
   at SharpConfig.ConfigurationReader.ReadFromString(String source)
   at MCEBuddy.Util.Ini..ctor(String file)
ERROR 2023-02-19T04:02:36 MCEBuddy.Engine.QueueManager --> Unable to process files in location G:\VideoCaptures\Channel_DVR\TV for monitor task Channels DVR Recorded TV
ERROR : Value cannot be null.
Parameter name: source
INFORMATION 2023-02-19T04:02:36 MCEBuddy.Engine.QueueManager --> No accessible files founds in location G:\VideoCaptures\Channel_DVR\Movies for monitor task Channels DVR Recorded Movies
ERROR 2023-02-19T04:03:21 MCEBuddy.Engine.QueueManager --> History file corruption detected: This can lead to unpredictable behavior, fix or clear history file
ERROR --> Unable to open INI file -> C:\Program Files\MCEBuddy2x\config\history.
Error : SharpConfig.ParserException: Line 184: closing bracket missing.
   at SharpConfig.ConfigurationReader.ParseSection(String line, Int32 lineNumber)
   at SharpConfig.ConfigurationReader.Parse(StringReader reader, Configuration config)
   at SharpConfig.ConfigurationReader.ReadFromString(String source)
   at MCEBuddy.Util.Ini..ctor(String file)
ERROR 2023-02-19T04:03:21 MCEBuddy.Engine.QueueManager --> Unable to process files in location G:\VideoCaptures\TV_RAW for monitor task SageTV Recordings
ERROR : Value cannot be null.
Parameter name: source
ERROR --> Unable to open INI file -> C:\Program Files\MCEBuddy2x\config\history.
Error : SharpConfig.ParserException: Line 184: closing bracket missing.
   at SharpConfig.ConfigurationReader.ParseSection(String line, Int32 lineNumber)
   at SharpConfig.ConfigurationReader.Parse(StringReader reader, Configuration config)
   at SharpConfig.ConfigurationReader.ReadFromString(String source)
   at MCEBuddy.Util.Ini..ctor(String file)
ERROR 2023-02-19T04:03:21 MCEBuddy.Engine.QueueManager --> Unable to process files in location G:\VideoCaptures\Channel_DVR\TV for monitor task Channels DVR Recorded TV
ERROR : Value cannot be null.
Parameter name: source

Archivo History:

history - Copy.zip (1.1 KB)

También recientemente (el 13-02-2023) tuve mi primer archivo de historial corrupto (que yo recuerde). Desafortunadamente, no se me ocurrió capturarlo. Simplemente asumí que lo había causado de alguna manera. Aún no ha vuelto a ocurrir. (Y ese incidente ya fue eliminado de mcebuddy.log.)

EDIT: Estoy en la versión 2.5.7.1. En la publicación anterior, veo que hay una versión BETA más nueva. Así que, obviamente, la corrupción de mi archivo de historial no se debió a un problema introducido en la última versión.

Gracias por reportar esto. Acabamos de actualizar el manejador INI en el último BETA para hacerlo más escalable. Voy a investigar esto más a fondo. ¿Puede decirme si esto ocurre cuando tiene un gran número de archivos siendo monitoreados o después de un período específico de tiempo / un número específico de conversiones?

Si estás en cualquier versión anterior a la versión beta de febrero 2.5.8, no está relacionado. La corrupción de archivos puede ocurrir debido a problemas del sistema de archivos o del hardware. Es muy, muy raro, pero no está específicamente relacionado con MCEBuddy; generalmente indica un problema subyacente del disco o del sistema de archivos. Intenta ejecutar una reparación de disco con chkdsk

Realmente no tiene un patrón que pueda discernir, aparte de cuando MCEB escribe en el archivo.

Ejemplo: Después de eliminar la sección problemática de la parte inferior del archivo de historial, se iniciaron 3 conversiones, 2 parecieron completarse, y la última causó corrupción.

He adjuntado una copia del archivo recién corrompido.

history.zip (1.2 KB)

Aquí es a lo que regresé:

Aquí una sección del registro… (me parece que el error en el registro no es preciso, ya que la línea #208 del archivo de historial parece tener corchetes de cierre).

INFORMATION> 2023-02-19T09:43:21 --> Job for G:\VideoCaptures\Channel_DVR\TV\On Patrol Live\On Patrol Live S01E58 2023-02-18-2100.mpg converted successfully to A:\ServerFolders\Recorded\TV_SHOWS\On Patrol Live\SEASON-01\On Patrol Live - S01E58 - #157.mkv using conversion task -> TV Show Recordings and profile -> MKV Unprocessed
ERROR> --> Unable to open INI file -> C:\Program Files\MCEBuddy2x\config\history.
Error : SharpConfig.ParserException: Line 208: closing bracket missing.
   at SharpConfig.ConfigurationReader.ParseSection(String line, Int32 lineNumber)
   at SharpConfig.ConfigurationReader.Parse(StringReader reader, Configuration config)
   at SharpConfig.ConfigurationReader.ReadFromString(String source)
   at MCEBuddy.Util.Ini..ctor(String file)
ERROR> 2023-02-19T09:43:27 MCEBuddy.Engine.QueueManager --> Unable to process files in location G:\VideoCaptures\TV_RAW for monitor task SageTV Recordings
ERROR : Value cannot be null.
Parameter name: source
ERROR> --> Unable to open INI file -> C:\Program Files\MCEBuddy2x\config\history.
Error : SharpConfig.ParserException: Line 208: closing bracket missing.
   at SharpConfig.ConfigurationReader.ParseSection(String line, Int32 lineNumber)
   at SharpConfig.ConfigurationReader.Parse(StringReader reader, Configuration config)
   at SharpConfig.ConfigurationReader.ReadFromString(String source)
   at MCEBuddy.Util.Ini..ctor(String file)
ERROR> 2023-02-19T09:43:27 MCEBuddy.Engine.QueueManager --> Unable to process files in location G:\VideoCaptures\Channel_DVR\TV for monitor task Channels DVR Recorded TV
ERROR : Value cannot be null.
Parameter name: source
INFORMATION> 2023-02-19T09:43:27 MCEBuddy.Engine.QueueManager --> No accessible files founds in location G:\VideoCaptures\Channel_DVR\Movies for monitor task Channels DVR Recorded Movies
INFORMATION> 2023-02-19T09:43:33 MCEBuddy.Engine.Core --> Job for G:\VideoCaptures\Channel_DVR\TV\On Patrol Live\On Patrol Live S01E57 2023-02-17-2100.mpg completed
ERROR> --> Unable to open INI file -> C:\Program Files\MCEBuddy2x\config\history.
Error : SharpConfig.ParserException: Line 208: closing bracket missing.
   at SharpConfig.ConfigurationReader.ParseSection(String line, Int32 lineNumber)
   at SharpConfig.ConfigurationReader.Parse(StringReader reader, Configuration config)
   at SharpConfig.ConfigurationReader.ReadFromString(String source)
   at MCEBuddy.Util.Ini..ctor(String file)
ERROR> 2023-02-19T09:43:33 MCEBuddy.Engine.Core --> MCEBuddy Monitor Thread Crashed. Error: System.ArgumentNullException: Value cannot be null.
Parameter name: source
   at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
   at MCEBuddy.Util.Ini.ReadString(String section, String key, String defVal)
   at MCEBuddy.Engine.Core.WriteJobHistory(ConversionJob job)
   at MCEBuddy.Engine.Core.MonitorEngineThread()
INFORMATION> 2023-02-19T12:30:49 MCEBuddy.Engine.Core --> MCEBuddy engine stopped
INFORMATION> 2023-02-19T12:30:49 MCEBuddy.Engine.Core --> Setting engine last running state to stop

Ejecuta chkdsk /f y luego sfc /scannow y observa si se realizan reparaciones. Me gustaría saberlo por curiosidad.

Sin errores ni corrupción del sistema y, para reiterar, la compilación anterior no corrompe el archivo de historial.

Encontré el mismo error al actualizar a la compilación beta 20230215. Hasta la 0214 no había problema. También hago una copia de seguridad completa de cada instalación antes de desinstalar/actualizar, e intenté restaurar el archivo de historial desde la instalación anterior; sin éxito. Mi archivo de registro muestra los mismos errores de SharpConfig sobre un corchete de cierre faltante.

El siguiente paso es volver a la compilación anterior y verificar si el problema desaparece.

Gracias por reportar esto. Encontré el problema y ya está corregido en la versión beta 2.5.8 de hoy. Pruébala y avísanos si sigues teniendo algún problema.

Como referencia, el problema estaba en los archivos con un # en sus nombres, realmente no era una corrupción sino un problema de procesamiento.

Gracias por la respuesta súper rápida, @Goose; ya funciona. El historial es visible en la aplicación y, hasta ahora, no hay errores en el archivo de registro.
Buena observación sobre el «#» en los nombres de archivo. Ahora, por curiosidad, necesito revisar qué archivos son y por qué tienen un # en su nombre. :slight_smile:

Como nota aparte: sé que deben probar extensivamente antes de actualizar ffmpeg, handbrake, etc.; pero ¿hay algún riesgo en que los usuarios individuales actualicen los ejecutables en sus instalaciones locales? (Puedo crear un post aparte para esto si prefieres)

Siéntete libre de actualizar y continuar la discusión aquí

He actualizado Handbrake en el pasado sin problemas, pero si la sintaxis de Handbrake cambiara, eso podría causar problemas. Parece poco probable que tengas problemas, pero también creo que no deberías hacerlo a menos que tengas una buena razón para ello.