Проблемма с pptp
mclion 17 января, 2010 - 19:40
После обновления системы и мира начала выпадать ошибка
Jan 17 17:33:39 mypisem kernel: pptpctrl[16754]: segfault at 0 ip b75e6340 sp bf92b930 error 4 in libc-2.9.so[b756d000+159000] Jan 17 17:33:40 mypisem kernel: pptpctrl[16760]: segfault at 0 ip b75f7340 sp bfdb2c20 error 4 in libc-2.9.so[b757e000+159000] Jan 17 17:33:41 mypisem kernel: pptpctrl[16766]: segfault at 0 ip b7650340 sp bff644d0 error 4 in libc-2.9.so[b75d7000+159000] Jan 17 17:33:42 mypisem kernel: pptpctrl[16774]: segfault at 0 ip b76a4340 sp bf9a7ef0 error 4 in libc-2.9.so[b762b000+159000] Jan 17 17:33:43 mypisem kernel: pptpctrl[16786]: segfault at 0 ip b7619340 sp bfb7d280 error 4 in libc-2.9.so[b75a0000+159000]
из-за которой клиенты не могут подключаться, при чем это просходит после подключения больше 99 - 105 клиентов, число всегда разное.
Установлены версии:
pptpd-1.3.4
ppp-2.4.4-r24
glibc-2.9_p20081201-r2
»
- Для комментирования войдите или зарегистрируйтесь

Спасибо за ваше
Спасибо за ваше сообщение.
Баг можно оформить в на https://bugs.gentoo.org
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Как бы увидеть backtrace...
Как бы увидеть backtrace... Пересоберите pptpd и libc с символами (добавьте -ggdb и уберите -fomit-frame-pointers в CFLAGS, и добавьте splitdebug в FEATURES). После этого попробуейте в консоли сделать ulimit -c 10240 (или больше) и запустить pptpd оттуда. После того как рухнет в каталоге, откуда запускали pptpd должен появиться core file. Если появился, запустите
gdb /usr/sbin/pptpctrl --core core_file
и когда появиться приглашение командной строки сделайте bt и покажите нам его. Без этой информации трудно помочь...
Дополнительную информацию, о том как собрать bt смотрите тут:
http://www.gentoo.org/proj/en/qa/backtraces.xml
Пепесобрал как вы написали,
Пересобрал как вы написали, проверил в ядре BT, запускаю
Подключения работают, клиенты подключаются. Причем ulimit -c ставил разные значения, pptpd не рушится и core файл не создается.
Что я делаю не так?
Если не рушиться, то и core
Если не рушиться, то и core файла и не будет...
То есть правильно ли я понимаю, что если ulimit -c 0 делаете, то рушиться, а если ulimit -c что-то ещё, то нет?
с таким значеним я не делал
с таким значеним я не делал ulimit -c 0, сейчас попробовал, тоже работает. сам сервис и до этого не отпадал, он не подключал клиентов больше 99 - 107, причем это число менялось, по какому принципу не понятно, и когда он их не подключал то выпадала ошибка описанная выше. как только абонент отключался и кол-во одновременных подключений становилось меньше, то следующий мог подключиться без ошибки.
mypisem / # gdb
mypisem / # gdb /usr/sbin/pptpctrl --core core warning: Can not parse XML syscalls information; XML support was disabled at compile time. GNU gdb (Gentoo 7.0 p2) 7.0 Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu". For bug reporting instructions, please see: <http://bugs.gentoo.org/>... Reading symbols from /usr/sbin/pptpctrl...done. warning: exec file is newer than core file. warning: Can't read pathname for load map: Ошибка ввода/вывода. Reading symbols from /lib/libutil.so.1...(no debugging symbols found)...done. Loaded symbols for /lib/libutil.so.1 Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done. Loaded symbols for /lib/libc.so.6 Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done. Loaded symbols for /lib/ld-linux.so.2 Core was generated by `/usr/sbin/pptpctrl 0 0 1 /etc/ppp/options.pptpd'. Program terminated with signal 11, Segmentation fault. #0 0xb767ac90 in strncpy () from /lib/libc.so.6 (gdb) bt #0 0xb767ac90 in strncpy () from /lib/libc.so.6 #1 0x0804b815 in strlcpy ( dst=0xbfd586a4 "\364\357\004\b\270\206տi\213\004\b\020\361v\267\244\206տ\224\206տ\031\305\004\b\004st\267\364ot\267\360\206տ\364ot\267\200\314w\267 ", src=0x0, size=16) at compat.c:21 #2 0x0804a775 in main (argc=7, argv=0xbfd58774) at pptpctrl.c:140 (gdb) backtrace #0 0xb767ac90 in strncpy () from /lib/libc.so.6 #1 0x0804b815 in strlcpy ( dst=0xbfd586a4 "\364\357\004\b\270\206տi\213\004\b\020\361v\267\244\206տ\224\206տ\031\305\004\b\004st\267\364ot\267\360\206տ\364ot\267\200\314w\267 ", src=0x0, size=16) at compat.c:21 #2 0x0804a775 in main (argc=7, argv=0xbfd58774) at pptpctrl.c:140А как там с памятью в этот
А как там с памятью в этот момент обстоят дела?
P.S. Тут явно видно, что src == null, что и приводит к ошибке, щас отроем откуда оно такое, там какой-то макрос.
P.P.S. Ошибка тут в этой конструкции
atoi проверяет предыдущий аргумент, а в значение идет лишь следующий. Вообщем pptpctl недодают аргументов, а он и не проверят негодяйски
pptpctrl pptp-debug-flag no-ipparam-flag ppp-options-value ppp-speed-value ppp-local-ip-value ppp-remote-ip-valueНету
ppp-local-ip-value, как я понимаю. Вы можете проверить с какими аргументами обычно вызывается pptpctrl и с какими он падает?P.P.P.S. Ответил в баг - 90% - нехватка или ошибка памяти на вашей стороне
P.P.P.P.S. В баге патч - попробуйте его, он должен в лог (в сислог) выдать сообщение об ошибке, в момент парсинга, если раньше там ошибок не было.
Вы можете проверить с какими
Подскажите пож. как это сделать?
1. Находишь где лежит
1. Находишь где лежит pptpctrl
2. Переименовываешь его в pptpctrl.bak
3. Создаешь файл pptpctrl с примерно таким содержимым
#!/bin/bash echo ${@} > /tmp/pptpctl.param.log /usr/bin/pptpctl.bak ${@}4. И смотришь, проверяешь
P.S.
/usr/bin/pptpctl.bak ${@} путь должен быть правильный :)
Working on Gentoo Linux for Asus P535 and Qtopia :-)
yes yes (:
... что бы выяснить, что pptpctrl получает неправильные аргументы, а именно - вместо local IP получает 0, или опровергнуть это.
Добрый день. Проблема
Добрый день.
Проблема решилась? Сейчас столкунулся с тойже самой ошибкой.
MC написал(а): Добрый
Недавно обновилась libc. По-нормальному после этого надо перебрать мир. как минимум, перекомпильте то, что обламывается, например, pptpd, возможно с зависимостями...
accel-pptpd
?
P.S. железо бы что ли обрисовали и версию ядра
Разобрался, дело было в
Разобрался, дело было в количестве возможных интерфейсах ppp. Подкрутил конфиг и оно заработало.