gbproxy: Lifetime of a tracked MS (struct gbproxy_link_info)
I am looking at a GBproxy process with virtual memory size of 291m and resident size of 187m. We really need a way to dump the talloc report through the VTY. I have captured a leak dump with strace and can make it available.
#1 Updated by zecke over 2 years ago
I wrote a simple script to convert the "write" of the strace (already filtered to be only the leak dump) to make a print of it
import sys with open("talloc_report_strace_gbproxy.txt", "r") as f: for line in f: sys.stdout.write(line.split('"').replace("\\n", "\n"))
The dump might include sensitive information so let me try to abstract it.
$ python strace_to_print.py | grep process_bssgp_ul | wc -l 74428 $ python strace_to_print.py | grep link_info | wc -l 72865
I don't think there are that many active users right now and in fact.. looking at
show gbproxy links ... TLLI 9308c247, IMSI (none), AGE 6547738, STORED 3
So we have a 75 days old entry.. that has three messages queued. It is unlikely that it will get into another state after that.
#2 Updated by zecke over 2 years ago
- Subject changed from gbproxy: Memory leak in the gbproxy? to gbproxy: Lifetime of a tracked MS (struct gbproxy_link_info)
- The config has
link-list max-length 2000but not max-age. The max-length is applied per peer and not globally, so not many peers run into this limit.
- gbproxy_remove_stale_link_infos is only called when a link-info is updated, e.g. on a stale/idle peer this will not be updated (after a quick look).
#9 Updated by pespin about 1 month ago
- Checklist item Expire gbproxy_link_info on dead links set to Done
- Checklist item Periodically expire (on dead NS, etc) set to Done
- Status changed from New to Resolved
- % Done changed from 0 to 100
I was totally unaware of this ticket and I actually arrived to same conclusions and provided fixes for them a while ago.
See following osmo-sgsn commits:
82f13612 gbproxy: Add new VTY-managed timer: link-list clean-stale-timer
67f1d1ed gbproxy: Add VTY parameter: link stored-msgs-max-length