Hi,
During my PPG benchmarks (through fake smsc) with 2 different clients,
bearerbox excibited an increasing memory allocation profile starting
from 9MB till 2.2GB at the end of the test run. Upon finishing the test
and all queue cleared, memory wasn't released. Additionally by running
the same test again, memory kept increasing until bearerbox reached 2.9
GB at which point it exhausted my server's RAM (4GB) and started using
swap. At this point I interrupted tests worrying about my server. Again
bearerbox didn't release resources. Had to kill it to reclaim RAM.
Fortunately the problem is very reproducible. OS: Intel Solaris 10.5,
4GB RAM. Steps to reproduce:
Clear logs, stores, etc. Start bearerbox, wapbox, smsbox in daemon
mode (-d -P). Start fakemsmc in interactive mode. Fire test_ppg:
test/test_ppg -v 5 -r 1000000 -t 1000
http://212.205.200.120:13007/feedme ~/etc/si.txt ~/etc/pap.txt
Open top and watch bearerbox's size grow and grow...
P.S. I have been working on a patch for smsc_fake.c, but these results
are from the cvs version.
Configuration file:
group = core
admin-port = 13001
wapbox-port = 13002
smsbox-port = 13003
admin-password = bar
#status-password = foo
#admin-deny-ip = ""
#admin-allow-ip = ""
wdp-interface-name = "*"
log-file = "/tmp/bearerbox.log"
log-level = 4
#box-deny-ip = "*.*.*.*"
box-allow-ip = "*.*.*.*"
access-log = "/tmp/access.log"
#access-log-format = "%l [SMSC:%i] [SVC:%n] [ACT:%A] [BINF:%B]
[from:%p] [to:%P] [flags:%m:%c:%M:%C:%d] [msg:%L:%I] [udh:%U:%u]"
access-log-clean = true
access-log-format = "%T %l [msg:%L:%I]"
store-location = "/export/home/nbal/kannel.store"
store-type = file
dlr-storage = internal
#ssl-server-cert-file = "cert.pem"
#ssl-server-key-file = "key.pem"
#ssl-certkey-file = "mycertandprivkeyfile.pem"
group = wapbox
bearerbox-host = 212.205.200.120
log-file = "/tmp/wapbox.log"
log-level = 4
syslog-level = none
#access-log = "/tmp/wapaccess.log"
access-log = "/dev/null"
# SMSC CONNECTIONS, for pushing SI, SL, MMS notifications or whatever
over SMS
group = smsc
smsc = http
smsc-id = HTTP
allowed-smsc-id = "HTTP"
port = 13004
system-type = kannel
connect-allow-ip = "*.*.*.*"
smsc-username = foo
smsc-password = bar
no-sender = true
no-coding = true
send-url = "http://www.kannel.gr:9200/pap.cgi"
group = smsc
smsc = fake
smsc-id = FAKE
denied-smsc-id = "HTTP"
port = 13005
#dlr-url =
"http://www.kannel.gr:9200/cgi/dlr.cgi?ts=%T&smsID=%I&smscID=%i&dlr=%d&answer=%A&from=%p&to=%P
<http://www.kannel.gr:9200/cgi/dlr.cgi?ts=%T&smsID=%I&smscID=%i&dlr=%d&answer=%A&from=%p&to=%P>"
dlr-url = "http://www.kannel.gr:9200/cgi/dlr.cgi?ts=%T"
connect-allow-ip = "*.*.*.*"
# SMSBOX SETUP (a kludge!)
group = smsbox
bearerbox-host = 212.205.200.120
sendsms-port = 13006
smsbox-id = dlrbox
group = smsbox-route
smsbox-id = dlrbox
smsc-id = "FAKE;HTTP"
group = sendsms-user
username = simple
password = elpmis
default-smsc = FAKE
#dlr-url =
"http://www.kannel.gr:9200/cgi/dlr.cgi?ts=%T&smsID=%I&smscID=%i&dlr=%d&answer=%A&from=%p&to=%P
<http://www.kannel.gr:9200/cgi/dlr.cgi?ts=%T&smsID=%I&smscID=%i&dlr=%d&answer=%A&from=%p&to=%P>"
# SERVICES
group = sms-service
keyword = nop
text = "You asked nothing and I did it!"
# this service is for Kannel www testing
group = sms-service
keyword = www
get-url =
"http://localhost:15130/sms?user=kannel&pass=rL4y&from=%p&to=%P&text=%r
<http://localhost:15130/sms?user=kannel&pass=rL4y&from=%p&to=%P&text=%r>"
#max-messages = 0
# there should be default always
group = sms-service
keyword = default
catch-all = true
#max-messages = 10
text = "Thanx for using IAN test bed"
# PPG CORE SETUP, for defining the push request interface
group = ppg
ppg-url = "http://212.205.200.120:13007/feedme"
ppg-port = 13007
#ppg-ssl-port = 8081
default-smsc = FAKE
concurrent-pushes = 1000
trusted-pi = true
users = 1024
service-name = ppg
ppg-smsbox-id = dlrbox
#default-dlr-url =
"http://www.kannel.gr:9200/cgi/dlr.cgi?ts=%T&smsID=%I&smscID=%i&dlr=%d&answer=%A&from=%p&to=%P
<http://www.kannel.gr:9200/cgi/dlr.cgi?ts=%T&smsID=%I&smscID=%i&dlr=%d&answer=%A&from=%p&to=%P>"
default-dlr-url = "http://www.kannel.gr:9200/dlr.html"
#ppg-deny-ip = "*.*.*.*"
ppg-allow-ip = "*.*.*.*"
#ssl-server-cert-file = "cert.pem"
#ssl-server-key-file = "key.pem"
# PPG USER SETUP, for authorizing a specific push user
group = wap-push-user
wap-push-user = foo
ppg-username = foo
ppg-password = bar
#dlr-url =
"http://www.kannel.gr:9200/cgi/dlr.cgi?ts=%T&smsID=%I&smscID=%i&dlr=%d&answer=%A&from=%p&to=%P
<http://www.kannel.gr:9200/cgi/dlr.cgi?ts=%T&smsID=%I&smscID=%i&dlr=%d&answer=%A&from=%p&to=%P>"
default-smsc = FAKE
#country-prefix = +358
#allowed-prefix = "40;60;70"
#denied-prefix = 50
#white-list = http://localhost:8082/whitelist
#black-list = http://localhost:8082/blacklist
#deny-ip = "*.*.*.*"
#allow-ip = "127.0.0.1"