Executing `make clean` in the `build` folder deletes the `README` files from the modules folders.
This is probably because the README is an output of a `cmake-make` command. What would be the best option to skip this removing?
I found:
- https://stackoverflow.com/questions/6259372/cmake-preventing-make-clean-fro…
Which indicates adding:
```
SET_DIRECTORY_PROPERTIES(PROPERTIES CLEAN_NO_CUSTOM 1)
```
In the CMakeLists.txt inside the module folders. But maybe it is another place where it can be done once for all modules, or another option...
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4084
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4084(a)github.com>
Module: kamailio
Branch: master
Commit: a1bdef919414173e8327a8dd65ecaa2fca279d6a
URL: https://github.com/kamailio/kamailio/commit/a1bdef919414173e8327a8dd65ecaa2…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2025-01-20T10:54:14+01:00
cmake: messages about not finding docs-related tools made status
- they should not be needed for development and usual installation,
warning makes it look like something relevant cannot be done
---
Modified: cmake/modules-docs.cmake
---
Diff: https://github.com/kamailio/kamailio/commit/a1bdef919414173e8327a8dd65ecaa2…
Patch: https://github.com/kamailio/kamailio/commit/a1bdef919414173e8327a8dd65ecaa2…
---
diff --git a/cmake/modules-docs.cmake b/cmake/modules-docs.cmake
index 10b1b70a8f2..721ba7d0b45 100644
--- a/cmake/modules-docs.cmake
+++ b/cmake/modules-docs.cmake
@@ -6,12 +6,12 @@ find_program(LYNX_EXECUTABLE lynx QUIET)
find_program(DOCBOOK2X_EXECUTABLE docbook2x-man QUIET)
if(BUILD_DOC AND (NOT XSLTPROC_EXECUTABLE OR NOT LYNX_EXECUTABLE))
- message(WARNING "xsltproc or lynx not found but required for doc generation.")
+ message(STATUS "xsltproc or lynx not found but required for doc generation.")
set(BUILD_DOC OFF)
endif()
if(BUILD_DOC AND (NOT DOCBOOK2X_EXECUTABLE))
- message(WARNING "docbook2x-man not found but required for man generation.")
+ message(STATUS "docbook2x-man not found but required for man generation.")
set(BUILD_DOC OFF)
endif()
<!--
Kamailio Project uses GitHub Issues only for bugs in the code or feature requests. Please use this template only for bug reports.
If you have questions about using Kamailio or related to its configuration file, ask on sr-users mailing list:
* https://lists.kamailio.org/mailman3/postorius/lists/sr-users.lists.kamailio…
If you have questions about developing extensions to Kamailio or its existing C code, ask on sr-dev mailing list:
* https://lists.kamailio.org/mailman3/postorius/lists/sr-dev.lists.kamailio.o…
Please try to fill this template as much as possible for any issue. It helps the developers to troubleshoot the issue.
Note that an issue report may be closed automatically after about 2 months
if there is no interest from developers or community users on pursuing it, being
considered expired. In such case, it can be reopened by writing a comment that includes
the token `/notexpired`. About two weeks before considered expired, the issue is
marked with the label `stale`, trying to notify the submitter and everyone else
that might be interested in it. To remove the label `stale`, write a comment that
includes the token `/notstale`. Also, any comment postpone the `expire` timeline,
being considered that there is interest in pursuing the issue.
If there is no content to be filled in a section, the entire section can be removed.
You can delete the comments from the template sections when filling.
You can delete next line and everything above before submitting (it is a comment).
-->
### Description
I have run in to an issue when sending diameter requests using the ims_diameter_server
module. Shared memory keeps increasing and are not being freed until restart of kamailio.
This leads to all shared memory is being used and no more are able to be allocated.
This only happens when the request is sent synchronously. When sent asynchronously shared
memory is being freed as far as I can see.
Following functions have been used for sending requests.
diameter_request([peer], appid, commandcode, message)
diameter_request_async([peer], appid, commandcode, message)
### Troubleshooting
Sent a bunch of diameter requests and verified that shared memory for the following functions are not freed.
do_receive(600):
AAATranslateMessage(500):
AAACreateAVP(137):
#### Reproduction
It's possible to reproduce by sending sync diameter request and verify shared memory.
Example of diameter request block
```
route[CHECK_LOCATION] {
diameter_request("hss.ims.test.local", "16777217", "306",
"[ " +
"{ \"avpCode\":260, \"vendorId\":0, \"Flags\":64,
\"list\":[ { \"avpCode\":266, \"vendorId\":0,
\"Flags\":64, \"int32\":10415 }, { \"avpCode\":258,
\"vendorId\":0, \"Flags\":64, \"int32\":16777217 } ] },
" +
"{ \"avpCode\":277, \"vendorId\":0, \"Flags\":64,
\"int32\":1 }, " +
"{ \"avpCode\":283, \"vendorId\":0, \"Flags\":64,
\"string\":\"ims.test.local\"}, " +
"{ \"avpCode\":706, \"vendorId\":10415,
\"Flags\":192, \"int32\":0 }, " +
"{ \"avpCode\":700, \"vendorId\":10415,
\"Flags\":192, \"list\": [ { \"avpCode\":601,
\"vendorId\":10415, \"Flags\":192,
\"string\":\"tel:" + $fU + "\" }]}, " +
"{ \"avpCode\":707, \"vendorId\":10415,
\"Flags\":192, \"int32\":0 }, " +
"{ \"avpCode\":703, \"vendorId\":10415,
\"Flags\":192, \"int32\":14 } ]");
xlog("L_INFO", "Sent Diameter request");
}
```
Stats
cdp:replies_received = 343310
shmem:fragments = 142
shmem:free_size = 1221489992
shmem:max_used_size = 948242168
shmem:real_used_size = 925993656
shmem:total_size = 2147483648
shmem:used_size = 558205656
kamcmd mod.stats cdp shm
do_receive(600): 256245808
AAATranslateMessage(500): 64420712
AAACreateAVP(137): 218100320
Total: 538774000
#### Debugging Data
<!--
If you got a core dump, use gdb to extract troubleshooting data - full backtrace,
local variables and the list of the code at the issue location.
gdb /path/to/kamailio /path/to/corefile
bt full
info locals
list
If you are familiar with gdb, feel free to attach more of what you consider to
be relevant.
-->
```
(paste your debugging data here)
```
#### Log Messages
<!--
Check the syslog file and if there are relevant log messages printed by Kamailio, add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
(paste your log messages here)
```
#### SIP Traffic
<!--
If the issue is exposed by processing specific SIP messages, grab them with ngrep or save in a pcap file, then add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
(paste your sip traffic here)
```
### Possible Solutions
<!--
If you found a solution or workaround for the issue, describe it. Ideally, provide a pull request with a fix.
-->
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 5.7.4 (x86_64/linux) dc393e
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, MEM_JOIN_FREE, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: dc393e
compiled on 13:56:27 Feb 27 2024 with gcc 8.5.0
```
* **Operating System**:
<!--
Details about the operating system, the type: Linux (e.g.,: Debian 8.4, Ubuntu 16.04, CentOS 7.1, ...), MacOS, xBSD, Solaris, ...;
Kernel details (output of `lsb_release -a` and `uname -a`)
-->
```
Linux bmatkamas1 4.18.0-553.16.1.el8_10.x86_64 #1 SMP Thu Aug 1 04:16:12 EDT 2024 x86_64 x86_64 x86_64 GNU/Linux
Red Hat Enterprise Linux release 8.10 (Ootpa)
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4116
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4116(a)github.com>
Module: kamailio
Branch: master
Commit: eeffe798b85d4f8c580c221b0e655b1b49a7420f
URL: https://github.com/kamailio/kamailio/commit/eeffe798b85d4f8c580c221b0e655b1…
Author: Xenofon Karamanos <xk(a)gilawa.com>
Committer: Xenofon Karamanos <xk(a)gilawa.com>
Date: 2025-01-17T14:56:31Z
cmake: Fix ignoring excluded module
- When adding groups, we now also check if they contain a user-excluded module.
---
Modified: src/modules/CMakeLists.txt
---
Diff: https://github.com/kamailio/kamailio/commit/eeffe798b85d4f8c580c221b0e655b1…
Patch: https://github.com/kamailio/kamailio/commit/eeffe798b85d4f8c580c221b0e655b1…
---
diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt
index 22c1341db8a..be55da5f065 100644
--- a/src/modules/CMakeLists.txt
+++ b/src/modules/CMakeLists.txt
@@ -4,6 +4,7 @@ set(MODULES_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
# Initialize a global property to track added modules
set_property(GLOBAL PROPERTY ADDED_MODULES_LIST "")
set_property(GLOBAL PROPERTY ALL_MODULE_DOC_TARGETS "")
+set_property(GLOBAL PROPERTY EXCLUDED_MODULES_LIST "")
include(${CMAKE_SOURCE_DIR}/cmake/groups.cmake)
@@ -52,9 +53,12 @@ function(add_module_group group_modules)
foreach(module_name IN LISTS group_modules)
# Check if the module has already been added
get_property(ALREADY_ADDED GLOBAL PROPERTY ADDED_MODULES_LIST)
- if(";${ALREADY_ADDED};" MATCHES ";${module_name};")
+ if("${module_name}" IN_LIST ALREADY_ADDED)
message(
STATUS "Module ${module_name} has already been added. Skipping...")
+ elseif("${module_name}" IN_LIST EXCLUDED_MODULES_LIST)
+ message(STATUS "Module ${module_name} is excluded. Skipping...")
+ list(REMOVE_ITEM ADDED_MODULES_LIST ${module_name})
else()
# Construct the path to the module
set(module_path "${MODULES_DIR}/${module_name}")
@@ -108,28 +112,6 @@ function(add_module_group group_modules)
endforeach()
endfunction()
-list(APPEND FINAL_MODULES_LIST "")
-
-# Parse and add extra modules specified by the user
-separate_arguments(INCLUDE_MODULES_LIST UNIX_COMMAND "${INCLUDE_MODULES}")
-message(
- STATUS
- "Extra modules (if module already included already from group is ignored):
- ${INCLUDE_MODULES_LIST}")
-list(APPEND FINAL_MODULES_LIST ${INCLUDE_MODULES_LIST})
-
-# Exclude modules that were explicitly excluded by the user
-separate_arguments(EXCLUDE_MODULES_LIST UNIX_COMMAND "${EXCLUDE_MODULES}")
-message(STATUS "Excluded modules (exlcude even if in included modules):
- ${EXCLUDE_MODULES_LIST}")
-foreach(module_name IN LISTS EXCLUDE_MODULES_LIST)
- # if in list remove it and print a message
- if(";${FINAL_MODULES_LIST};" MATCHES ";${module_name};")
- list(REMOVE_ITEM FINAL_MODULES_LIST ${module_name})
- message(STATUS "Removed module: ${module_name}")
- endif()
-endforeach()
-
# Define targets before adding the groups and modules, so that we can add
# dependencies to them.
add_custom_target(
@@ -140,8 +122,19 @@ add_custom_target(
add_custom_target(kamailio_docs_man COMMENT "Generating man pages")
+# Parse and add extra modules specified by the user
+separate_arguments(INCLUDE_MODULES_LIST UNIX_COMMAND "${INCLUDE_MODULES}")
+message(
+ STATUS
+ "Extra modules (if module already included already from group is ignored):
+ ${INCLUDE_MODULES_LIST}")
+list(APPEND USER_MODULES_LIST ${INCLUDE_MODULES_LIST})
+
+separate_arguments(EXCLUDED_MODULES_LIST UNIX_COMMAND "${EXCLUDE_MODULES}")
+message(STATUS "Excluded modules (exlcude even if in included modules):
+ ${EXCLUDED_MODULES_LIST}")
+
# Add each group of modules
-add_module_group("${FINAL_MODULES_LIST}")
foreach(group IN LISTS FULL_MODULE_GROUP_NAMES)
get_property(MODULES_IN_GROUP VARIABLE PROPERTY "${group}")
if(VERBOSE)
@@ -149,10 +142,12 @@ foreach(group IN LISTS FULL_MODULE_GROUP_NAMES)
endif()
add_module_group("${MODULES_IN_GROUP}")
endforeach()
+add_module_group("${USER_MODULES_LIST}")
get_property(ADDED_MODULES_LIST GLOBAL PROPERTY ADDED_MODULES_LIST)
message(STATUS "Modules to be built: ${ADDED_MODULES_LIST}")
# TODO: Comment is not showing. probably a bug in CMAKE
+# https://gitlab.kitware.com/cmake/cmake/-/issues/26571
add_custom_target(modules COMMENT "Building modules")
add_dependencies(modules ${ADDED_MODULES_LIST})