[sr-dev] git:master: modules_k/presence Used affected_rows SQL statement

Anca Vamanu anca.vamanu at 1and1.ro
Fri Mar 16 12:56:09 CET 2012


Hi Peter,

You were right. I am sorry, I have not tested with DB_ONLY mode, only 
with this mode the problem showed up.
I have committed the fix now.

Regards,
Anca


On 03/16/2012 01:15 PM, Peter Dunkley wrote:
> Hi,
>
> Another, more likely, possibility is that somewhere after the first 
> use_table and query on presentity but before the delete there is a 
> function called that queries active_watchers (to find out what dialogs 
> to send NOTIFYs on).
>
> Peter
>
> On Fri, 2012-03-16 at 10:46 +0000, Peter Dunkley wrote:
>> Hi Anca,
>>
>> I am now seeing a different problem with unPUBLISH.  When I unPUBLISH 
>> I get the errors:
>>
>>     Mar 16 10:20:44 pd-laptop-linux kamailio[20117]: ERROR:
>>     db_postgres [km_dbase.c:493]: invalid query, execution aborted
>>     Mar 16 10:20:44 pd-laptop-linux kamailio[20117]: ERROR:
>>     db_postgres [km_dbase.c:494]: driver error: PGRES_FATAL_ERROR,
>>     ERROR:  column "domain" does not exist#012LINE 1: delete from
>>     active_watchers where domain='multifon.ru' AND
>>     u...#012                                          ^#012
>>     Mar 16 10:20:44 pd-laptop-linux kamailio[20117]: WARNING:
>>     db_postgres [km_dbase.c:565]: unexpected result returned
>>
>>
>> As a test I put a use_table call at the top of the 
>> presentity.c:update_presentity() function but that made no 
>> difference.  I then explicitly added use_table() calls before each DB 
>> operation in presentity.c:update_presentity() and the problem went 
>> away.  I don't have time to look into it further but I suspect this 
>> means there is some issue related how Kamailio pools the DB 
>> connections meaning that (because this is a long function with lots 
>> of queries) some other query (in this case on active_watchers) 
>> happens on the connection in between the queries in this function.
>>
>> If that is what is happening than it makes the calls to 
>> affected_rows() used in this function a bit suspect as well.  
>> affected_rows() returns the rows affected by the last DB operation, 
>> and it looks like it is entirely possible that this last operation 
>> may not always be one that is in the same function.
>>
>> Regards,
>>
>> Peter
>>
>> On Thu, 2012-03-15 at 18:52 +0200, Anca Vamanu wrote:
>>> Hi Peter,
>>>
>>> I have fixed the issue with the unPublish.
>>>
>>> I have did another commit in the code : changed the sql query at delete
>>> in active_watchers to use the callid,to_tag,from_tag unique key.
>>>
>>> I also realised that for DB_ONLY mode an index on presentity_uri column
>>> is need, so I updated the database schema.
>>>
>>> Let us know the results of the performance tests.
>>>
>>> Regards,
>>> Anca
>>>
>>>
>>
>> _______________________________________________
>> sr-dev mailing list
>> sr-dev at lists.sip-router.org  <mailto:sr-dev at lists.sip-router.org>
>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>
> -- 
> Peter Dunkley
> Technical Director
> Crocodile RCS Ltd
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20120316/b414a52d/attachment-0001.htm>


More information about the sr-dev mailing list