#8 open
Kenny Richards

Hung unlinking and linking to different reflectors

Reported by Kenny Richards | August 26th, 2015 @ 09:17 AM

Was checking the three or four reflectors I 'scan' during the day for some activity and Buster hung. (See console debug) I had just heard some kruching on REF001-C, then I told it to connect to REF029-C and it hung.

8/26/15 9:03:16.269 AM Buster[366]: -[BTRDPlusLink processLinkPacket:] [Line 211] Received ACK from repeater, we are now linked
8/26/15 9:04:27.041 AM Buster[366]: -[BTRLinkDriver processFrame:] [Line 464] New stream {
message = ""; myCall = G0BAI; myCall2 = PETE; rpt1Call = "G0BAI B"; rpt2Call = "REF001 C"; streamId = 48860; time = "2015-08-26 16:04:27 +0000"; urCall = CQCQCQ; } 8/26/15 9:04:27.902 AM Buster[366]: -[BTRLinkDriver terminateCurrentStream] [Line 388] Stream 48860 ends
8/26/15 9:07:36.721 AM Buster[366]: -[BTRLinkDriver processFrame:] [Line 464] New stream {
message = ""; myCall = M0GMA; myCall2 = ""; rpt1Call = M0GMA; rpt2Call = "REF001 C"; streamId = 45856; time = "2015-08-26 16:07:36 +0000"; urCall = CQCQCQ; } 8/26/15 9:07:37.279 AM Buster[366]: -[BTRLinkDriver terminateCurrentStream] [Line 388] Stream 45856 ends
8/26/15 9:09:27.057 AM Buster[366]: -[BTRLinkDriver processFrame:] [Line 464] New stream {
message = ""; myCall = G0BAI; myCall2 = PETE; rpt1Call = "G0BAI B"; rpt2Call = "REF001 C"; streamId = 35376; time = "2015-08-26 16:09:27 +0000"; urCall = CQCQCQ; } 8/26/15 9:09:27.928 AM Buster[366]: -[BTRLinkDriver terminateCurrentStream] [Line 388] Stream 35376 ends
8/26/15 9:10:15.342 AM Buster[366]: -[BTRLinkDriver processFrame:] [Line 464] New stream {
message = ""; myCall = DL7AC; myCall2 = DV4M; rpt1Call = "REF001 G"; rpt2Call = "REF001 C"; streamId = 12304; time = "2015-08-26 16:10:15 +0000"; urCall = CQCQCQ; } 8/26/15 9:10:17.228 AM Buster[366]: -[BTRLinkDriver terminateCurrentStream] [Line 388] Stream 12304 ends
8/26/15 9:10:17.229 AM Buster[366]: -[BTRLinkDriver processFrame:] [Line 497] Skipped packet: incoming 0, sequence = 12
8/26/15 9:10:31.800 AM Buster[366]: -[BTRLinkDriver processFrame:] [Line 464] New stream {
message = ""; myCall = DL7AC; myCall2 = DV4M; rpt1Call = "REF001 G"; rpt2Call = "REF001 C"; streamId = 41979; time = "2015-08-26 16:10:31 +0000"; urCall = CQCQCQ; } 8/26/15 9:10:34.015 AM Buster[366]: -[BTRLinkDriver terminateCurrentStream] [Line 388] Stream 41979 ends
8/26/15 9:10:34.016 AM Buster[366]: -[BTRLinkDriver processFrame:] [Line 497] Skipped packet: incoming 0, sequence = 7
8/26/15 9:10:51.592 AM Buster[366]: -[BTRDPlusLink processLinkPacket:] [Line 186] DPlus reports unlinked
8/26/15 9:10:51.610 AM Buster[366]: -[BTRLinkDriver unlink] [Line 414] Unlinked from REF001 C
8/26/15 9:10:51.611 AM Buster[366]: -[BTRLinkDriver dealloc] [Line 255] Calling dealloc
8/26/15 9:10:51.611 AM Buster[366]: -[BTRLinkDriver connect] [Line 229] Linking to REF029 C at 129.123.7.23
8/26/15 9:10:51.611 AM Buster[366]: -[BTRLinkDriver connect] [Line 232] Couldn't connect socket: Address already in use
8/26/15 9:11:00.855 AM Buster[366]: -[BTRLinkDriver connect] [Line 171] Couldn't bind gateway socket: Address already in use
8/26/15 9:11:09.320 AM Buster[366]: -[BTRLinkDriver dealloc] [Line 255] Calling dealloc

Comments and changes to this ticket

  • Kenny Richards

    Kenny Richards August 26th, 2015 @ 09:18 AM

    forgot to add, this was on my MBP (10.10.5) and Version 1.0.1d109 (76.34)

  • mcdermj (at xenotropic)

    mcdermj (at xenotropic) August 27th, 2015 @ 12:20 AM

    • State changed from “new” to “open”

    There are some timing issues in here somewhere. I think I'm going to rework how the link driver code works a bit. Currently it throws away the link driver object when the link is done. This means it rebinds the socket and such when it does so. It really should only have to redo the connect(2) call and do that setup. We can keep an array of instantiated link drivers ready to handle the outbound links. This will take me a bit to rework, so be patient on this one.

  • Kenny Richards

    Kenny Richards August 27th, 2015 @ 12:00 PM

    Do you need me to collect any additional info when it happens again?

  • mcdermj (at xenotropic)

    mcdermj (at xenotropic) August 27th, 2015 @ 02:36 PM

    No, I think I need to solve the obvious problems I'm seeing, which is that the state machine is getting in an inconsistent state. This will be easier to manage when I get the link driver code redone. I'm planning on a code drop either this evening or tomorrow evening that should have this fix.

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

A D-STAR reflector client.

Shared Ticket Bins

Pages