ce que cela signifie erreur? [Erlang, mochiweb, MySQL]
Question
J'ai fait un serveur de chat comète avec Erlang et Mochiweb. Et je lance le « ./start-dev.sh » pour démarrer le serveur. Mais après environ 1 mois, je suis l'erreur suivante:
=ERROR REPORT==== 26-Sep-2009::09:21:06 ===
{mochiweb_socket_server,235,
{child_error,
{badmatch,
{error,
[70,97,105,108,101,100,32,115,101,110,100,105,110,103,32,100,
97,116,97,32,111,110,32,115,111,99,107,101,116,32,58,32,
"closed"]}}}}
mysql: fetch "SELECT appKey FROM applications WHERE appID = 1" (id p1)
=CRASH REPORT==== 26-Sep-2009::09:21:10 ===
crasher:
initial call: mochiweb_socket_server:acceptor_loop/1
pid: <0.4271.23>
registered_name: []
exception error: no match of right hand side value
{error,[70,97,105,108,101,100,32,115,101,110,100,105,110,
103,32,100,97,116,97,32,111,110,32,115,111,99,
107,101,116,32,58,32,"closed"]}
in function moonwalker_web:loop/2
in call from mochiweb_http:headers/5
ancestors: [moonwalker_web,moonwalker_sup,<0.52.0>]
messages: []
links: [<0.54.0>,#Port<0.792854>]
dictionary: [{mochiweb_request_body,
<<"appID=1&appKey=keyy&userID=8048943&nickName=bill&buddies=N%3B×tamp=1253928070154">>},
{mochiweb_request_recv,true},
{mochiweb_request_post,
[{"appID","1"},
{"appKey","key"},
{"userID","8048943"},
{"nickName",[143,229,167,144]},
{"buddies","N;"},
{"timestamp","1253928070154"}]},
{mochiweb_request_path,"/online"}]
trap_exit: false
status: running
heap_size: 2584
stack_size: 24
reductions: 1368
neighbours:
=ERROR REPORT==== 26-Sep-2009::09:21:10 ===
{mochiweb_socket_server,235,
{child_error,
{badmatch,
{error,
[70,97,105,108,101,100,32,115,101,110,100,105,110,103,32,100,
97,116,97,32,111,110,32,115,111,99,107,101,116,32,58,32,
"closed"]}}}}
Et si tournez les chiffres suivants en caractères
[70,97,105,108,101,100,32,115,101,110,100,105,110,103,32,100,
97,116,97,32,111,110,32,115,111,99,107,101,116,32,58,32,
"closed"]}}}}
ils sont
Failed sending data on socket :"closed"
Est-ce que cela signifie que j'ai des problèmes avec connexion MySQL ou socket? Je ne sais pas si cette erreur a quelque chose à voir avec mon « ./start-dev.sh » ou je viens d'avoir de mauvais paramètres?
Et quelles informations dois-je fournir pour le diagnostic?
Merci et nous réjouissons de votre réponse?
La solution
Il ressemble à quelque part dans la fonction boucle / 2 vous ne gérez pas une {erreur, erreur} retour d'un appel de fonction. Cela provoque l'erreur qui bloque le processus. Sans le code, il est difficile de dire ce qui a causé le retour d'erreur.