linuxmaniac left a comment (open5gs/open5gs#3074)
After some debugging:
```
(gdb) p *((struct dict_application_data *)data)
$33 = {application_id = 4, application_name = 0x7fffdc224000 "Diameter Credit
Control Application"}
(gdb) bt
#0 fd_dict_new (dict=0x55555576cb70, type=type@entry=DICT_APPLICATION,
data=data@entry=0x7fffffffde60, parent=parent@entry=0x0,
ref=ref@entry=0x7fffffffdd40) at ./libfdproto/dictionary.c:1519
#1 0x00007fffdc21d23b in dict_dcca_entry (conffile=<optimized out>) at
./extensions/dict_dcca/dict_dcca.c:75
#2 0x00007ffff7282cae in fd_ext_load () from
/lib/x86_64-linux-gnu/libfdcore.so.6
#3 0x00007ffff727b27d in fd_core_parseconf () from
/lib/x86_64-linux-gnu/libfdcore.so.6
#4 0x00007ffff7e5a8ad in ogs_diam_init (mode=mode@entry=3,
conffile=0x55555563b410 "/etc/freeDiameter/smf.conf",
fd_config=fd_config@entry=0x5555555df760 <g_diam_conf>) at
../lib/diameter/common/init.c:51
#5 0x00005555555869dc in smf_fd_init () at ../src/smf/fd-path.c:34
#6 0x00005555555624c6 in smf_initialize () at ../src/smf/init.c:78
#7 0x0000555555561fc6 in app_initialize (argv=argv@entry=0x7fffffffe290) at
../src/smf/app.c:26
#8 0x0000555555561e46 in main (argc=<optimized out>, argv=0x7fffffffe498) at
../src/main.c:219
(gdb) c
Continuing.
Thread 1 "open5gs-smfd" hit Breakpoint 3, fd_dict_new (dict=0x55555576cb70,
type=type@entry=DICT_APPLICATION, data=data@entry=0x7fffffffdc80,
parent=0x5555557edc60, ref=ref@entry=0x0)
at ./libfdproto/dictionary.c:1519
1519 {
(gdb) bt
#0 fd_dict_new (dict=0x55555576cb70, type=type@entry=DICT_APPLICATION,
data=data@entry=0x7fffffffdc80, parent=0x5555557edc60, ref=ref@entry=0x0) at
./libfdproto/dictionary.c:1519
#1 0x00007ffff7e6323a in ogs_dict_gx_entry (conffile=conffile@entry=0x0) at
../lib/diameter/gx/dict.c:154
#2 0x00007ffff7e64955 in ogs_diam_gx_init () at ../lib/diameter/gx/message.c:97
#3 0x000055555558eb69 in smf_gx_init () at ../src/smf/gx-path.c:1396
#4 0x00005555555869e9 in smf_fd_init () at ../src/smf/fd-path.c:38
#5 0x00005555555624c6 in smf_initialize () at ../src/smf/init.c:78
#6 0x0000555555561fc6 in app_initialize (argv=argv@entry=0x7fffffffe290) at
../src/smf/app.c:26
#7 0x0000555555561e46 in main (argc=<optimized out>, argv=0x7fffffffe498) at
../src/main.c:219
(gdb) p *((struct dict_application_data *)data)
$34 = {application_id = 16777238, application_name = 0x7ffff7e67019 "Gx"}
(gdb) c
Continuing.
Thread 1 "open5gs-smfd" hit Breakpoint 1, ogs_dict_gy_entry
(conffile=conffile@entry=0x0) at ../lib/diameter/gy/dict.c:147
147 {
(gdb) c
Continuing.
Thread 1 "open5gs-smfd" hit Breakpoint 3, fd_dict_new (dict=0x55555576cb70,
type=type@entry=DICT_APPLICATION, data=data@entry=0x7fffffffde80,
parent=parent@entry=0x0, ref=ref@entry=0x0)
at ./libfdproto/dictionary.c:1519
1519 {
(gdb) p *((struct dict_application_data *)data)
$35 = {application_id = 4, application_name = 0x7ffff7e4f000 "Gy"}
(gdb)
[...]
1690 if (ret == EEXIST) {
(gdb)
1692 switch (type) {
(gdb)
1706 TRACE_DEBUG(FULL, "Application %s
already in dictionary", new->data.application.application_name);
(gdb)
1708 if
(fd_os_cmp(locref->data.application.application_name, locref->datastr_len,
(gdb)
1710 TRACE_DEBUG(FULL, "Conflicting
application name");
(gdb)
1839 if (ref)
(gdb)
1850 CHECK_MALLOC( dict_obj_info[CHECK_TYPE(type) ?
type : 0].dump_data(&buf, &len, &offset, data) );
(gdb)
1853 TRACE_DEBUG(INFO, "An error occurred while adding the
following data in the dictionary: %s", buf);
(gdb)
1855 if (ret == EEXIST) {
(gdb)
1856 offset=0;
(gdb)
1857 CHECK_MALLOC( dump_object(&buf, &len, &offset,
locref, 0, 0, 0) );
(gdb)
1858 TRACE_DEBUG(INFO, "Conflicting entry in the
dictionary: %s", buf);
(gdb)
1860 free(buf);
(gdb)
1863 free(new);
(gdb)
1864 return ret;
```
Now it's clear that ``application_id`` 4 is used twice:
*
https://github.com/freeDiameter/freeDiameter/blob/master/extensions/dict_dcca/dict_dcca.c#L74
```
/* DCCA */
{
struct dict_application_data data = { 4, "Diameter Credit
Control Application" };
CHECK_dict_new( DICT_APPLICATION, &data, NULL, &dcca);
}
```
* https://github.com/open5gs/open5gs/blob/main/lib/diameter/gy/message.c#L89
```
int ogs_diam_gy_init(void)
{
application_id_t id = OGS_DIAM_GY_APPLICATION_ID;
ogs_assert(ogs_dict_gy_entry(NULL) == 0);
```
defined at:
https://github.com/open5gs/open5gs/blob/main/lib/diameter/gy/message.h#L34
```
/* Gy interface, 3GPP TS 32.299 */
#define OGS_DIAM_GY_APPLICATION_ID 4
```
--
Reply to this email directly or view it on GitHub:
https://github.com/open5gs/open5gs/issues/3074#issuecomment-2796155952
You are receiving this because you commented.
Message ID: <open5gs/open5gs/issues/3074/2796155...@github.com>
_______________________________________________
Kamailio - Development Mailing List -- sr-dev@lists.kamailio.org
To unsubscribe send an email to sr-dev-le...@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the
sender!