новости сообщество форум вики
Erlang по-русски. Форум » Erlang »

почему gen_tcp:controlling_process() валится с badarg?

(2 posts)

  1. Привет.

    У меня проблема с одним из модулей ejabberd. А именно с http_bind. Я так думал, пока не стал дебажить более глубоко. Я обнаружил что после того как соединение сокета было accepted и запущен процесс который далее будет обрабатывать запрос, происходит переназначение владельца(правильно говорю?) этого сокета новому потоку с помощью вызова gen_tcp:controlling_process(), который иногда валится с badarg, почему?

    ...

    {ok, Socket} = get_tcp:accept(ListenSocket),
    Opts = [{active, false}, ...],

    % here function return result of proc_lib:spawn_link(handler, ...)
    {ok, Pid} = ejabberd_http:start({gen_tcp, Socket}, Opts),

    gen_tcp:controlling_process(Socket, Pid),

    : {badarg, [
    {erlang, port_connect, [#Port<0.140743856>, <0.5939.4350>]},
    {inet, tcp_controlling_process, 2},
    {ejabberd_socket,start,4},
    {ejabberd_listener,accept,3},
    {proc_lib,init_p,5}
    ]}

    вот типичный пример того что я наблюдаю, причем значения Socket и Pid кажутся вполне валидными, так в чем же может быть дело?

    Отправлено 2 года(лет) назад #
  2. Может с какой-то вне?ней или системной библиотекой проблема, или с путями к ней?... Ругается ведь на erlang:port_connect

    Отправлено 1 год назад #

RSS экспорт этой темы

Отправить сообщение

Вы должны войти в систему, чтобы оставлять сообщения.

 
 

так же

Популярные тэги



Currently online

No Members around.

сообщество

http://groups.google.com/group/erlang-russian/feed/rss_v2_0_msgs.xml