Size: a a a

2021 April 12

D

Dimka88 in Accel-PPP
Попробую, но не обещаю, а то из кровати ещё не вставал
источник

D

Dimka88 in Accel-PPP
Сделайте потенциальный сигфолт в коде при авторизации и запустите ацель как сервис. Вот есть вероятность что в dmesg будет пустота
источник

DK

Dmitry Koval in Accel-PPP
Как вариант, попробую на днях
источник

s

shumbor in Accel-PPP
Вообще да, отладка замечательная весчь... Порой глюки будут в одном месте, а реально беда совсем в другом )
источник
2021 April 13

DK

Dmitry Koval in Accel-PPP
Провел кучу экспериментов над умирающим systemd юнитом

1. Падающий без правки лимитов на создание корок
Apr 13 00:18:40 NAS-U1 systemd[1]: Starting Aservice-crush...
Apr 13 00:18:45 NAS-U1 kernel: a.out[3407]: segfault at 0...
Apr 13 00:18:45 NAS-U1 systemd[1]: aservice.service: Control process exited, code=killed status=11
Apr 13 00:18:45 NAS-U1 systemd[1]: aservice.service: Failed with result 'signal'.

2. Падающий с разрешенной коркой
Apr 13 00:17:58 NAS-U1 systemd[1]: Starting Aservice-crush...
Apr 13 00:18:03 NAS-U1 systemd[1]: aservice.service: Control process exited, code=dumped status=11
Apr 13 00:18:03 NAS-U1 kernel: a.out[3007]: segfault at 0...
Apr 13 00:18:03 NAS-U1 systemd[1]: aservice.service: Failed with result 'core-dump'.

3. Завершается нормально через exit(0) - никаких сообщений

4. Завершается нормально через exit(1)
Apr 13 00:08:12 NAS-U1 systemd[1]: Starting Aservice-crush...
Apr 13 00:08:17 NAS-U1 systemd[1]: aservice.service: Control process exited, code=exited status=1
Apr 13 00:08:17 NAS-U1 systemd[1]: aservice.service: Failed with result 'exit-code'.

4. Завершается нормально через exit(-1)
Apr 13 00:09:58 NAS-U1 systemd[1]: Starting Aservice-crush...
Apr 13 00:10:03 NAS-U1 systemd[1]: aservice.service: Control process exited, code=exited status=255
Apr 13 00:10:03 NAS-U1 systemd[1]: aservice.service: Failed with result 'exit-code'.

Таки нет в systemd никаких заморочек с обработкой крашей и кодами возврата, все стандартно и прозрачно.
Если упал то результат будет  code=killed или dumped и exit-code системный
Если просто завершился code=exited и код возврата с которым приложение завершилось

В нашем случае имеем
accel-ppp.service: Main process exited, code=exited, status=255
accel-ppp.service: Failed with result 'exit-code'.

Значит 100% accel завершается по exit(-1), и такие коды есть только в тритоне
root@NAS-U1:/opt/accel-ppp-code-test# grep "exit(-1)" * -R
accel-pppd/triton/md.c:         _exit(-1);
accel-pppd/triton/md.c:                 _exit(-1);
accel-pppd/triton/timer.c:              _exit(-1);
accel-pppd/triton/timer.c:                      _exit(-1);
accel-pppd/triton/triton.c:                     _exit(-1);
Там же есть сообщения об ошибке triton_log_error, но они не срабатывают, в логе всегда чисто.
источник

VG

Vladislav Grishenko in Accel-PPP
sudo gdb --core=/path/to/core --batch -ex 'thread apply all bt' $(which accel-pppd)
источник

VG

Vladislav Grishenko in Accel-PPP
хорошо бы вывод на пастбине посмотреть
источник

DK

Dmitry Koval in Accel-PPP
так краша нет и корки нет)
источник

DK

Dmitry Koval in Accel-PPP
это я крашил отладочный юнит с *(char *)0 = 0;
источник

VG

Vladislav Grishenko in Accel-PPP
понятно
источник

VG

Vladislav Grishenko in Accel-PPP
с exit(-1) он должен в лог отписать причину, на текущем гите
источник

DK

Dmitry Koval in Accel-PPP
не пишет. недельной давности сборка с добавлеными сообщениями, умирает молча
источник

DK

Dmitry Koval in Accel-PPP
в этом и все волшебство
источник

VG

Vladislav Grishenko in Accel-PPP
тогда запустить под strace -fff и логом в файл
источник

VG

Vladislav Grishenko in Accel-PPP
вероятно там последнее что будет - про epoll_create()
источник

DK

Dmitry Koval in Accel-PPP
syslog
Apr  6 13:38:49 NAS-U1 systemd[1]: accel-ppp.service: Main process exited, code=exited, status=255/n/a
Apr  6 13:38:49 NAS-U1 systemd[1]: accel-ppp.service: Unit entered failed state.
Apr  6 13:38:49 NAS-U1 systemd[1]: accel-ppp.service: Failed with result 'exit-code'.
accel-ppp.log
[2021-04-06 13:31:33]: error: eth2.341: cann't negotiate authentication type
[2021-04-06 13:37:28]: error: eth2.341: cann't negotiate authentication type
[2021-04-06 13:38:04]: error: eth2.341: cann't negotiate authentication type
[2021-04-06 13:54:05]: error: eth2.341: cann't negotiate authentication type
источник

DK

Dmitry Koval in Accel-PPP
источник

VG

Vladislav Grishenko in Accel-PPP
это не то
источник

VG

Vladislav Grishenko in Accel-PPP
возможно файловых дескрипторов не хватает доефлтных 1024
источник

DK

Dmitry Koval in Accel-PPP
я понял, просто показываю выхлоп
источник