Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Раскрывать путь к сокету #11

Closed
alexeyten opened this issue Nov 20, 2012 · 11 comments
Closed

Раскрывать путь к сокету #11

alexeyten opened this issue Nov 20, 2012 · 11 comments

Comments

@alexeyten
Copy link
Contributor

https://github.com/pasaran/descript/blob/master/lib/de.script.js#L157

Вместо de.config.socket надо его раскрыть до полного пути на файловой системе.
Иначе в списке сокетов остаётся этот дефолтный огрызок ../server.sock и совсершенно непонятно как найти владельца. Команда lsof не срабатывает.

Ответ на fixme в следущей строке: сокету выставляется 0777, что бы в него мог писать и читать любой процесс, иначе nginx запущенный от www-data не сможет записать ничего в descript запущенный от тебя. В принципе надо бы сделать это настраиваемым, потому как в продакшне оба этих сервиса должны быть запущены от имени www-data.

@pasaran
Copy link
Owner

pasaran commented Nov 20, 2012

А. Вот почему после ctrl-c и повторного запуска валятся ошибки о том, что сокет используется?

@pasaran
Copy link
Owner

pasaran commented Nov 20, 2012

Не, не из-за этого.

Что нужно сделать, чтобы повторный запуск не приводил к ошибкам о том, что server.sock уже используется?
Удалять server.sock, если он есть?
Или как-то от него отцепляться?

@alexeyten
Copy link
Contributor Author

Причина вот тут nodejs/node-v0.x-archive#3540

Если закрывать сервер командой server.close(), то файл сокета удаляется и следующий запуск работает нормально. Если же сервер убить, то файл остаётся и мы получаем ошибку.

Нужно как-то проверять живой ли процесс который открывал этот сокет, и если нет — удалять сокет перед запуском ноды.

@pasaran
Copy link
Owner

pasaran commented Nov 21, 2012

Там не так все просто.
С cluster'ом похоже сокет не удаляется даже после server.close().

Я попытался сделать, чтобы при старте проверялся сокет, и если он есть, то чтобы он удалялся.
Но там хз как поймать нужный тред...

@pasaran
Copy link
Owner

pasaran commented Nov 21, 2012

Путь к сокету я зарезолвил в 0.0.13.

Пока что удаляйте сокет вручную перед запуском ноды.
Я поизучаю еще вопрос...

@pasaran
Copy link
Owner

pasaran commented Nov 21, 2012

А, не.
Там более-менее все просто.
С первого раза не попал в нужное место и пытался удалять сокет внутри воркеров, а не в мастере.

0.0.14 удаляет сокет перед стартом самостоятельно.

@pasaran pasaran closed this as completed Nov 21, 2012
@alexeyten
Copy link
Contributor Author

А если процесс ещё работает, а ты запустишь ещё один? Старый так и останется жить?

@pasaran
Copy link
Owner

pasaran commented Nov 21, 2012

Эмнэ...
Да, про это я не подумал. Не знаю.
Видимо авто-удаление сокета не очень хорошая идея.

2012/11/21 Alexey Ten notifications@github.com

А если процесс ещё работает, а ты запустишь ещё один? Старый так и
останется жить?


Reply to this email directly or view it on GitHubhttps://github.com//issues/11#issuecomment-10592466.

@pasaran
Copy link
Owner

pasaran commented Nov 21, 2012

Эксперимент вроде показывает, что второй процесс запускается и первый при этом не падает.
Не знаю, живое ли оно на самом деле (у меня nginx не настроен), но выглядит как живое.

@alexeyten
Copy link
Contributor Author

Не нужно в дескрипте заниматься удалением сокета.
Нужно просто падать.

@pasaran
Copy link
Owner

pasaran commented Nov 21, 2012

Если я смогу не рефоркать воркеры, то будет падать, наверное.
Проблема в том, что вряд ли удастся понять причину, по которой упал сокет.
Попробую...

2012/11/21 Alexey Ten notifications@github.com

Не нужно в дескрипте заниматься удалением сокета.
Нужно просто падать.


Reply to this email directly or view it on GitHubhttps://github.com//issues/11#issuecomment-10595481.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants