Corruption du fichier d'historique avec MCEBuddy 2.5.8 64bit - 20230215

Type de demande :
BUG / NOUVELLE FONCTIONNALITÉ

Version et type MCEBuddy (32 ou 64 bits) :
2.5.8 64 bits - 20230215
Système d’exploitation et type (32 ou 64 bits) :
Windows 10 Pro 64b
Résumé du problème ou de la suggestion :
Avec cette version, j’obtiens continuellement la corruption mentionnée. Je réinitialise (tout fonctionne), mais l’erreur revient après une période indéterminée.

Revenir à ma version précédente résout le problème.

Supprimer les deux dernières sections du fichier history (voir ci-dessous) résout également le problème, jusqu’à ce que MCEB réécrive dans le fichier.


Section des journaux

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

Fichier History :

history - Copy.zip (1,1 Ko)

J’ai aussi récemment (le 13 février 2023) eu mon premier (autant que je m’en souvienne) fichier d’historique corrompu. Malheureusement, je n’ai pas pensé à le capturer. J’ai simplement supposé que j’en étais la cause d’une manière ou d’une autre. Cela ne s’est pas encore reproduit. (Et cet incident a été supprimé de mcebuddy.log.)

EDIT : Je suis sur la version 2.5.7.1. Dans le message précédent, je vois qu’il existe une version BETA plus récente. Donc, évidemment, la corruption de mon fichier d’historique n’était pas due à un problème introduit dans la dernière version.

Merci d’avoir signalé ce problème. Nous venons de mettre à jour le gestionnaire INI dans la dernière version BETA pour le rendre plus évolutif. Je vais examiner cela plus en détail. Pouvez-vous me dire si cela se produit lorsque vous surveillez un grand nombre de fichiers ou après une période de temps spécifique / un nombre spécifique de conversions ?

Si vous utilisez une version antérieure à la version bêta de février 2.5.8, cela n’est pas lié. La corruption de fichier peut survenir en raison de problèmes de système de fichiers ou de matériel. C’est très très rare, mais pas spécifiquement lié à MCEBuddy, cela indique généralement un problème sous-jacent de disque ou de système de fichiers. Essayez d’exécuter une réparation de disque avec chkdsk

Je ne vois vraiment pas de motif, si ce n’est quand MCEB écrit dans le fichier.

Exemple : après avoir supprimé la section problématique en bas du fichier d’historique, 3 conversions ont démarré, 2 semblent s’être terminées, et la dernière a provoqué une corruption.

J’ai joint une copie du fichier nouvellement corrompu.

history.zip (1,2 Ko)

Voici ce à quoi je suis revenu :

Voici un extrait du journal… (il me semble que l’erreur indiquée n’est pas exacte, car la ligne 208 du fichier d’historique contient bien les crochets fermants).

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

Exécutez chkdsk /f puis sfc /scannow et voyez si des réparations sont effectuées. Je voudrais le savoir par curiosité.

Aucune erreur ni corruption système, et pour réitérer, la version précédente ne corrompt pas le fichier d’historique.

J’ai rencontré la même erreur dès que j’ai mis à niveau vers la version bêta 20230215. Jusqu’à la version 0214, il n’y avait aucun problème. Je fais également une sauvegarde complète de chaque installation avant de désinstaller/mettre à niveau, et j’ai essayé de restaurer le fichier d’historique depuis l’installation précédente ; sans succès. Mon fichier journal contient les mêmes erreurs de SharpConfig concernant un crochet fermant manquant.

La prochaine étape consiste à revenir à la version précédente et vérifier si le problème disparaît.

Merci d’avoir signalé ce problème. Nous avons trouvé l’erreur et elle a été corrigée dans la version bêta 2.5.8 d’aujourd’hui. Testez-la et faites-nous savoir si vous rencontrez encore des problèmes.

Pour référence, le problème concernait les fichiers avec un # dans leur nom, ce n’était pas vraiment une corruption mais un problème de traitement.

Merci pour la réactivité @Goose, ça fonctionne maintenant. L’historique est visible dans l’application et aucune erreur dans le fichier journal jusqu’à présent.
Bonne remarque concernant le « # » dans les noms de fichiers. Par curiosité, je vais vérifier quels sont ces fichiers et pourquoi ils ont un # dans leur nom. :slight_smile:

À propos : je sais que vous devez tester extensivement avant de mettre à jour ffmpeg, handbrake, etc. ; mais existe-t-il un risque pour les utilisateurs individuels à mettre à jour les exécutables dans leurs installations locales ? (Je peux créer un post séparé pour cela si vous préférez)

N’hésitez pas à mettre à jour et à poursuivre la discussion ici

J’ai mis à jour Handbrake dans le passé sans problème, mais si la syntaxe de Handbrake devait changer, cela pourrait poser des problèmes. Il semble peu probable que vous rencontriez des difficultés, mais je pense également que vous ne devriez pas le faire sauf si vous avez une bonne raison.