[RP-PPPoE] pppd zombies on k3.x with rp-pppoe 2.11 beta

Sascha W. master.b.at.raven at chefmail.de
Mon Jul 30 14:49:17 EDT 2012


He,

we´re facing big problems on using rp-pppoeserver.
Up to K2.6.34 (we used it up to christmas 2011) we used ppp2.4.4 and
rp-pppoe 2.11 BETA with freeradius without an issue.
Since switching to K3.x releases (01.2012) every user that exits leaves
a pppd zombie on the system.
We did an upgrade to ppp2.4.5 without any changes to the symptoms.
The bugs is showing on all platforms im testing: xscale (armv5teb,
linaro 4.6/4.7), x86, mipsel.



the problem looks like this:

root at x86:~# ps
PID USER VSZ STAT COMMAND
1 root 1020 S /sbin/init noinitrd
2 root 0 SW [kthreadd]
3 root 0 SW [ksoftirqd/0]
4 root 0 SW [kworker/0:0]
5 root 0 SW [kworker/u:0]
6 root 0 SW [migration/0]
7 root 0 SW< [khelper]
8 root 0 SW< [netns]
9 root 0 SW [sync_supers]
10 root 0 SW [bdi-default]
11 root 0 SW< [kblockd]
12 root 0 SW< [ata_sff]
14 root 0 SW [kworker/0:1]
15 root 0 SW [kswapd0]
16 root 0 SW [fsnotify_mark]
17 root 0 SW< [crypto]
30 root 0 SW< [iscsi_eh]
31 root 0 SW< [kmpath_rdacd]
32 root 0 SW [scsi_eh_0]
33 root 0 SW [scsi_eh_1]
34 root 0 SW< [cnic_wq]
35 root 0 SW [kworker/u:1]
36 root 0 SW< [cxgb4]
45 root 0 SW< [deferwq]
142 root 696 S /sbin/hotplug2 --set-rules-file /etc/hotplug2.rules
--persistent
147 root 1180 S watchdog
502 root 0 SW< [cfg80211]
757 root 760 S dnsmasq --conf-file=/tmp/dnsmasq.conf
765 root 1132 S telnetd
903 root 772 S pppoe-server -k -I br0 -L 10.0.0.13 -i -x 100 -N 95 -R
10.0.0.30-124 -X /var/run/pppoeserver.pid
906 root 960 S dropbear -b /tmp/loginprompt -r
/tmp/root/.ssh/ssh_host_rsa_key -d /tmp/root/.ssh/ssh_host_dss_key -p 22
1005 root 1068 S process_monitor
1119 root 676 S cron
1170 root 1572 S snmpd -c /var/snmp/snmpd.conf
1318 root 1172 S wland
1324 root 1068 S ttraff
1524 root 1536 S httpd -p 80
1532 root 1128 S syslogd -L
1534 root 1124 S klogd
1540 root 0 Z [pppd]
2776 root 0 Z [pppd]
2815 root 0 Z [pppd]
...
20048 root 0 Z [pppd]
20052 root 0 Z [pppd]
20068 root 0 Z [pppd]
20181 root 0 Z [pppd]
20266 root 0 Z [pppd]
...
26400 root 0 Z [pppd]
26787 root 0 Z [pppd]
26878 root 0 Z [pppd]
27162 root 0 Z [pppd]
27446 root 0 Z [pppd]
27593 root 0 Z [pppd]
27603 root 1444 S pppd plugin /usr/lib/rp-pppoe.so nic-br0 rp_pppoe_sess
87:00:27:22:14:c0:c3 rp_pppoe_service file
/tmp/pppoeserver/pppoe-server-options 10.0.0.13:10.0.0.116 nodetach
noaccomp nopcomp
27612 root 1444 S pppd plugin /usr/lib/rp-pppoe.so nic-br0 rp_pppoe_sess
88:54:e6:fc:af:2c:5a rp_pppoe_service file
/tmp/pppoeserver/pppoe-server-options 10.0.0.13:10.0.0.117 nodetach
noaccomp nopcomp
27621 root 1444 S pppd plugin /usr/lib/rp-pppoe.so nic-br0 rp_pppoe_sess
89:d8:5d:4c:f2:be:56 rp_pppoe_service file
/tmp/pppoeserver/pppoe-server-options 10.0.0.13:10.0.0.118 nodetach
noaccomp nopcomp
27630 root 1444 S pppd plugin /usr/lib/rp-pppoe.so nic-br0 rp_pppoe_sess
90:00:16:01:8f:4a:f0 rp_pppoe_service file
/tmp/pppoeserver/pppoe-server-options 10.0.0.13:10.0.0.119 nodetach
noaccomp nopcomp
27639 root 0 Z [pppd]
30786 root 1140 S -sh
30787 root 1132 R ps


here some configs:

root at x86:/# uname -a
Linux x86.xyz.de 3.5.0-svn19532 #7 SMP Mon Jul 23 16:39:13 CEST 2012
i586 GNU/Linux

root at x86:~# cat /tmp/pppoeserver/pppoe-server-options
nobsdcomp
nodeflate
nolzs
nomppc
nomppe
auth
refuse-eap
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
nopcomp
default-mru
default-asyncmap
noipdefault
defaultroute
proxyarp
noktune
netmask 255.255.255.255
ip-up-script /tmp/pppoeserver/ip-up
ip-down-script /tmp/pppoeserver/ip-down
lcp-echo-interval 5
lcp-echo-failure 20
idle 0
ms-dns 10.x.x.x
ms-dns 8.8.4.4
ms-dns 192.168.200.1
login
plugin radius.so
plugin radattr.so
radius-config-file /tmp/pppoeserver/radius/radiusclient.conf

root at x86:~# cat /tmp/pppoeserver/ip-down
#!/bin/sh
grep -v $PPPD_PID /tmp/pppoe_connected > /tmp/pppoe_connected.tmp
mv /tmp/pppoe_connected.tmp /tmp/pppoe_connected
grep -v $PEERNAME /tmp/pppoe_uptime > /tmp/pppoe_uptime.tmp
mv /tmp/pppoe_uptime.tmp /tmp/pppoe_uptime
CONTIME=`grep $PEERNAME /tmp/pppoe_peer.db | awk '{print $1}'`
SENT=`grep $PEERNAME /tmp/pppoe_peer.db | awk '{print $2}'`
RCVD=`grep $PEERNAME /tmp/pppoe_peer.db | awk '{print $3}'`
CONTIME=$(($CONTIME+$CONNECT_TIME))
SENT=$(($SENT+$BYTES_SENT))
RCVD=$(($RCVD+$BYTES_RCVD))
grep -v $PEERNAME /tmp/pppoe_peer.db > /tmp/pppoe_peer.db.tmp
mv /tmp/pppoe_peer.db.tmp /tmp/pppoe_peer.db
echo "$CONTIME $SENT $RCVD $PEERNAME" >> /tmp/pppoe_peer.db
iptables -D INPUT -i $1 -j ACCEPT
iptables -D FORWARD -i $1 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS
--clamp-mss-to-pmtu
iptables -D FORWARD -i $1 -j ACCEPT
tc qdisc del root dev $1
sleep 1
tc qdisc del dev $1 ingres

root at x86:~# cat /tmp/pppoeserver/radius/radiusclient.conf
auth_order radius
login_tries 4
login_timeout 60
nologin /etc/nologin
issue /etc/issue
servers /tmp/pppoeserver/radius/servers
dictionary /etc/dictionary
login_radius /usr/local/sbin/login.radius
seqfile /var/run/radius.seq
mapfile /etc/port-id-map
default_realm
radius_timeout 10
radius_retries 3
login_local /bin/login
authserver 10.x.x.x:1812
acctserver 10.x.x.x:1813


i would call it a bug. any clues?


regards
Sash (DD-WRT)


More information about the RP-PPPoE mailing list