<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [X] Commit message has the format required by CONTRIBUTING guide
- [X] Commits are split per component (core, individual modules, libs, utils, ...)
- [X] Each component has a single commit (if not, squash them into one commit)
- [X] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [X] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [X] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
Add a new update/delete function based on contact's uniq uniq. Some devices may use same uniq for multiple contacts, so I needed to restrain it further based on ruid value.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3865
-- Commit Summary --
* p_usrloc: Add update/delete based on uniq
-- File Changes --
M src/modules/p_usrloc/doc/p_usrloc_admin.xml (5)
M src/modules/p_usrloc/ucontact.c (307)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3865.patchhttps://github.com/kamailio/kamailio/pull/3865.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3865
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/3865(a)github.com>
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [X] Commit message has the format required by CONTRIBUTING guide
- [X] Commits are split per component (core, individual modules, libs, utils, ...)
- [X] Each component has a single commit (if not, squash them into one commit)
- [X] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [X] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [X] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
Make timeout modparam runtime configurable.
Also update timout execeded logs from NOTICE to ERR and add more info to them.
Also update utils/pdbt.c query tool to allow 0 carrier id.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3850
-- Commit Summary --
* pdb: make 'timeout' runtime configurable
-- File Changes --
A src/modules/pdb/config.c (42)
A src/modules/pdb/config.h (37)
M src/modules/pdb/pdb.c (40)
M utils/pdbt/pdbt.c (2)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3850.patchhttps://github.com/kamailio/kamailio/pull/3850.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3850
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/3850(a)github.com>
Hello,
based on many reports coming over along all the past years, there are
crashes that happen on module destroy callbacks, many could be fixed,
but some cannot be predicted, depending on the moment when the kill
(shut down) is triggered.
Furthermore, there are cases when the clean makes no much sense, like
attempting to close the DB connection, because the destroy callback is
executed by Kamailio's main process only, which does not handle SIP
traffic and usually does not have DB connection,. So actually, all the
other connections from the SIP works are clean up automatically by the
OS on process shut down.
Also, the pkg and shm blocks are cleaned up as a whole after all,
therefore trying to free chunks inside them that were used by various
internal structures is kind of waste of time. The main purpose to do it
in the past it to be able to discover memory leaks by having status
reports written in syslog, but these reports can be triggered by RPC
during runtime and it is even better to get them in such way.
I think that the best is to use module destroy callbacks only to save
data to backend (e.g., database) that has to be reloaded on restart, and
leave the memory/resources clean up to the OS. In this way we also deal
nicer with the inter-modules dependencies, the structures of a module
will be always available, even after its mod-destroy callback execution,
so if another module depending on them still wants to access, it should
be no problem.
At the last Kamailio Devel meeting we had a brief discussion that we may
want to change mod-destroy to be done in two steps, first for storing
meeded data to backed and then do the cleanup, but I think it is better
without the 2nd step.
Any comments or other suggestions?
Cheers,
Daniel
--
Daniel-Constantin Mierla (@ asipto.com)
twitter.com/miconda -- linkedin.com/in/miconda
Kamailio Consultancy, Training and Development Services -- asipto.com