Проблемма с pptp

После обновления системы и мира начала выпадать ошибка

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, запускаю

mypisem / # /etc/init.d/pptpd stop
mypisem / # ulimit -c 3024000
mypisem / # pptpd

Подключения работают, клиенты подключаются. Причем 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...(no debugging symbols found)...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) run
Starting program: /usr/sbin/pptpctrl
pptpctrl: insufficient arguments, see man pptpctrl

Program exited with code 02.
(gdb) set logging file backtrace.log
(gdb) set logging on
Copying output to backtrace.log.
(gdb) backtrace
#0  0xb767ac90 in strncpy () from /lib/libc.so.6
#1  0x0804b815 in ?? ()
#2  0xbfd586a4 in ?? ()
#3  0x00000000 in ?? ()


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. Ошибка тут в этой конструкции

104         if(atoi(argv[arg++]) != 0) \
105                 strlcpy(X, argv[arg++], sizeof(X)); \

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. В баге патч - попробуйте его, он должен в лог (в сислог) выдать сообщение об ошибке, в момент парсинга, если раньше там ошибок не было.

Вы можете проверить с какими

 Вы можете проверить с какими аргументами обычно вызывается pptpctrl и с какими он падает?

Подскажите пож. как это сделать?

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 написал(а): Добрый

MC написал(а):
Добрый день.
Проблема решилась? Сейчас столкунулся с тойже самой ошибкой.

Недавно обновилась libc. По-нормальному после этого надо перебрать мир. как минимум, перекомпильте то, что обламывается, например, pptpd, возможно с зависимостями...

accel-pptpd

?

P.S. железо бы что ли обрисовали и версию ядра

Разобрался, дело было в

Разобрался, дело было в количестве возможных интерфейсах ppp. Подкрутил конфиг и оно заработало.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".