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 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) 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 August 27th, 2015 @ 12:00 PM
Do you need me to collect any additional info when it happens again?
-
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.
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.