2009-09-26 11 views
2

J'ai créé un serveur de discussion de comètes 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:que signifie cette erreur? [Erlang, mochiweb, MySQL]

=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&timestamp=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 tourner les numéros 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 ça veut dire que j'ai des problèmes avec MySQL connexion ou prise? Je ne sais pas si cette erreur a quelque chose à voir avec mon "./start-dev.sh" ou j'ai juste eu de mauvais réglages?

Et quelles autres informations dois-je fournir pour le diagnostic?

Merci et dans l'attente de votre réponse?

+0

Pouvez-vous révéler votre moonwalker_web: fonction loop/2? De l'erreur, il semble que vous associez {error, Error} avec l'erreur reçue, alors que la variable Error est déjà liée à une autre erreur. – Zed

+0

@Zed, désolé que je ne peux pas coller le code en raison d'une licence (Ces codes ne sont pas à moi). Mais j'utilise la bibliothèque MySQL et cette erreur est survenue après le redémarrage du service MySQL. Ou quoi d'autre informations avez-vous besoin? –

+0

Pas beaucoup. Si vous utilisez une connexion TCP vers MySQL, j'aurais _guess_ qu'il a été fermé soit par MySQL, soit en raison d'une panne réseau ... – Zed

Répondre

2

Il semble que quelque part dans la fonction loop/2 vous ne manipuliez pas un retour {error, Error} à partir 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.

Questions connexes