### Description
I am looking at how to properly handle a problem with duplicate ACC
This is when `TMCB_ON_FAILURE` and `TMCB_RESPONSE_OUT` are both called, they are not using the same version of the message.
`TMCB_ON_FAILURE` is using the cloned version
`TMCB_RESPONSE_OUT` is using the original version
They are not sharing the message flags and 2 ACC events are generated.
Since this is very sensitive, I want to make sure I can trace the real root cause.
Not sure if this is a regression ...
#### Reproduction
Any failed call
#### Debugging Data
```
0(4603) NOTICE: acc [acc_logic.c:686]: tmcb_func(): acc callback called for t(0x7f768b6dac08) event type 2, reply code 404 reqmsg[0x7f768b6dc840] rplmsg[0x7f76d096dee8]
0(4603) ERROR: acc [acc_logic.c:697]: tmcb_func(): [TMCB_RESPONSE_IN][0x7f768b6dc840][0x7f76d096dee8]
// reply route execution
0(4603) ERROR: <core> [core/sip_msg_clone.c:504]: sip_msg_shm_clone(): sip_msg_shm_clone[0x7f768b6dc840]>>[0x7f768b6de738]
0(4603) NOTICE: acc [acc_logic.c:686]: tmcb_func(): acc callback called for t(0x7f768b6dac08) event type 128, reply code 404 reqmsg[0x7f768b6de738] rplmsg[0x7f76d096dee8]
0(4603) ERROR: acc [acc_logic.c:694]: tmcb_func(): [TMCB_ON_FAILURE] run on_missed [0x7f768b6de738][0x7f76d096dee8] // working with the cloned message
0(4603) ERROR: <core> [core/flags.c:59]: isflagset(): isflagset[0x7f768b6de738]
0(4603) ERROR: acc_json [acc_json_mod.c:189]: acc_json_send_request(): missed call flag [7] for this transaction [on]
// failure route execution, we are working with the cloned message
0(4603) NOTICE: <script>: [FAILURE]
0(4603) ERROR: <core> [core/flags.c:46]: setflag(): setflag[0x7f768b6de738]
// failure
0(4603) NOTICE: acc [acc_logic.c:686]: tmcb_func(): acc callback called for t(0x7f768b6dac08) event type 512, reply code 404 reqmsg[0x7f768b6dc840] rplmsg[0x7f76d096dee8]
0(4603) ERROR: acc [acc_logic.c:689]: tmcb_func(): [TMCB_RESPONSE_OUT][0x7f768b6dc840][0x7f76d096dee8] // working with the original message
0(4603) ERROR: <core> [core/flags.c:59]: isflagset(): isflagset[0x7f768b6dc840]
0(4603) ERROR: acc_json [acc_json_mod.c:189]: acc_json_send_request(): missed call flag [7] for this transaction [on]
```
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/1673
on missed / failed calls issue #1673
#### 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
- [x] Small bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds new functionality)
- [x] Breaking change (not tested with all scenarios, review could confirm that this is not introducing regressions)
#### 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
- [x] Related to issue #1673
#### Description
problem with confusion when using flags (integer value vs bit position value)
proposed solution is using the flags helpers functions `isflagset`, etc. where possible.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/1674
-- Commit Summary --
* acc: generating duplicates
-- File Changes --
M src/modules/acc/acc.c (8)
M src/modules/acc/acc_logic.c (5)
M src/modules/acc_diameter/acc_diameter_mod.c (4)
M src/modules/acc_json/acc_json_mod.c (4)
M src/modules/acc_radius/acc_radius_mod.c (4)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/1674.patchhttps://github.com/kamailio/kamailio/pull/1674.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/1674
usrloc: call contact expired call back for a domain with db_mode: DB_ONLY; database rows are removed by the timer function: db_timer_udomain
<!-- 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 -->
- [ ] Commit message has the format required by CONTRIBUTING guide
- [ ] Commits are split per component (core, individual modules, libs, utils, ...)
- [ ] Each component has a single commit (if not, squash them into one commit)
- [ ] 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
- [ ] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
Currently call contact expired call back for a domain with db_mode: DB_ONLY doesn't callback function for "usrloc:contact-expired" to carry out call back application actions since database rows are removed by the timer function: db_timer_udomain. There is addition of new function udomain_contact_expired_cb which will only call the call back function when contact are being removed from the database.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/1683
-- Commit Summary --
* usrloc: call contact expired call back for a domain with db_mode: DB_ONLY
-- File Changes --
M src/modules/usrloc/udomain.c (172)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/1683.patchhttps://github.com/kamailio/kamailio/pull/1683.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/1683
buf in pdb_msg_dbg should correctly accomodate for pdb_bdy size
pdb_hdr + pdb_bdy should add to pdb_hdr.length (max 255)
<!-- 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 -->
- [ ] Commit message has the format required by CONTRIBUTING guide
- [ ] Commits are split per component (core, individual modules, libs, utils, ...)
- [ ] Each component has a single commit (if not, squash them into one commit)
- [ ] 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
- [x ] Small bug fix (non-breaking change which fixes an issue)
- [ ] 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 -->
- [x ] 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 -->
Can I also port this back to 4.4? Thank you.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/1693
-- Commit Summary --
* pdb: fix SIGABRT in case of too long uris
-- File Changes --
M src/modules/pdb/common.h (3)
M src/modules/pdb/pdb.c (5)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/1693.patchhttps://github.com/kamailio/kamailio/pull/1693.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/1693