Project

General

Profile

Actions

Bug #1732

closed

gbproxy: Lifetime of a tracked MS (struct gbproxy_link_info)

Added by zecke almost 8 years ago. Updated almost 4 years ago.

Status:
Resolved
Priority:
High
Assignee:
-
Target version:
-
Start date:
05/22/2016
Due date:
% Done:

100%

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.


Checklist

  • Expire gbproxy_link_info on dead links
  • Periodically expire (on dead NS, etc)
Actions #1

Updated by zecke almost 8 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.

Actions #2

Updated by zecke almost 8 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).
Actions #3

Updated by zecke almost 8 years ago

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

Updated by laforge over 7 years ago

  • Assignee set to fixeria
Actions #5

Updated by laforge over 7 years ago

  • Assignee changed from fixeria to daniel
Actions #6

Updated by laforge over 6 years ago

  • Project changed from OpenBSC to OsmoSGSN
Actions #7

Updated by laforge over 6 years ago

  • Category set to 299
Actions #8

Updated by laforge about 6 years ago

  • Assignee changed from daniel to 4368
Actions #9

Updated by pespin over 5 years 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

Actions #10

Updated by laforge almost 4 years ago

  • Project changed from OsmoSGSN to osmo-gbproxy
  • Category deleted (299)
Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)