Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


problèmes de collision lors d'opérations d'écriture dans un fichier
#1
Je rencontre un problème récurrent avec le script Motus depuis le passage de la v1.6.19 à la v1.6.20 d'eggdrop.
En moyenne 2 à 3 fois par semaine, j'ai ce genre de message d'erreur (qui se produit aussi sur d'autres autres fichiers dans lesquels le jeu tente d'écrire en cours de partie) :
tcl
couldn't open "scripts/motus/scores/motus.scores": file busy 
    while executing 
"open $motus::scores_file w" 
    (procedure "motus::ecrit_scores" line 3) 
    invoked from within 
"motus::ecrit_scores" 
    (procedure "motus::score_update" line 17) 
    invoked from within 
"motus::score_update $nick $host $ptsproposition" 
    (procedure "motus::check_response" line 126) 
    invoked from within 
"motus::check_response $_pubm1 $_pubm2 $_pubm3 $_pubm4 $_pubm5"

ou encore
tcl
error copying "scripts/motus/html/templates/default/index.html" to "scripts/motus/html/export/index.html": file busy 
    while executing 
"file copy -force -- $currentfile $dest" 
    (procedure "motus::html_export" line 115) 
    invoked from within 
"motus::html_export "auto""

Il faut savoir que le fichier index.html cité dans la 2ème erreur n'est pas souvent écrit, et jamais lu par le script.

J'ai tenté d'utiliser
tcl
fileevent $channelID writable ::motus::nomdelaproc

sans plus de résultat. Pour utiliser fileevent, il faut que le canal soit resté ouvert (donc que $channelID existe), mais des tests m'ont prouvé qu'au moment où cette erreur se produit, le canal n'est pas ouvert.

L'utilisation de file writeable n'a rien donné non plus.

Merci d'avance pour vos idées.
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
#2
Je crois que ce souci n'est pas nouveau avec tcl, indépendamment d'une utilisation avec eggdrop, du C ou autre. Je vais tenter de voir si des solutions ont été trouvées.
zeolia: tchat gratuit, sans inscription ni publicité
Merci de ne pas demander d'aide en MP
Away
#3
salut,

soit le fichier est déjà ouvert (sous un autre channel ID), soit le disque dur est surchargé (mise a jour, crontab gourmand etc...)

edite: un "putlog [file channels]" dans ta proc pourais t indiquer si le fichier est déjà ouvert
C'est en reconnaissant ses erreurs que l'on progresse ;)
Away
#4
@djkenny : comme je le disais plus haut, je me suis assuré que le fichier n'était pas déjà ouvert, et un disque dur occupé n'a jamais refusé l'autorisation d'accéder à un fichier.
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
#5
dans certains cas le système peut reporter la requête en renvoyant un message à l application, celui ci est peut être interprété comme un refus par tcl
C'est en reconnaissant ses erreurs que l'on progresse ;)
Away


Possibly Related Threads…
Thread Author Replies Views Last Post
  Problèmes sur un script tcl eva Pioupiou 2 1,304 01/08/2020, 14:40
Last Post: Pioupiou
  [Demande] Récupérer certaines infos dans fichier .user Hitsu 5 5,204 30/07/2013, 17:13
Last Post: CrazyCat
  [Résolu] Erreur lors de la lecture d'un fichier heretoc 3 5,273 25/12/2012, 23:12
Last Post: CrazyCat
  Enregistrer dans un fichier une demande ZoZo 3 4,599 11/05/2012, 17:52
Last Post: aliasangelius
  nick list dans fichier html loulou7593 20 11,947 04/02/2012, 18:43
Last Post: djkenny
  Problème de phrases dans un fichier ReT 3 4,408 25/01/2012, 03:27
Last Post: ReT
  [Recherche] messages fun dans un fichier .txt ReT 7 5,533 27/11/2011, 23:40
Last Post: ReT
  voir l'ip lors d'une connection lesny 4 4,270 06/01/2011, 22:57
Last Post: lesny
  [bug] Ecrire dans le fichier de log CrazyCat 5 5,949 30/12/2009, 10:12
Last Post: CrazyCat
  Création de fichier | écriture LitteulBlack 1 3,806 23/12/2008, 18:38
Last Post: CrazyCat

Forum Jump:


Users browsing this thread: 1 Guest(s)