[RFC] Subscriber Reference Counting

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Holger Freyther zecke at selfish.org
Tue Oct 27 11:57:55 UTC 2009


Hi,

IIRC Harald et all. were seeing GSM subscriber leakage at HAR2009 and we have 
not yet explored the cause of this problem. I would like to have no subscriber 
leaks for the congress and propose the following changes.

I have pushed the "holger/subscr-ref-handling" branch to our repository and 
would be happy if people could give it a spin. My testing here is pretty 
limited.

Currently I have two commits. The second is removing a leak in the vty console 
for SMS sending and subscriber usage and the other patch is trying to stop 
borrowing someone else's gsm_subscriber reference. More details below.

Currently we do lchan->subscr = new_subscr and then we have two flavors of 
checking if the channel is already used. I have changed this to use a new 
assignment function that will do the check consistently and updated call 
sites.


I would establish the following guideline for gsm_subscriber handling:

In every method where subscr_get* is called the subscriber must be released at 
the exit with subscr_put unless the referenced provider is assigned to a 
struct that is created in the same method, then the subscriber must be 
released next to the talloc_free.


More details:
	- paging.c seems fine
	- gsm_subscriber_chan seems fine
	- gsm_04_08_utils.c seems fine
	- gsm_04_08.c seems fine now as well. subscr_get/_put should be balanced

        - gsm_04_11.c if we leak a subscriber we also leak a sms I have not 
checked all SMS paths to be sure we don't leak there.


I would be very happy if people could test this.

	z,




More information about the OpenBSC mailing list