I'm testing 1.12.0-105-g30ad2f8 on Ubuntu 20.04 with 5.4.0-56-generic
I have a test setup:
one linux server generate 1-5k pppoe sessions
accel server make them to work
I use radius to autorisation and external script to make QoS/iptables/ipsets via ip-up/ip-down/ip-change scripts in pppd-compat
And when I have 5k pppoe sessions and do:
1) Mass user-request termination, accel crash with:
accel-pppd: /opt/accel-ppp/accel-pppd/radius/serv.c:196: rad_server_req_enter: Assertion `!req->entry.next' failed.
[1] 1876948 abort accel-pppd -c /etc/accel-ppp.conf -p /var/run/accel-ppp.pid
or
[1] 1890996 segmentation fault accel-pppd -c /etc/accel-ppp.conf -p /var/run/accel-ppp.pid
2) If I have accel-cmd run in foreground, and make ctrl+c, segmentation fault occurs as well.
3) But if I cut off network between test server generating sessions and accel-server and timeout occurs, then accel disconnect all sessions and dont crash.
There is my config
Code: Select all
[modules]
log_syslog
pppoe
auth_mschap_v2
auth_mschap_v1
auth_chap_md5
auth_pap
radius
pppd_compat
connlimit
[core]
log-error=/var/log/accel-ppp/core.log
thread-count=4
[common]
single-session=replace
[ppp]
verbose=0
min-mtu=1280
mtu=1492
mru=1492
ipv4=require
ipv6=deny
lcp-echo-interval=20
lcp-echo-timeout=120
[auth]
[pppoe]
verbose=0
ac-name=foo
called-sid=mac
ifname=pppoe%d
vlan-mon=eth1,2-4094
interface=eth1
interface=re:eth1\.
[radius]
nas-identifier=foo
nas-ip-address=ip
gw-ip-address=ip
server=radip,test1,auth-port=1812,acct-port=1813,req-limit=10,fail-timeout=0,max-fail=10,weight=1
dae-server=ip:3799,foo
verbose=1
timeout=4
max-try=3
acct-timeout=0
acct-on=1
acct-interim-interval=300
[log]
log-file=/var/log/accel-ppp/accel-ppp.log
log-emerg=/var/log/accel-ppp/emerg.log
log-fail-file=/var/log/accel-ppp/auth-fail.log
log-debug=/dev/stdout
syslog=accel-pppd,daemon
copy=1
color=1
level=5
[pppd-compat]
verbose=0
ip-up=/opt/trouter/bin/amsg
ip-down=/opt/trouter/bin/amsg
ip-change=/opt/trouter/bin/amsg
radattr-prefix=/var/run/radattr
fork-limit=0
[cli]
verbose=0
telnet=127.0.0.1:2000
tcp=127.0.0.1:2001
sessions-columns=ifname,username,ip,type,state,calling-sid,rx-bytes,tx-bytes,rx-pkts,tx-pkts,uptime
[snmp]
master=0
agent-name=accel-ppp
[connlimit]
limit=2/1min
burst=3
timeout=300