что означает эта ошибка? [Erlang, mochiweb, MySQL]

Я сделал чат-сервер кометы с Erlang и Mochiweb. И я запускаю "./start-dev.sh", чтобы запустить сервер. Но примерно через 1 месяц я получил следующую ошибку:

=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"]}}}}

А если превратить следующие числа в символы

            [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"]}}}}

они есть

Failed sending data on socket :"closed"

Означает ли это, что у меня проблемы с подключением или сокетом MySQL? Я не знаю, связана ли эта ошибка с моим "./start-dev.sh" или у меня просто были неправильные настройки?

А какую еще информацию я должен предоставить для диагностики?

Спасибо и ждете вашего ответа?


person Mickey Shine    schedule 26.09.2009    source источник
comment
Можете ли вы раскрыть свою функцию moonwalker_web: loop / 2? Из ошибки кажется, что вы сопоставляете {error, Error} с полученной ошибкой, в то время как переменная Error уже привязана к другой ошибке.   -  person Zed    schedule 26.09.2009
comment
@Zed, извините, что не могу вставить код из-за какой-то лицензии (эти коды не мои). Но я использую библиотеку MySQL, и эта ошибка возникла после перезапуска службы MySQL. Или какая еще информация вам нужна?   -  person Mickey Shine    schedule 26.09.2009
comment
Немного. Если вы используете TCP-соединение с MySQL, я бы предположил, что оно было закрыто либо MySQL, либо из-за сбоя сети ...   -  person Zed    schedule 26.09.2009


Ответы (1)


Похоже, что где-то в функции loop / 2 вы не обрабатываете возврат {error, Error} из вызова функции. Это вызывает ошибку, которая приводит к сбою процесса. Без кода сложно сказать, что стало причиной возврата ошибки.

person rvirding    schedule 27.09.2009