Git Product home page Git Product logo

Comments (4)

thyeggman avatar thyeggman commented on August 15, 2024

Hi @damirdavletov!

I can't try to reproduce this without knowing some more information first.

  1. What version of the SDK are you using?
  2. Is the crash being triggered from a foreground thread or a background thread?
  3. How are you using AppNotTerminatingCleanly? I’m assuming you have enabled it by calling enableAppNotTerminatingCleanlyDetection. It's a heuristic that doesn't indicate when an app has crashed, only when the app is killed by the user on a foreground thread or by the iOS watchdog.

If you are willing to provide the offending code snippet, it would help diagnose the issue as well. Once we have identified a problem we can consider merging your PR.

from hockeysdk-ios.

damirdavletov avatar damirdavletov commented on August 15, 2024

Hi @jwallra!

  1. What version of the SDK are you using?

We were using 4.1.6 the issue was initially found there, then we upgraded to 5.1.4 and the problem is there as well.

  1. Is the crash being triggered from a foreground thread or a background thread?

The SIGKILL is being triggered from main thread when that app is running in foreground with the following code:

- (void)triggerOOMCrash {
    UILabel *label = [[UILabel alloc] initWithFrame:[[[UIApplication sharedApplication] keyWindow] bounds]];
    label.text = @"Crashing With OOM";
    [[[UIApplication sharedApplication] keyWindow] addSubview:label];
    dispatch_async(dispatch_get_main_queue(), ^{
        [self triggerOOMCrash];
    });
}
  1. How are you using AppNotTerminatingCleanly? I’m assuming you have enabled it by calling enableAppNotTerminatingCleanlyDetection. It's a heuristic that doesn't indicate when an app has crashed, only when the app is killed by the user on a foreground thread or by the iOS watchdog.

If you are willing to provide the offending code snippet, it would help diagnose the issue as well. Once we have identified a problem we can consider merging your PR.

We have been using AppNotTerminatingCleanly feature for years it is very useful and we know how it works. Not sure what you mean by offending code snippet but here is how HockeyApp is set up:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    ...

    [[BITHockeyManager sharedHockeyManager] configureWithBetaIdentifier:hockeyAppBetaIdentifier liveIdentifier:hockeyAppIdentifier delegate:self];

    BITCrashManagerCallbacks crashCallbacks;
    crashCallbacks.context = NULL;
    crashCallbacks.handleSignal = postCrashSignalCallback;
    [[[BITHockeyManager sharedHockeyManager] crashManager] setCrashCallbacks:&crashCallbacks];
    [[BITHockeyManager sharedHockeyManager] crashManager].crashManagerStatus = BITCrashManagerStatusAutoSend;
    [[BITHockeyManager sharedHockeyManager] crashManager].enableAppNotTerminatingCleanlyDetection = YES;
    [[BITHockeyManager sharedHockeyManager] startManager];
    ..
}

from hockeysdk-ios.

thyeggman avatar thyeggman commented on August 15, 2024

@damirdavletov Thanks for the detailed information. I'll try to verify the issue and fix, and then we'll look at merging it.

from hockeysdk-ios.

thyeggman avatar thyeggman commented on August 15, 2024

@damirdavletov We've merged your PR. Thanks for the contribution!

from hockeysdk-ios.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.