Комментарии 12
НЛО прилетело и опубликовало эту надпись здесь
Обязательно, как только придумается, о чем писать.
Подстава Эрланга в том, что на синтетических примерах сложно показать его прелесть, а выдумывать в учебных целях что-то полноценное не каждый возьмется.
Подстава Эрланга в том, что на синтетических примерах сложно показать его прелесть, а выдумывать в учебных целях что-то полноценное не каждый возьмется.
+1
я не ерлангер.
а почему сразу нельзя было сделать рпц вызов?
а почему сразу нельзя было сделать рпц вызов?
0
Сразу — это в какой момент?
0
В самом начале мы не можем этого сделать по той же самой причине, по которой в первом абзаце валятся управляющие скрипты — без регистрации в epmd у rpc:call нет никакой возможности связаться с узлом.
Из анонимного узла мы не можем этого сделать, потому что анонимные узлы в принципе ни с кем не могут общаться.
Вместо пинга мы не можем этого сделать, потому что имя все еще занято анонимным узлом — а если мы его раньше времени убьем, не установив соединения, то потеряем регистрацию и, опять же, rpc:call никуда не пробьется.
Из анонимного узла мы не можем этого сделать, потому что анонимные узлы в принципе ни с кем не могут общаться.
Вместо пинга мы не можем этого сделать, потому что имя все еще занято анонимным узлом — а если мы его раньше времени убьем, не установив соединения, то потеряем регистрацию и, опять же, rpc:call никуда не пробьется.
0
Можно, конечно, начать искать виновных, но сначала все-таки неплохо бы поднять систему на место.Угу. Подняли. А теперь надо бы всё-таки выяснить, почему оно сломалось. IMHO вопрос важный, т.к. если не ясна причина, то это может повториться, а регулярно заниматься таким ремонтом… да и просто любопытно.
0
Не, ну кто спорит-то.
У меня сейчас только одна хоть сколько-нибудь жизнеспособная гипотеза — что кто-то по ошибке или незнанию прибил процесс. Случаи самопроизвольной смерти epmd, когда никто ничего не трогает, насколько я могу судить, еще не были зафиксированы.
(Мы сами к той системе, кстати, имеем только достаточно ограниченный удаленный доступ и знаем только то, что нам говорят и что видно по логам. Тут с расследованием не особо развернешься.)
У меня сейчас только одна хоть сколько-нибудь жизнеспособная гипотеза — что кто-то по ошибке или незнанию прибил процесс. Случаи самопроизвольной смерти epmd, когда никто ничего не трогает, насколько я могу судить, еще не были зафиксированы.
(Мы сами к той системе, кстати, имеем только достаточно ограниченный удаленный доступ и знаем только то, что нам говорят и что видно по логам. Тут с расследованием не особо развернешься.)
0
И снова о реанимации epmd: sidentdv.livejournal.com/769.html
0
Только что восстановил ноду в epmd по твоей инструкции. Спасибо!
Вот только я получил pang
в ответ на net_adm:ping()
:) И предложенное решение мне, прямо скажем, не подошло :)
К счастью, в crash.log целевой ноды была подсказка:
2019-05-14 15:33:11 =ERROR REPORT====
** Connection attempt from disallowed node repair@host **
Оказывается, repair-ноду обязательно запускать с тем же значением -setcookie
, что и целевая нода. (Source.)
Надеюсь, эта информация поможет.
0
В виде краткой шпаргалки:
$ ps aux | grep APPNAME
# скопировать PID, USER, COOKIE, NODENAME/SNAME
$ sudo -u USER lsof -p PID | grep LISTEN
# скопировать PORT
$ erl
> erl_epmd:start().
> erl_epmd:register_node(NODENAME, PORT).
$ epmd -names
$ erl -sname repair -setcookie COOKIE
> net_adm:ping(SNAME).
> halt().
$ epmd -names
> rpc:call(SNAME, erl_epmd, register_node, [NODENAME, PORT]).
> halt().
$ epmd -names
$ erl -sname $USER -setcookie COOKIE -remsh SNAME
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Экстренная реанимация epmd