[asterisk-ss7] chan_ss7 cluster config.c segfault

Amish amish at 3g.co.za
Wed Mar 9 06:12:40 CST 2011


Hi Gregory,

Below is a simplified version of the of the ss7.conf file I am using. I 
have one ss7 link on each host (box1 and box2 below). Each host is 
running mtp3d.

I also had to patch mtp3d.c in chan_ss7 version 1.4.3 with the following:
273c273
<           if (link->linkset == linkset) {
---
 >           if (link->linkset == linkset || 
!strcmp((link->linkset)->combined,linkset->combined)) {

Without the patch if host1 receives a signalling messages for host2 the 
message is sent to the other host.

Some problems with mtp3d:
- if a signalling link on one host fails, the mtp3d on the affected host 
does not send the MSUs in the transmit buffer of the affected host to 
the other host.
- if a signalling link is down (i.e. cannot be aligned) initially mtp3d 
will not start on that host.
- on the surface the concept used for the cluster configuration seems 
more reliable than the mtp3d setup as the cluster can communicate with 2 
interfaces on each host.

Does this provide what you are trying to achieve?

Cheers,
Amish


[linkset-net]
enabled => yes
enable_st => no
use_connect => no
hunting_policy => seq_htl
subservice => auto
combined => net-stps
language => en
variant => ITU
context => net
t35 => 15000,timeout

[link-net1]
linkset => net
channels => 1-15,17-31
schannel => 16 at box1:12000
firstcic => 1
enabled => yes
stp => 19

[link-net2]
linkset => net
channels => 1-15,17-31
schannel => 16 at box2:12000
firstcic => 33
enabled => yes
stp => 20

[link-net3]
linkset => net
channels => 1-31
schannel =>
firstcic => 65
enabled => yes
stp => 19

[link-net4]
linkset => net
channels => 1-31
schannel =>
firstcic => 97
enabled => yes
stp => 20

[host-box1]
enabled => yes
default_linkset => net1
opc => 1234
dpc => net:30
links => net1:1,net3:2

[host-box2]
enabled => yes
default_linkset => net1
opc => 1234
dpc => net:30
links => net2:1,net4:2


On 03/08/2011 11:52 AM, Amish wrote:
> Hi,
>
> I also could not get the cluster function in 1.4.3 to work - segfault.
> Managed to get further with 1.3 and had it up and running on both 
> hosts but had asterisk crash on one of the hosts after a few minutes.
>
> I am now using mtp3d running on both hosts. Will post config later today.
>
> Best Regards,
> Amish
>
>
> On 03/08/2011 03:11 AM, Gregory Massel wrote:
>> Hello
>>
>> I'm trying to set up a chan_ss7 cluster, however, both chan_ss7 and 
>> mtp3d segfault in config.c when trying to read the [cluster] section 
>> of the config file.
>>
>> To ensure it wasn't my config, I eventually used the 
>> ss7.conf.template.two-hosts sample (as distributed in the chan_ss7 
>> source) and the same thing occurred.
>>
>> The problem seems to arise in config.c on the link lines. The 
>> following is problematic:
>>
>> [cluster]
>> port => 5040
>> l1 => gentoo2#if-1,gentoo2#if-2
>> l2 => gentoo1#if-1,gentoo1#if-2
>> l3 => gentoo2#if-1,gentoo2#if-2
>> l4 => gentoo1#if-1,gentoo1#if-2
>>
>> It results in:
>>
>> Mar 08 02:35:02 [NOTICE] config.c:502 load_config_linkset Using 
>> default context 'default' for linkset 'siuc'
>> Mar 08 02:35:02 [NOTICE] config.c:504 load_config_linkset Using 
>> default language '' for linkset 'siuc'
>> Mar 08 02:35:02 [NOTICE] config.c:502 load_config_linkset Using 
>> default context 'default' for linkset 'peer2'
>> Mar 08 02:35:02 [NOTICE] config.c:504 load_config_linkset Using 
>> default language '' for linkset 'peer2'
>> Mar 08 02:35:02 [NOTICE] config.c:804 load_config_link Configured 
>> link 'l1' on linkset 'siuc', firstcic=1
>> Mar 08 02:35:02 [NOTICE] config.c:804 load_config_link Configured 
>> link 'l2' on linkset 'siuc', firstcic=33
>> Mar 08 02:35:02 [NOTICE] config.c:804 load_config_link Configured 
>> link 'l3' on linkset 'peer2', firstcic=1
>> Mar 08 02:35:02 [NOTICE] config.c:804 load_config_link Configured 
>> link 'l4' on linkset 'peer2', firstcic=33
>> Segmentation fault
>>
>> As soon as I comment out the link lines:
>>
>> [cluster]
>> port => 5040
>> ;l1 => gentoo2#if-1,gentoo2#if-2
>> ;l2 => gentoo1#if-1,gentoo1#if-2
>> ;l3 => gentoo2#if-1,gentoo2#if-2
>> ;l4 => gentoo1#if-1,gentoo1#if-2
>>
>> Then asterisk starts up and mtp3d gets a bit further:
>>
>> Mar 08 02:36:51 [NOTICE] mtp.c:2378 mtp_init Initialising 2 
>> signalling links
>>    -- Starting mtp mainloop, pid=3260.
>> No signaling channels
>>
>> I'm trying to use chan_ss7 1.4.3 on Asterisk 1.4.40, Linux kernel 
>> 2.6.32-28-server, libc6 2.11.1, Ubuntu 10.04.1 LTS (64-bit).
>>
>> In terms of trying to isolate where within config.c the segfault 
>> occurs, I have tried making an intentional typo on the link name and 
>> it does get as far as:
>>
>> Mar 08 02:50:05 [ERROR] config.c:1123 load_config_cluster The link 
>> 'dl1' is not defined while parsing cluster category.
>>
>> Unfortunately, as soon as there is a valid link name specified, it 
>> segfaults, irrespective of what is to the right of the "=>". You can 
>> even put garbage (e.g. "l1 => abc") and it will segfault before 
>> trying to sanity check the rest of the line.
>>
>> Thanks
>>
>> Greg
>>
>> -- 
>> _____________________________________________________________________
>> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>>
>> asterisk-ss7 mailing list
>> To UNSUBSCRIBE or update options visit:
>>   http://lists.digium.com/mailman/listinfo/asterisk-ss7
>>
>
>
> -- 
> _____________________________________________________________________
> -- Bandwidth and Colocation Provided by http://www.api-digital.com --
>
> asterisk-ss7 mailing list
> To UNSUBSCRIBE or update options visit:
>   http://lists.digium.com/mailman/listinfo/asterisk-ss7
>




More information about the asterisk-ss7 mailing list