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" 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" # 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" #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" 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" 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"
