Project

General

Profile

Actions

Bug #5469

closed

osmo-ggsn: segfault when creating 1024 concurrent pdp contexts

Added by pespin about 2 years ago. Updated about 2 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
-
Start date:
02/28/2022
Due date:
% Done:

100%

Spec Reference:

Description

This happens with the new TTCN3 test I just wrote, which attempts exhaustion on a /20 address pool as configured in the docker-plahyground.git test suite.

20220228112108064 DGGSN <0002> ggsn.c:569 PDP(262426933763493:1): Successful PDP Context Creation: APN=internet(internet), TEIC=1020, IPv4=176.16.19.252, IPv6=none
20220228112108071 DGGSN <0002> ggsn.c:569 PDP(262427894584996:1): Successful PDP Context Creation: APN=internet(internet), TEIC=1021, IPv4=176.16.19.253, IPv6=none
20220228112108078 DGGSN <0002> ggsn.c:569 PDP(262424027375564:1): Successful PDP Context Creation: APN=internet(internet), TEIC=1022, IPv4=176.16.19.254, IPv6=none
20220228112108084 DGGSN <0002> ggsn.c:569 PDP(262423780500353:1): Successful PDP Context Creation: APN=internet(internet), TEIC=1023, IPv4=176.16.19.255, IPv6=none
20220228112108091 DGGSN <0002> ggsn.c:569 PDP(262420335723619:1): Successful PDP Context Creation: APN=internet(internet), TEIC=1024, IPv4=176.16.20.0, IPv6=none

Program received signal SIGSEGV, Segmentation fault.
0x000055ce49e0fd28 in create_context_ind (pdp=0x7ffe620d1570) at ggsn.c:435
435             struct ggsn_ctx *ggsn = gsn->priv;
#0  0x000055ce49e0fd28 in create_context_ind (pdp=0x7ffe620d1570)
    at ggsn.c:435
#1  0x00007fa84b5a0b59 in gtp_create_pdp_ind (gsn=gsn@entry=0x7fa84a3dd010,
    version=version@entry=1, peer=peer@entry=0x7ffe620d2640, fd=fd@entry=10,
    pack=pack@entry=0x7ffe620d2e50, len=len@entry=99) at gtp.c:1816
#2  0x00007fa84b5a2619 in gtp_decaps1c (gsn=0x7fa84a3dd010) at gtp.c:3237
#3  0x00007fa84b48d0f8 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libosmocore.so.18
#4  0x00007fa84b48d1d7 in osmo_select_main ()
   from /usr/lib/x86_64-linux-gnu/libosmocore.so.18
#5  0x000055ce49e0bb27 in main (argc=3, argv=0x7ffe620d5018)
    at ggsn_main.c:249


Related issues

Related to OsmoGGSN (former OpenGGSN) - Bug #5357: no more than PDP_MAX == 1024 PDP contexts possible in libgtpNew12/14/2021

Actions
Actions #1

Updated by pespin about 2 years ago

  • Status changed from New to Feedback
  • % Done changed from 0 to 90

Can be reproduced by:
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/27350 ggsn: Introduce test TC_addr_pool_exhaustion

Fixed here:
remote: https://gerrit.osmocom.org/c/osmo-ggsn/+/27351 libgtp: Fix ggsn crash if pdp alloc array is full (PDP_MAX) [NEW]
remote: https://gerrit.osmocom.org/c/osmo-ggsn/+/27352 libgtp: Define retransmit QUEUE_SIZE relative to PDP_MAX (increase) [NEW]

Actions #2

Updated by pespin about 2 years ago

  • Status changed from Feedback to Resolved
  • % Done changed from 90 to 100

Merged, closing.

Actions #3

Updated by pespin about 2 years ago

  • Related to Bug #5357: no more than PDP_MAX == 1024 PDP contexts possible in libgtp added
Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)