Project

General

Profile

Bug #1732

gbproxy: Lifetime of a tracked MS (struct gbproxy_link_info)

Added by zecke almost 2 years ago. Updated about 1 month ago.

Status:
New
Priority:
High
Assignee:
sysmocom
Category:
osmo-gbproxy
Target version:
-
Start date:
05/22/2016
Due date:
% Done:

0%

Spec Reference:

Description

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.

History

#1 Updated by zecke almost 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('"')[1].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 almost 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 2000 but 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).

#3 Updated by zecke almost 2 years ago

  • Checklist item Expire gbproxy_link_info on dead links added
  • Checklist item Periodically expire (on dead NS, etc) added

#4 Updated by laforge almost 2 years ago

  • Assignee set to fixeria

#5 Updated by laforge almost 2 years ago

  • Assignee changed from fixeria to daniel

#6 Updated by laforge 4 months ago

  • Project changed from OpenBSC to OsmoSGSN

#7 Updated by laforge 4 months ago

  • Category set to osmo-gbproxy

#8 Updated by laforge about 1 month ago

  • Assignee changed from daniel to sysmocom

Also available in: Atom PDF