Hello,
after Robert reported and provided a patch to fix, there should be no
more thread-unsafe conenction. The warning messages were added by me and
kept for short time just to spot such cases and investigate if they are
still problems, but when the warning is printed a new connection is created.
If you update to latest git branch 3.1, the warning messages are gone.
On the other hand, as Robert said, the primary key for sip trace table
is an auto-increment field and mysql should take care of updating it.
Kamailio is not providing its value at all, so the link from Robert may
shed some light of potential causes for that and fixes.
Cheers,
Daniel
On 5/5/11 1:52 PM, Robert Verspuy wrote:
Hi Torge,
I think it's better to send your mail to the mailinglist, then more
people can have a look at your problem.
I'm not really familiar with the kamailio source code. Just started
using Kamailio about 8 months back. I came across a problem with
requesting information from a postgresql database and made a patch
which 'works for me'. I'm not using siptrace.
Maybe you can supply more logging (through the mailinglist) of the
database communication. The mysql error "Duplicate entry '96193' for
key 'PRIMARY'" is a bit weird. As I said, I don't know and don't use
the msyql driver in kamailio, but normally I would expect that mysql
itself would take care of generating a primary key for the record.
So maybe your problem is in the mysql server and not kamailio.
Maybe this page can help you:
http://www.softwareprojects.com/resources/programming/t-how-to-fix-mysql-du…
With kind regards,
Robert Verspuy
Op 05-05-11 13:19, Dr. Torge Szczepanek schreef:
Hi!
First of all thanks for all of your work. I really appreciate and I
am glad that there is such a nice Opensource SIP Proxy available.
In a current project I am heavily relying on SIP Traces stored to a
database and other sqlops, dialplan operations using database
connections.
It seems that there is a race condition with SQL Databases (Postgres
and also MySQL) due to thread insafety as described in:
http://lists.sip-router.org/pipermail/sr-dev/2010-October/009689.html
This is causing multiple errors. I guess that the following error is
also caused by this race condition (thread safety):
/usr/sbin/kamailio[5646]: ERROR: <core> [db_query.c:179]: error while
submitting query
/usr/sbin/kamailio[5646]: ERROR: siptrace [siptrace.c:532]: error
storing trace
/usr/sbin/kamailio[5646]: ERROR: db_mysql [km_dbase.c:120]: driver
error on query: Duplicate entry '96193' for key 'PRIMARY'
My Kamailo Version (3.1.2) is reporting duplicate database URLs using
a warning:
/usr/sbin/kamailio[5613]: WARNING: <core> [db_id.c:281]: identical DB
URLs, but different DB connection pid [5613/5562]
/usr/sbin/kamailio[5618]: WARNING: <core> [db_id.c:281]: identical DB
URLs, but different DB connection pid [5618/5562]
/usr/sbin/kamailio[5616]: WARNING: <core> [db_id.c:281]: identical DB
URLs, but different DB connection pid [5616/5562]
/usr/sbin/kamailio[5600]: WARNING: <core> [db_id.c:281]: identical DB
URLs, but different DB connection pid [5600/5562]
/usr/sbin/kamailio[5617]: WARNING: <core> [db_id.c:281]: identical DB
URLs, but different DB connection pid [5617/5562]
Git commit 9fb37a55e0b97a98b7d2d104a7692f18cb3f7df6 is turning this
into a debug message, which I think is a bad idea if the thread
insafety still exists.
As far as I know every thread should use its own database handle, at
least when using the MySQL API.
Is there a way to handle this correctly? Can you give me any clues on
which approach to take here? Since I need a solution for this I would
like to fix this issue at least for myself and of course giving the
change back.
Greetings Torge
--
Dr. Torge Szczepanek
Cygnus Networks GmbH Tel: +49-228-9090987-0
Adenauerallee 73 Fax: +49-228-9090987-70
D-53113 Bonn EMail:
info(a)cygnusnetworks.de <mailto:info@cygnusnetworks.de>
Amtsgericht Bonn, HRB 15928 SIP:
info(a)cygnusnetworks.de <mailto:info@cygnusnetworks.de>
Geschaeftsfuehrer Dr. Torge Szczepanek
http://www.cygnusnetworks.de/
Steuernummer 205/5710/1347 USt-ID DE258507007
--
*Exa-Omicron*
Patroonsweg 10
3892 DB Zeewolde
Tel.: 088-OMICRON (66 427 66)
http://www.exa-omicron.nl