Skip to content
This repository was archived by the owner on Oct 18, 2021. It is now read-only.
This repository was archived by the owner on Oct 18, 2021. It is now read-only.

Returning from background crashes/deadlocks iOS device (iOS 6) #6

@ghmrs356

Description

@ghmrs356

When I start a MYNetwork and subsequently stop the network service (code below) and put the iOS app into background, when I reactivate the app, MYNetwork logs a ton of warnings:

WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!

It doesn't seem to matter how long the app was suspended (I tried 1 second, 10 seconds, 20 seconds), when I return I get precisely 1002 such messages logged. After that, I get one new warning logged every second and the application remains unresponsive/deadlocked.

It actually doesn't matter if I shut down the network before the application is suspended, when it returns it bombs/deadlocks. Unfortunately I can't get Xcode to show a call stack with more than 2 lines when debugging on the device, so I can't provide meaningful call stacks.

On the simulator returning from the background works fine.

- (void)startup
{
    if (browser != nil)
        return;

    browser = [[MYBonjourBrowser alloc] initWithServiceType:RUBITRACK_SYNCSERVICE__BONJOUR_SERVICE_TYPE];

    registration = [[browser myRegistration] retain];

    listener = [[BLIPListener alloc] initWithPort:12345];
    [listener setPickAvailablePort:YES];

    [browser addObserver:self forKeyPath:@"services" options:NSKeyValueObservingOptionNew context:kRubiNetworkBrowserServicesChangeContext];

    [browser start];
    [listener setDelegate:self];
    [listener open];

    [registration setPort:[listener port]];
    [registration start];
}

- (void)shutdown
{
    [browser removeObserver:self forKeyPath:@"services"];

    [self setAvailablePeers:nil];

    [connection close];
    [connection release], connection = nil;

    [listener close];
    [listener setDelegate:nil];
    [listener release], listener = nil;

    [registration stop];
    [registration release], registration = nil;

    [browser stop];
    [browser release], browser = nil;

    [exchangableEquipment release], exchangableEquipment = nil;
    [exchangableActivities release], exchangableActivities = nil;
    [peerObjectStatusInformation release], peerObjectStatusInformation = nil;
    [peerExchangableObjects release], peerExchangableObjects = nil;
}

Here's on example log

2013-07-03 19:51:50.316 rubiTrack to Go[25281:907] RubiNetwork: Listening for connection requests: BLIPListener[port 12345]
2013-07-03 19:51:59.515 rubiTrack to Go[25281:907] RubiNetwork: Listener closed BLIPListener[port 12345]
19:52:11.478|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65563 !!!
19:52:11.482|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.483|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.485|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.487|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.489|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.490|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.491|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.493|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.494|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.495|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.495|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.496|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.496|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.497|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.497|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.498|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.499|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
...
[1002 in total]
...
19:52:11.968|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.968|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.969|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.969|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.970|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.970|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.971|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.971|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.972|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.972|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.973|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.973|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:11.974|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:12.975|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
2013-07-03 19:52:12.977 rubiTrack to Go[25281:907] RubiNetwork: Listening for connection requests: BLIPListener[port 12345]
19:52:13.982|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:14.984|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:15.986|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:16.988|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:17.990|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:18.992|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:19.994|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:20.996|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:21.998|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:23.004|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!
19:52:24.017|  WARNING*** : MYDNSConnection[conn=0x1ec89e80]: DNSServiceProcessResult failed, err=-65541 !!!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions