Вывод сообщений в gen_server через ?debugMsg. Как изолировать экземпляры приложений?

78 views
Skip to first unread message

Alexander Ivanisov

unread,
Jun 18, 2018, 12:56:16 PM6/18/18
to Erlang по-русски
Использую rebar3 и cowboy для websocket сервера. Когда запускаю второй экземпляр приложения (на другой TCP порт, конечно), меняю EST имя таблицы и много всего уже что менял (название ноды, даже в docker контейнере запускал). Однако ?debugMsg из второго экземпляра всё равно попадает в ту консоль, из которой был запущен первый экземпляр.

Я так понимаю, что есть виртуальная машина Erlang, к которой я подключаюсь и там ranch использует какие-то общие структуры данных.

ВОПРОС: как мне изолировать полностью экземпляры erlang на одном сервере?

Grigory Fateyev

unread,
Jun 18, 2018, 12:58:04 PM6/18/18
to Erlang в России
А что за макрос ?debugMsg ?

пн, 18 июн. 2018 г. в 19:56, Alexander Ivanisov <ivan...@gmail.com>:
Использую rebar3 и cowboy для websocket сервера. Когда запускаю второй экземпляр приложения (на другой TCP порт, конечно), меняю EST имя таблицы и много всего уже что менял (название ноды, даже в docker контейнере запускал). Однако ?debugMsg из второго экземпляра всё равно попадает в ту консоль, из которой был запущен первый экземпляр.

Я так понимаю, что есть виртуальная машина Erlang, к которой я подключаюсь и там ranch использует какие-то общие структуры данных.

ВОПРОС: как мне изолировать полностью экземпляры erlang на одном сервере?

--
Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russia...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес erlang-...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Danil A. Zagoskin

unread,
Jun 18, 2018, 1:04:56 PM6/18/18
to Erlang по-русски
Привет!

Попробуй при помощи tcpdump/wireshark/etc. посмотреть, действительно ли клиент обращается к порту, который ты слушаешь на втором экземпляре.
Алсо посмотри в netstat, правда ли твои порты слушают разные процессы.
Алсо попробуй запускать приложуху руками (без rebar) — чтобы исключить избыточную магию.

Подозреваю или баг на клиентской части (не меняется порт) или то, что ты вместо второй виртуальной машины запускаешь remsh.

--

Alexander Ivanisov

unread,
Jun 18, 2018, 1:09:31 PM6/18/18
to erlang-...@googlegroups.com
Макрос из http://erlang.org/doc/apps/eunit/chapter.html

Но я уже разобрался в проблеме. Искал сложное решение, там где его нет!



пн, 18 июн. 2018 г. в 19:58, Grigory Fateyev <gfb...@gmail.com>:


--
__
Александр Иванисов
Тел. (9624) 031-031.

Alexander Ivanisov

unread,
Jun 18, 2018, 1:10:11 PM6/18/18
to erlang-...@googlegroups.com
Всё именно так! Спасибо за советы! Баг был в клиентской части.

пн, 18 июн. 2018 г. в 20:04, Danil A. Zagoskin <da...@st-olen.ru>:
Reply all
Reply to author
Forward
0 new messages