Hi,
This was fixed starting with 1.11, so you should upgrade your version as
1.8 is deprecated.
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 18.01.2016 20:22, Gunjan Korlekar wrote:
Hi Bogdan,
Thanks for the tip! I checked the opensips logs and I saw the
following message when we executed a 'dispatcher reload' command -
WARNING:dispatcher:ds_load_db: no dispatching data in the db -- empty
destination set
Digging into the code for the ds_load_db function in dispatch.c I
found the following -
if(nr_rows == 0)
{
LM_WARN("no dispatching data in the db -- empty destination set\n");
ds_dbf.free_result(ds_db_handle, res);
return 0;
}
So, essentially when the dispatcher table is empty, the reload
function does not sync the secondary memory with the primary and
returns, which causes stale data to remain in the primary, which is
why 'fifo ds_list' command never updated after the 'dispatcher rmgw'.
Is there a patch or a fix you can provide for the above in the
opensips 1.8 version of the source?
Thanks,
Gunjan
On Fri, Jan 15, 2016 at 1:31 AM, Bogdan-Andrei Iancu
<bog...@opensips.org <mailto:bog...@opensips.org>> wrote:
Hi Gunjan,
have you checked the opensips logs for any potential errors ?
maybe the reload fails.
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 14.01.2016 19:10, Gunjan Korlekar wrote:
Hi Bogdan,
Thanks for the clarification regarding the memory and the ds_list
command.
From what I see in the opensipsctl source, the 'opensipsctl
dispatcher rmgw' command also runs a 'ds_reload' after running
the database query to remove the entry. Hence in my above
sequence of operations, the primary storage should have synced
with the secondary storage before I ran 'fifo ds_list' and should
not have expected data in the ds_list output -
./opensipsctl dispatcher show
dispatcher gateways
+----+-------+------------------+--------+-------+--------+-------+-------------+
| id | setid | destination | socket | flags | weight | attrs
| description |
+----+-------+------------------+--------+-------+--------+-------+-------------+
| 5 | 40 | sip:2.2.2.6:5060 <http://2.2.2.6:5060/> | NULL |
0 | 1 | | test1 |
+----+-------+------------------+--------+-------+--------+-------+-------------+
./opensipsctl dispatcher rmgw 5 <<<<------ ds_reload here
./opensipsctl fifo ds_list <<<----- should show synced output ?
SET_NO:: 1
SET:: 40
URI:: sip:2.2.2.6:5060 <http://2.2.2.6:5060/> flag=A
./opensipsctl dispatcher show
dispatcher gateways
I tried the above by running 'fifo ds_reload' explicitly after
'dispatcher rmgw' as well. However I did not see a difference in
the result. Can you please help in understanding the issue?
Thanks,
Gunjan
On Thu, Jan 14, 2016 at 1:39 AM, Bogdan-Andrei Iancu
<bog...@opensips.org <mailto:bog...@opensips.org>> wrote:
Hi Gunjan,
In dispatcher there are 2 storages:
- primary storage which is in memory
- secondary storage (read only at startup or reload)
which is the DB
First is about synchronizing the 2 storages (from secondary
to primary via a ds_reload command). AFter that is about
which storage you are querying for data. Like the
"opensipsctl fifo ds_list" (via MI command) gets data from
memory cache while the "opensipsctl dispatcher show" simply
dumps db content.
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
On 14.01.2016 03:44, Gunjan Korlekar wrote:
Hello,
I am observing some unusual behavior of the ds_list command
when adding and removing gateways in the dispatcher table
for opensips 1.8
I am running the following sequence of commands -
./opensipsctl dispatcher addgw 40 sip:2.2.2.4:5060
<http://2.2.2.4:5060/> 0 'test1'
./opensipsctl dispatcher addgw 40 sip:2.2.2.5:5060
<http://2.2.2.5:5060/> 0 'test1'
./opensipsctl dispatcher addgw 40 sip:2.2.2.6:5060
<http://2.2.2.6:5060/> 0 'test1'
When I view the dispatcher list using ds_list I see-
./opensipsctl fifo ds_list
SET_NO:: 1
SET:: 40
URI:: sip:2.2.2.4:5060 <http://2.2.2.4:5060/> flag=A
URI:: sip:2.2.2.5:5060 <http://2.2.2.5:5060/> flag=A
URI:: sip:2.2.2.6:5060 <http://2.2.2.6:5060/> flag=A
and the ./opensipsctl dispatcher show output is as follows -
dispatcher gateways
+----+-------+------------------+--------+-------+--------+-------+-------------+
| id | setid | destination | socket | flags | weight |
attrs | description |
+----+-------+------------------+--------+-------+--------+-------+-------------+
| 3 | 40 | sip:2.2.2.4:5060 <http://2.2.2.4:5060/> |
NULL | 0 | 1 | | test1 |
| 4 | 40 | sip:2.2.2.5:5060 <http://2.2.2.5:5060/> |
NULL | 0 | 1 | | test1 |
| 5 | 40 | sip:2.2.2.6:5060 <http://2.2.2.6:5060/> |
NULL | 0 | 1 | | test1 |
+----+-------+------------------+--------+-------+--------+-------+-------------+
However when I remove the 3 gateways one after another using
the ./opensipsctl dispatcher rmgw command. I see that the
gateway that was removed last can still be seen in the
ds_list command even though 'dispatcher show' does not show
any gateways present. Here is the sequence of commands I am
executing-
./opensipsctl dispatcher rmgw 3
./opensipsctl fifo ds_list
SET_NO:: 1
SET:: 40
URI:: sip:2.2.2.5:5060 <http://2.2.2.5:5060/> flag=A
URI:: sip:2.2.2.6:5060 <http://2.2.2.6:5060/> flag=A
./opensipsctl dispatcher show
dispatcher gateways
+----+-------+------------------+--------+-------+--------+-------+-------------+
| id | setid | destination | socket | flags | weight |
attrs | description |
+----+-------+------------------+--------+-------+--------+-------+-------------+
| 4 | 40 | sip:2.2.2.5:5060 <http://2.2.2.5:5060/> |
NULL | 0 | 1 | | test1 |
| 5 | 40 | sip:2.2.2.6:5060 <http://2.2.2.6:5060/> |
NULL | 0 | 1 | | test1 |
+----+-------+------------------+--------+-------+--------+-------+-------------+
./opensipsctl dispatcher rmgw 4
./opensipsctl fifo ds_list
SET_NO:: 1
SET:: 40
URI:: sip:2.2.2.6:5060 <http://2.2.2.6:5060/> flag=A
./opensipsctl dispatcher show
dispatcher gateways
+----+-------+------------------+--------+-------+--------+-------+-------------+
| id | setid | destination | socket | flags | weight |
attrs | description |
+----+-------+------------------+--------+-------+--------+-------+-------------+
| 5 | 40 | sip:2.2.2.6:5060 <http://2.2.2.6:5060/> |
NULL | 0 | 1 | | test1 |
+----+-------+------------------+--------+-------+--------+-------+-------------+
./opensipsctl dispatcher rmgw 5
./opensipsctl fifo ds_list
SET_NO:: 1
SET:: 40
URI:: sip:2.2.2.6:5060 <http://2.2.2.6:5060/> flag=A
./opensipsctl dispatcher show
dispatcher gateways
Can you please help in understanding this behavior? Is this
expected behavior? Is there something I am missing that
needs to be done to correct this?
--
Thanks,
Gunjan
_______________________________________________
Users mailing list
Users@lists.opensips.org <mailto:Users@lists.opensips.org>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
--
Thanks,
Gunjan
--
Thanks,
Gunjan
_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users