Re: Crashing parent GnuGK while attempting additive registration from child

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I have backported the 3.3 version of SetAliases() to the v3_2_STABLE
branch in the CVS, so it won't crash.

Regards,
Jan

Abes Dabir wrote:
> Looks like the issue is fixed in 3.3.
> 
> After some testing, I can get into a situation where the endpoint is 
> registered with the child, and the child is registered with the parent, 
> but the parent doesn't know about the endpoint.  I'll open another 
> thread for this once I have verified the exact scenario to reproduce.
> 
> Thanks for your help.  Btw, any idea when 3.3 might be ready to be released?
> Abes
> 
> On 13-02-22 04:01 PM, Jan Willamowius wrote:
> > Hi,
> >
> > it seems Simon has already rewritten exactly that method (SetAliases)
> > for GnuGk 3.3. Did you try if the issue still happens with the latest
> > CVS ?
> >
> > Regards,
> > Jan
> >
> > Abes Dabir wrote:
> >> Simon, Jan,
> >>
> >> Here is the backtrace:
> >>
> >> [Thread debugging using libthread_db enabled]
> >> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> >> Core was generated by `/opt/magor/gnugk/bin/gnugk --config
> >> /opt/magor/conf/gatekeeper.ini --pid /var/r'.
> >> Program terminated with signal 11, Segmentation fault.
> >> #0  0x000000000087d497 in PASN_Choice::operator= (this=0x0, other=...)
> >> at ptclib/asner.cxx:1795
> >> 1795    ptclib/asner.cxx: No such file or directory.
> >> (gdb)
> >> (gdb) bt
> >> #0  0x000000000087d497 in PASN_Choice::operator= (this=0x0, other=...)
> >> at ptclib/asner.cxx:1795
> >> #1  0x0000000000472b71 in H225_AliasAddress::operator= (this=0x0) at
> >> /home/abes/Downloads/test/h323plus/include/h225.h:500
> >> #2  0x0000000000453b04 in EndpointRec::SetAliases (this=0x7f3cc8003cc0,
> >> a=..., additive=true) at RasTbl.cxx:660
> >> #3  0x00000000004e543f in
> >> RegistrationRequestPDU::HandleAdditiveRegistration (this=0x17f7960,
> >> ep=...) at RasSrv.cxx:2577
> >> #4  0x00000000004e26a7 in RegistrationRequestPDU::Process
> >> (this=0x17f7960) at RasSrv.cxx:2055
> >> #5  0x00000000004d9094 in RasMsg::Exec (this=0x17f7960) at RasSrv.cxx:382
> >> #6  0x000000000040c9b9 in Jobs::Run (this=0x17f7990) at job.cxx:409
> >> #7  0x000000000040b9de in Worker::Main (this=0x17f57a0) at job.cxx:182
> >> #8  0x00000000008d979d in PThread::PX_ThreadStart (arg=0x17f57a0) at
> >> ptlib/unix/tlibthrd.cxx:491
> >> #9  0x00007f3ced2a2e9a in start_thread () from
> >> /lib/x86_64-linux-gnu/libpthread.so.0
> >> #10 0x00007f3cebe59cbd in clone () from /lib/x86_64-linux-gnu/libc.so.6
> >> #11 0x0000000000000000 in ?? ()
> >>
> >>
> >> I was using the binaries before.  The above is from a fresh compilation
> >> as per the chap 14 instructions.  Details:
> >>
> >> Gatekeeper(GNU) Version(3.2.0)
> >> Ext(pthreads=1,radius=1,mysql=0,pgsql=0,firebird=0,odbc=0,sqlite=0,large_fdset=0,crypto/ssl=1,h46018=0,h46023=1,ldap=0,ssh=0,ipv6=0,h235media=0,lua=0,h46017=1,snmp=1)
> >> H323Plu
> >> s(1.25.0) PTLib(2.10.9) Build(Feb 22 2013, 14:10:06) Sys(Linux x86_64
> >> 3.2.0-36-generic)
> >>
> >>
> >> Cheers,
> >> Abes
> >>
> >> On 13-02-22 08:24 AM, Jan Willamowius wrote:
> >>> Hi Abes,
> >>>
> >>> could you please provide a stacktrace of the crash as explained in
> >>> chapter 14.3 of the manual ?
> >>> http://www.gnugk.org/gnugk-manual-14.html#ss14.3
> >>>
> >>> Please make sure you do a "make clean" before the compile.
> >>>
> >>> Thanks,
> >>> Jan
> >>>
> >>> Abes Dabir wrote:
> >>>> Hi,
> >>>>
> >>>> I've got a small test network setup with a parent GnuGk, and 2 child
> >>>> GnuGks.  I've upgraded the parent and one of the children to 3.2 and I'm
> >>>> trying to get additive registrations to work on the two upgraded
> >>>> systems.  I'm going to ignore the other child that is still running 3.1
> >>>> for now.  Basically, an endpoint behind the child, 6820, tries
> >>>> registering with the child, which sends the registration to the parent,
> >>>> at which point, the parent GnuGk crashes.
> >>>>
> >>>> Each of the two GnuGk instances is straddling a NAT.  Here is a crude
> >>>> representation of the network setup:
> >>>>
> >>>> endpoint(6820)[172.22.0.100] --------
> >>>> [172.22.0.10]GnuGk-Child[10.111.0.4] --------
> >>>> [10.111.0.1]GnuGk-Parent[192.168.217.119]
> >>>>
> >>>>
> >>>> I'd appreciate any help in getting this setup to work.
> >>>>
> >>>>
> >>>> Last lines of logging (Trace 5) on the parent before it dies:
> >>>> -----------------------------------------------------------------------------
> >>>>
> >>>> 2013/02/21 18:08:00.855    4          RasSrv.cxx(241)    RAS Receiving
> >>>> on 10.111.0.1:1719(U)
> >>>> 2013/02/21 18:08:00.856    2          RasSrv.cxx(176)    RAS    Read
> >>>> from 10.111.0.4:1719
> >>>> 2013/02/21 18:08:00.856    3          RasSrv.cxx(250)    RAS
> >>>> registrationRequest {
> >>>>        requestSeqNum = 4
> >>>>        protocolIdentifier = 0.0.8.2250.0.2
> >>>>        nonStandardData = {
> >>>>          nonStandardIdentifier = h221NonStandard {
> >>>>            t35CountryCode = 138
> >>>>            t35Extension = 2
> >>>>            manufacturerCode = 2
> >>>>          }
> >>>>          data =  13 octets {
> >>>>            49 50 3d 31 30 2e 31 31  31 2e 30 2e 34 IP=10.111.0.4
> >>>>          }
> >>>>        }
> >>>>        discoveryComplete = true
> >>>>        callSignalAddress = 1 entries {
> >>>>          [0]=ipAddress {
> >>>>            ip =  4 octets {
> >>>>              0a 6f 00 04                                        .o..
> >>>>            }
> >>>>            port = 1720
> >>>>          }
> >>>>        }
> >>>>        rasAddress = 1 entries {
> >>>>          [0]=ipAddress {
> >>>>            ip =  4 octets {
> >>>>              0a 6f 00 04                                        .o..
> >>>>            }
> >>>>            port = 1719
> >>>>          }
> >>>>        }
> >>>>        terminalType = {
> >>>>          mc = false
> >>>>          undefinedNode = false
> >>>>        }
> >>>>        terminalAlias = 2 entries {
> >>>>          [0]=dialedDigits "6820"
> >>>>          [1]=h323_ID  9 characters {
> >>>>            0068 0033 0032 0033 003a 0036 0038 0032   h323:682
> >>>>            0030                                      0
> >>>>          }
> >>>>        }
> >>>>        gatekeeperIdentifier =  11 characters {
> >>>>          004d 0061 0067 006f 0072 0048 0033 0032   MagorH32
> >>>>          0033 0047 004b                            3GK
> >>>>        }
> >>>>        endpointVendor = {
> >>>>          vendor = {
> >>>>            t35CountryCode = 0
> >>>>            t35Extension = 0
> >>>>            manufacturerCode = 0
> >>>>          }
> >>>>        }
> >>>>        keepAlive = true
> >>>>        endpointIdentifier =  9 characters {
> >>>>          0032 0036 0038 0039 005f 0065 006e 0064   2689_end
> >>>>          0070                                      p
> >>>>        }
> >>>>        willSupplyUUIEs = false
> >>>>        maintainConnection = false
> >>>>        additiveRegistration = <<null>>
> >>>>        supportsAltGK = <<null>>
> >>>>        supportsAssignedGK = false
> >>>>      }
> >>>> 2013/02/21 18:08:00.856    5             job.cxx(338)    JOB Worker
> >>>> threads: 7 total - 6 busy, 1 idle
> >>>> 2013/02/21 18:08:00.856    5             job.cxx(180)    JOB Starting
> >>>> Job RRQ at Worker thread 140337482516224
> >>>> 2013/02/21 18:08:00.856    1          RasSrv.cxx(381)    RAS    RRQ
> >>>> Received from 10.111.0.4:1719
> >>>> 2013/02/21 18:08:00.856    0          assert.cxx(112)    PWLib Assertion
> >>>> fail: Invalid array element, file /root/ptlib/include/ptlib/array.h,
> >>>> line 1063
> >>>>
> >>>>
> >>>>
> >>>> Log (Trace 3) from the child when it receives the RRQ from the endpoint
> >>>> behind it, and sends it to the parent:
> >>>> --------------------------------------------------------------------------------------------------------------------------------------------------
> >>>>
> >>>> 2013/02/21 18:08:00.854 2             RasSrv.cxx(176)   RAS     Read
> >>>> from 172.22.0.100:1719
> >>>> 2013/02/21 18:08:00.854 3             RasSrv.cxx(250)   RAS
> >>>> registrationRequest {
> >>>>        requestSeqNum = 42361
> >>>>        protocolIdentifier = 0.0.8.2250.0.6
> >>>>        discoveryComplete = false
> >>>>        callSignalAddress = 1 entries {
> >>>>          [0]=ipAddress {
> >>>>            ip =  4 octets {
> >>>>              ac 16 00 64                                        ...d
> >>>>            }
> >>>>            port = 1720
> >>>>          }
> >>>>        }
> >>>>        rasAddress = 1 entries {
> >>>>          [0]=ipAddress {
> >>>>            ip =  4 octets {
> >>>>              ac 16 00 64                                        ...d
> >>>>            }
> >>>>            port = 1719
> >>>>          }
> >>>>        }
> >>>>        terminalType = {
> >>>>          vendor = {
> >>>>            vendor = {
> >>>>              t35CountryCode = 9
> >>>>              t35Extension = 0
> >>>>              manufacturerCode = 61
> >>>>            }
> >>>>            productId =  21 octets {
> >>>>              46 72 65 65 53 57 49 54  43 48 20 6d 6f 64 5f 68 FreeSWITCH mod_h
> >>>>              33 32 33 00 00                                     323..
> >>>>            }
> >>>>            versionId =  30 octets {
> >>>>              31 2e 30 61 6c 70 68 61  31 20 28 48 33 32 33 70 1.0alpha1 (H323p
> >>>>              6c 75 73 20 76 31 2e 32  34 2e 30 29 00 00         lus v1.24.0)..
> >>>>            }
> >>>>          }
> >>>>          terminal = {
> >>>>          }
> >>>>          mc = false
> >>>>          undefinedNode = false
> >>>>        }
> >>>>        terminalAlias = 2 entries {
> >>>>          [0]=dialedDigits "6820"
> >>>>          [1]=h323_ID  9 characters {
> >>>>            0068 0033 0032 0033 003a 0036 0038 0032   h323:682
> >>>>            0030                                      0
> >>>>          }
> >>>>        }
> >>>>        gatekeeperIdentifier =  15 characters {
> >>>>          0050 0068 006f 0065 006e 0069 0078 002d   Phoenix-
> >>>>          0043 0068 0069 006c 0064 0047 004b        ChildGK
> >>>>        }
> >>>>        endpointVendor = {
> >>>>          vendor = {
> >>>>            t35CountryCode = 9
> >>>>            t35Extension = 0
> >>>>            manufacturerCode = 61
> >>>>          }
> >>>>          productId =  21 octets {
> >>>>            46 72 65 65 53 57 49 54  43 48 20 6d 6f 64 5f 68 FreeSWITCH mod_h
> >>>>            33 32 33 00 00                                     323..
> >>>>          }
> >>>>          versionId =  30 octets {
> >>>>            31 2e 30 61 6c 70 68 61  31 20 28 48 33 32 33 70   1.0alpha1 (H323p
> >>>>            6c 75 73 20 76 31 2e 32  34 2e 30 29 00 00         lus v1.24.0)..
> >>>>          }
> >>>>        }
> >>>>        timeToLive = 30
> >>>>        keepAlive = false
> >>>>        endpointIdentifier =  9 characters {
> >>>>          0038 0035 0038 0036 005f 0065 006e 0064   8586_end
> >>>>          0070                                      p
> >>>>        }
> >>>>        willSupplyUUIEs = true
> >>>>        maintainConnection = false
> >>>>        supportsAltGK = <<null>>
> >>>>        usageReportingCapability = {
> >>>>          nonStandardUsageTypes = 0 entries {
> >>>>          }
> >>>>          startTime = <<null>>
> >>>>          endTime = <<null>>
> >>>>          terminationCause = <<null>>
> >>>>        }
> >>>>        callCreditCapability = {
> >>>>          canEnforceDurationLimit = true
> >>>>        }
> >>>>      }
> >>>> 2013/02/21 18:08:00.855 1             RasSrv.cxx(381)   RAS     RRQ
> >>>> Received from 172.22.0.100:1719
> >>>> 2013/02/21 18:08:00.855 3             RasSrv.cxx(262)   RAS     Send to
> >>>> 10.111.0.1:1719
> >>>> registrationRequest {
> >>>>        requestSeqNum = 4
> >>>>        protocolIdentifier = 0.0.8.2250.0.2
> >>>>        nonStandardData = {
> >>>>          nonStandardIdentifier = h221NonStandard {
> >>>>            t35CountryCode = 138
> >>>>            t35Extension = 2
> >>>>            manufacturerCode = 2
> >>>>          }
> >>>>          data =  13 octets {
> >>>>            49 50 3d 31 30 2e 31 31  31 2e 30 2e 34 IP=10.111.0.4
> >>>>          }
> >>>>        }
> >>>>        discoveryComplete = true
> >>>>        callSignalAddress = 1 entries {
> >>>>          [0]=ipAddress {
> >>>>            ip =  4 octets {
> >>>>              0a 6f 00 04                                        .o..
> >>>>            }
> >>>>            port = 1720
> >>>>          }
> >>>>        }
> >>>>        rasAddress = 1 entries {
> >>>>          [0]=ipAddress {
> >>>>            ip =  4 octets {
> >>>>              0a 6f 00 04                                        .o..
> >>>>            }
> >>>>            port = 1719
> >>>>          }
> >>>>        }
> >>>>        terminalType = {
> >>>>          mc = false
> >>>>          undefinedNode = false
> >>>>        }
> >>>>        terminalAlias = 2 entries {
> >>>>          [0]=dialedDigits "6820"
> >>>>          [1]=h323_ID  9 characters {
> >>>>            0068 0033 0032 0033 003a 0036 0038 0032   h323:682
> >>>>            0030                                      0
> >>>>          }
> >>>>        }
> >>>>        gatekeeperIdentifier =  11 characters {
> >>>>          004d 0061 0067 006f 0072 0048 0033 0032   MagorH32
> >>>>          0033 0047 004b                            3GK
> >>>>        }
> >>>>        endpointVendor = {
> >>>>          vendor = {
> >>>>            t35CountryCode = 0
> >>>>            t35Extension = 0
> >>>>            manufacturerCode = 0
> >>>>          }
> >>>>        }
> >>>>        keepAlive = true
> >>>>        endpointIdentifier =  9 characters {
> >>>>          0032 0036 0038 0039 005f 0065 006e 0064   2689_end
> >>>>          0070                                      p
> >>>>        }
> >>>>        willSupplyUUIEs = false
> >>>>        maintainConnection = false
> >>>>        additiveRegistration = <<null>>
> >>>>        supportsAltGK = <<null>>
> >>>>        supportsAssignedGK = false
> >>>>      }
> >>>>
> >>>>
> >>>> Configuration on the parent:
> >>>> --------------------------------------
> >>>>
> >>>> [Gatekeeper::Main]
> >>>> Fourtytwo = 42
> >>>> Name = MagorH323GK
> >>>> TimeToLive = 100
> >>>> StatusPort = 7000
> >>>> TraceLevel = 5
> >>>> Home = 10.111.0.1,192.168.217.119,127.0.0.1
> >>>> ExternalIP = 192.168.217.119
> >>>>
> >>>> [RoutedMode]
> >>>> GKRouted = 1
> >>>> H245Routed = 1
> >>>> AcceptUnregisteredCalls = 1
> >>>> AcceptNeighborsCalls = 1
> >>>> CallSignalPort = 1720
> >>>> CallSignalHandlerNumber = 1
> >>>> RemoveH245AddressOnTunneling = 1
> >>>> DropCallsByReleaseComplete = 1
> >>>> SupportNATedEndpoints = 1
> >>>> SupportCallingNATedEndpoints = 1
> >>>> Q931PortRange = 30000-30099
> >>>> H245PortRange = 31000-31099
> >>>> SendReleaseCompleteOnDRQ = 1
> >>>>
> >>>> [Proxy]
> >>>> Enable = 1
> >>>> InternalNetwork = 10.111.0.1/255.255.0.0
> >>>> T120PortRange = 32000-41999
> >>>> RTPPortRange = 32000-41999
> >>>> ProxyForNAT = 1
> >>>> ProxyForSameNAT = 0
> >>>> ProxyAlways = 1
> >>>>
> >>>> [RasSrv::LRQFeatures]
> >>>> NeighborTimeout = 6
> >>>> ForwardHopCount = 8
> >>>> AlwaysForwardLRQ = 1
> >>>> IncludeDestinationInfoInLCF = 1
> >>>> CiscoGKCompatible = 1
> >>>>
> >>>> [RasSrv::RRQFeatures]
> >>>> EnableAdditiveRegistration=1
> >>>>
> >>>> [RoutingPolicy]
> >>>> default = explicit,internal,enum,srv,dns
> >>>>
> >>>> [GkStatus::Auth]
> >>>> rule = explicit
> >>>> DelayReject = 5
> >>>> 127.0.0.1 = allow
> >>>>
> >>>> [LogFile]
> >>>> Rotate = Weekly
> >>>> RotateDay = Sun
> >>>> RotateTime = 00:59
> >>>> Filename = /var/log/magor/gnugk/gnugk.log
> >>>>
> >>>> [PortNotifications]
> >>>> Q931PortOpen =
> >>>> /opt/magor/util/scripts/firewall/gnugk/open-pinhole-inbound-gnugk.sh %p
> >>>> %n %i
> >>>> Q931PortClose =
> >>>> /opt/magor/util/scripts/firewall/gnugk/close-pinhole-inbound-gnugk.sh %p
> >>>> %n %i
> >>>> H245PortOpen =
> >>>> /opt/magor/util/scripts/firewall/gnugk/open-pinhole-inbound-gnugk.sh %p
> >>>> %n %i
> >>>> H245PortClose =
> >>>> /opt/magor/util/scripts/firewall/gnugk/close-pinhole-inbound-gnugk.sh %p
> >>>> %n %i
> >>>> RTPPortOpen =
> >>>> /opt/magor/util/scripts/firewall/gnugk/open-pinhole-inbound-gnugk.sh %p
> >>>> %n %i
> >>>> RTPPortClose =
> >>>> /opt/magor/util/scripts/firewall/gnugk/close-pinhole-inbound-gnugk.sh %p
> >>>> %n %i
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> Configuration on the child:
> >>>> -----------------------------------
> >>>>
> >>>> [Gatekeeper::Main]
> >>>> Fourtytwo = 42
> >>>> Name = Phoenix-ChildGK
> >>>> TimeToLive = 100
> >>>> StatusPort = 7000
> >>>> TraceLevel = 3
> >>>> Home = 172.22.0.10,10.111.0.4,127.0.0.1
> >>>> ExternalIP = 10.111.0.4
> >>>>
> >>>> [RoutedMode]
> >>>> GKRouted = 1
> >>>> H245Routed = 1
> >>>> AcceptUnregisteredCalls = 1
> >>>> AcceptNeighborsCalls = 1
> >>>> CallSignalPort = 1720
> >>>> CallSignalHandlerNumber = 1
> >>>> RemoveH245AddressOnTunneling = 1
> >>>> DropCallsByReleaseComplete = 1
> >>>> SupportNATedEndpoints = 1
> >>>> SupportCallingNATedEndpoints = 1
> >>>> Q931PortRange = 30000-30099
> >>>> H245PortRange = 31000-31099
> >>>> SendReleaseCompleteOnDRQ = 1
> >>>>
> >>>> [Proxy]
> >>>> Enable = 1
> >>>> InternalNetwork = 172.22.0.10/255.255.255.0
> >>>> T120PortRange = 32000-41999
> >>>> RTPPortRange = 32000-41999
> >>>> ProxyForNAT = 1
> >>>> ProxyForSameNAT = 0
> >>>> ProxyAlways = 1
> >>>>
> >>>> [RasSrv::LRQFeatures]
> >>>> NeighborTimeout = 6
> >>>> ForwardHopCount = 8
> >>>> AlwaysForwardLRQ = 1
> >>>> IncludeDestinationInfoInLCF = 1
> >>>> CiscoGKCompatible = 1
> >>>>
> >>>> [RasSrv::RRQFeatures]
> >>>> EnableAdditiveRegistration=1
> >>>>
> >>>> [RoutingPolicy]
> >>>> default = explicit,internal,parent
> >>>>
> >>>> [GkStatus::Auth]
> >>>> rule = explicit
> >>>> DelayReject = 5
> >>>> 127.0.0.1 = allow
> >>>>
> >>>> [LogFile]
> >>>> Rotate = Weekly
> >>>> RotateDay = Sun
> >>>> RotateTime = 00:59
> >>>> Filename = /var/log/magor/gnugk/gnugk.log
> >>>>
> >>>> [PortNotifications]
> >>>> Q931PortOpen =
> >>>> /opt/magor/util/scripts/firewall/gnugk/open-pinhole-inbound-gnugk.sh %p
> >>>> %n %i
> >>>> Q931PortClose =
> >>>> /opt/magor/util/scripts/firewall/gnugk/close-pinhole-inbound-gnugk.sh %p
> >>>> %n %i
> >>>> H245PortOpen =
> >>>> /opt/magor/util/scripts/firewall/gnugk/open-pinhole-inbound-gnugk.sh %p
> >>>> %n %i
> >>>> H245PortClose =
> >>>> /opt/magor/util/scripts/firewall/gnugk/close-pinhole-inbound-gnugk.sh %p
> >>>> %n %i
> >>>> RTPPortOpen =
> >>>> /opt/magor/util/scripts/firewall/gnugk/open-pinhole-inbound-gnugk.sh %p
> >>>> %n %i
> >>>> RTPPortClose =
> >>>> /opt/magor/util/scripts/firewall/gnugk/close-pinhole-inbound-gnugk.sh %p
> >>>> %n %i
> >>>>
> >>>> [Endpoint]
> >>>> Gatekeeper = 10.111.0.1
> >>>> EnableAdditiveRegistration=1
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> Thanks,
> >>>> Abes Dabir

-- 
Jan Willamowius, jan@xxxxxxxxxxxxxx, http://www.gnugk.org/

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________________

Posting: mailto:Openh323gk-users@xxxxxxxxxxxxxxxxxxxxx
Archive: http://sourceforge.net/mailarchive/forum.php?forum_name=openh323gk-users
Unsubscribe: http://lists.sourceforge.net/lists/listinfo/openh323gk-users
Homepage: http://www.gnugk.org/


[Index of Archives]     [SIP]     [Open H.323]     [Gnu Gatekeeper]     [Asterisk PBX]     [ISDN Cause Codes]     [Yosemite News]

  Powered by Linux