Thanks Peter. Note I have repeated your answer below in this correctly titled thread since I accidently hijacked a thread with my original post.
I take your point on race conditions. But this doesn't feel like a race condition. It is pretty predictable. Basically if the "updated" column is set to an odd number then process_dialogs() never processes that database notify entry.
This only happens in db-mode 2 (database only). In db-mode 1 the notifies are handled immediately and we never see this issue. At least that is my conclusion from observations.
Cheers
Shane
Peter Dunkley wrote
--------------------------------------------
Hello,
The polled notification stuff in 3.3.3 has some issues. There are some database related race-hazards that mean you could have problems. These have been resolved by adding new features to the database library - but as these are new features they are only present in git master at the moment. The presence modules in git master have been updated to use these new features.
It is also worth noting that the PostgreSQL database driver in git master is significantly more advanced, in terms of features, than the other database drivers. The presence notifier stuff has only been tested with PostgreSQL and may well be totally dependent on features that are only in the driver for that database (it should still run without crashing when using other databases but will probably not function correctly). When you do your retest please make sure that you use PostgreSQL - if you must use another database then you will need to update the Kamailio driver for that database to include support for the following new APIs:
- init2
- start_transaction
- end_transaction
- abort_transaction
- query_lock
Please retry with git master and PostgreSQL and let me know if the problem persists.
Regards,
Peter
----------------------------------------------------