- The presence implementation is a little dubious, to say the least. It probably wants re-writing at some stage. However, this fixes a race condition that could have a number of causes in which the PUA is unaware of the eTag at the point it sends the PUBLISH.
The mechanism is such that the PUA passes the eTag that should be updated in the database into a main Kamailio process via a header in the PUBLISH. It is made aware of the new eTag by the main Kamailio process in the 200 OK.
In the scenario when the PUA has not received the 200 OK for the `Trying` `PUBLISH` before it sends the `early` `PUBLISH`, it will send the `early` PUBLISH with no eTag. This results in both `Trying` and `early` being inserted into the database. Only the `early` is updated, as it is the most recent, meaning the `Trying` will stick around in the table until it expires. You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/724
-- Commit Summary --
* presence: Always check if a record exists for this dialog before inserting
-- File Changes --
M modules/presence/presentity.c (134)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/724.patch https://github.com/kamailio/kamailio/pull/724.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/724
This may have a memory leak... Going to investigate more so hold off on merging for now. If anyone can spot it, free beer may be on offer.
--- 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/724#issuecomment-234945549
@phil-lavin pushed 1 commit.
3c09579 presence: fix memory leak introduced by last commit
--- You are receiving this because you are subscribed to this thread. View it on GitHub: https://github.com/kamailio/kamailio/pull/724/files/122e9b423d1c25bf34f6d7be...
Found the leak with `valgrind`. Added as a second commit. Going to run in production for a few days and see if memory stays stable.
--- 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/724#issuecomment-234955856
@phil-lavin pushed 1 commit.
3b206c8 presence: log when presentity is deleted due to already existing
--- You are receiving this because you are subscribed to this thread. View it on GitHub: https://github.com/kamailio/kamailio/pull/724/files/3c09579d5e677ac7a27b2386...
Thanks! I will review and merge asap -- just that these days I am traveling with limited available time and the pull request is consistent.
--- 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/724#issuecomment-236192899
Hi Daniel, no problem at all. Whenever you can.
It's been running in production for a few days now, along with #726. We use BLF extremely heavily and no further problems have been seen by customers.
That said, give it another week or so such that we can be sure the memory footprint is unaffected.
--- 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/724#issuecomment-236346431
I guess all went ok so far, without issues, given you haven't reported back. I hope to have the time to do the merge these days.
Yes, all good here. #726 has been running good too.
Merged #724.