Further to my previous message, it seems that if the child hasn't yet received a GCF from the parent, if it receives a registration request from an endpoint, it will confirm it. When it later receives a GCF from the parent, it will not tell the parent about any of the registrations it has already confirmed. I suspect that the child will forward any new incoming registrations from other endpoints to the parent though. Is this desired behaviour for additiveRegistrations? Abes On 13-02-22 06:13 PM, Simon Horne wrote: > Abes > > I'm not entirely sure what you mean "the parent doesn't know about the > endpoint", the endpoint is added as just another alias of the child > gatekeeper registered (as a gateway) to the parent. There is no current way > of identifying in the parent that there is actually an endpoint beyond the > child only that there is a new alias for the child. This is something that > requires further investigation. > > Version 3.3 is probably a little way off. > > Simon > > -----Original Message----- > From: Abes Dabir [mailto:abes.dabir@xxxxxxxxxxxxx] > Sent: 23 February 2013 07:53 > To: GNU Gatekeeper Users > Subject: Re: Crashing parent GnuGK while attempting > additive registration from child > > 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,la >>> rge_fdset=0,crypto/ssl=1,h46018=0,h46023=1,ldap=0,ssh=0,ipv6=0,h235me >>> dia=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.s >>>>> h %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.s >>>>> h %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.s >>>>> h %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.s >>>>> h %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.s >>>>> h %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.s >>>>> h %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 > > ---------------------------------------------------------------------------- > -- > 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/ > > > ------------------------------------------------------------------------------ > 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/ ------------------------------------------------------------------------------ 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/