We do have this ``presence`` module parameters:
```
modparam("presence", "subs_db_mode", 3)
modparam("presence", "publ_cache", 0)
modparam("presence", "db_table_lock_type", 0)
modparam("presence", "notifier_processes", 3)
modparam("presence", "send_fast_notify", 0)
```
And we are getting this errors several times per second
```
proxy[9056]: ERROR: db_mysql [km_dbase.c:602]: db_mysql_start_transaction(): transaction
already started
proxy[9056]: ERROR: presence [notify.c:1365]: publ_notify_notifier(): in start_transaction
proxy[9056]: ERROR: presence [presentity.c:1132]: update_presentity(): updating watcher
records
proxy[9056]: ERROR: presence [publish.c:462]: handle_publish(): when updating presentity
```
This logs are from kamailio 4.4.4 but I think the problem is in master too.
I do see that publ_notify_notifier() has a call to start_transaction()
https://github.com/kamailio/kamailio/blob/master/src/modules/presence/notif…
but we are already inside a transaction either at
https://github.com/kamailio/kamailio/blob/master/src/modules/presence/prese…
or
https://github.com/kamailio/kamailio/blob/master/src/modules/presence/prese…
--
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/960
* publ_notify_notifier() and mark_presentity_for_delete() are
called inside a already created transaction
* adding transaction handle for msg_presentity_clean()
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/961
-- Commit Summary --
* presence: remove transaction creation from publ_notify_notifier() and mark_presentity_for_delete()
-- File Changes --
M src/modules/presence/notify.c (24)
M src/modules/presence/presentity.c (24)
M src/modules/presence/publish.c (26)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/961.patchhttps://github.com/kamailio/kamailio/pull/961.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/961
### Description
<!--
Explain what you did, what you expected to happen, and what actually happened.
-->
When trying to use a htable with column names different than globally configured, Kamailio won't start.
### Troubleshooting
#### Reproduction
<!--
If the issue can be reproduced, describe how it can be done.
-->
* Take Kamailio with a sample configuration.
* Enable htable and db_mysql module.
* In your Kamailio database, execute the following statements:
`create table htable_different like htable;`
` alter table htable_different change key_name foo_name varchar(64) not null default '';`
* Now you have a table looking almost as the sample htable table, but with a changed column name for the key name column.
* Add the following configuration parameters:
`modparam("htable", "db_url", "mysql://user:password@127.0.0.1/ser")`
`modparam("htable", "htable", 'foo=>size=4;dbtable=htable_different;cols="foo_name,key_value";')`
* Try starting Kamailio. It will fail with the following error:
` ERROR: db_mysql [km_dbase.c:128]: db_mysql_submit_query(): driver error on query: Unknown column 'key_name' in 'order clause' (1054)`
#### Debugging Data
When running an an ngrep trace while starting Kamailio, you can see the following statement:
```
T 2017/01/24 22:29:58.603428 127.0.0.1:53843 -> 127.0.0.1:3306 [AP]
I....select `foo_name`,`key_value` from `htable_different` order by key_name
T 2017/01/24 22:29:58.603555 127.0.0.1:3306 -> 127.0.0.1:53843 [AP]
4......#42S22Unknown column 'key_name' in 'order clause'
```
So when trying to read from the database, it correctly uses the changed column name in the select part, but uses the default column name in the order by part of the query.
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 4.4.5 (x86_64/linux)
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, 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_BLACKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: unknown
compiled with gcc 4.9.2
```
* **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 `uname -a`)
-->
```
Debian 8.6
Linux osboxes 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u1 (2016-09-03) x86_64 GNU/Linux
```
--
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/948