NSURLSession crash - crash

Just on one client device iPhone4s with iOS7.1 we have crash with stack:
Thread : Crashed: com.apple.NSURLSession-work
0 CoreFoundation 0x2d6419be CFURLCopyScheme + 49
1 CFNetwork 0x2d30b67d _urlIsHTTPish + 8
2 CFNetwork 0x2d30b67d _urlIsHTTPish + 8
3 CFNetwork 0x2d31f725 URLRequest::addOverridingSessionAttributes(_CFURLSessionConfiguration*) + 216
4 CFNetwork 0x2d374eb9 ClassicConnectionSession::createConnectionWithProperties(_CFURLRequest const*, __CFDictionary const*) const + 552
5 CFNetwork 0x2d35697d __73-[__NSCFLocalSessionBridge downloadTaskForRequest:resumeData:completion:]_block_invoke + 196
6 libdispatch.dylib 0x3844081f _dispatch_client_callout + 22
7 libdispatch.dylib 0x384467cb _dispatch_barrier_sync_f_invoke + 26
8 CFNetwork 0x2d2fbd89 -[__NSCFLocalSessionTask resume] + 100
Does anybody else had this?
EDIT:
Duplication of question: Asynchronous downloading in UICollectionView error with AFNetworking
CFURLCopyScheme crashed as CFURL passed to this method is nil, iOS7 does not check if url passed to NSURLSessionDownloadTask is valid.
Check that:
1) NSURL passed to request downloadTaskWithRequest was not nil
2) NSURL does not contain invalid characters e.g:
% |{}><"\`

This happened to me when I had a http proxy active (Charles with ssl) after trying to follow a redirect. The reason was an invalid redirect url in the 302 response.

Related

Asp.net core 3.1 iis worker crashes on startup

an asp.net core 3.1 web api crashes on startup with the following error in the event log:
Faulting application name: w3wp.exe, version: 10.0.14393.0, time stamp: 0x57899135
Faulting module name: ucrtbase.dll, version: 10.0.14393.3659, time stamp: 0x5e914092
The worker won't even start. This app is published through an installer, so everything is set up automatically. It is tested and works on more than 20 server environments of Windows Server 2012, 2016, and 2019. The faulty environment runs on Windows Server 2016 with all the latest updates installed and the latest release of .net core runtime libraries.
My question is how to trace this error on is.
Update
After using the Debug Diagnostic Tool to collect a dump file from the application pool I followed the stack trace and it seems that asp core is trying to start a redirection that fails. Here is the full stack trace:
[0x0] ucrtbase!_invoke_watson + 0x12
[0x1] ucrtbase!_invalid_parameter + 0x75
[0x2] ucrtbase!_invalid_parameter_noinfo + 0xb
[0x3] ucrtbase!_fileno + 0x308a1
[0x4] aspnetcorev2!StdWrapper::StartRedirection + 0x39
[0x5] aspnetcorev2!StandardStreamRedirection::Start + 0x13e
[0x6] aspnetcorev2!StandardStreamRedirection::TryStartRedirection + 0x35
[0x7] aspnetcorev2!StandardStreamRedirection::{ctor} + 0x46
[0x8] aspnetcorev2!HandlerResolver::FindNativeAssemblyFromHostfxr + 0x233
[0x9] aspnetcorev2!HandlerResolver::LoadRequestHandlerAssembly + 0x369
[0xa] aspnetcorev2!HandlerResolver::GetApplicationFactory + 0x3d6
[0xb] aspnetcorev2!APPLICATION_INFO::TryCreateApplication + 0x2e8
[0xc] aspnetcorev2!APPLICATION_INFO::CreateApplication + 0x25a
[0xd] aspnetcorev2!APPLICATION_INFO::CreateHandler + 0x1b3
[0xe] aspnetcorev2!ASPNET_CORE_PROXY_MODULE::OnExecuteRequestHandler + 0x108
[0xf] iiscore!NOTIFICATION_CONTEXT::RequestDoWork + 0x2e3
[0x10] iiscore!NOTIFICATION_CONTEXT::CallModulesInternal + 0x4af
[0x11] iiscore!NOTIFICATION_CONTEXT::CallModules + 0x2b
[0x12] iiscore!NOTIFICATION_MAIN::DoStateRequestExecuteHandler + 0x40
[0x13] iiscore!NOTIFICATION_MAIN::DoWork + 0x116
[0x14] iiscore!W3_CONTEXT_BASE::StartNotificationLoop + 0x93
[0x15] iiscore!W3_MAIN_CONTEXT::OnNewRequest + 0xbf
[0x16] w3dt!UL_NATIVE_REQUEST::DoWork + 0xb0
[0x17] w3dt!UL_RECEIVE_CONTEXT::DoWork + 0x1b
[0x18] w3dt!WP_CONTEXT::OnCompletion + 0x3a
[0x19] w3tp!THREAD_POOL_DATA::ThreadPoolThread + 0xb0
[0x1a] w3tp!THREAD_POOL_DATA::ThreadPoolThread + 0x2b
[0x1b] w3tp!THREAD_MANAGER::ThreadManagerThread + 0x67
[0x1c] kernel32!BaseThreadInitThunk + 0x24
[0x1d] ntdll!__RtlUserThreadStart + 0x2f
[0x1e] ntdll!_RtlUserThreadStart + 0x1b
Is there any other information in the dump file to look for?
Still stuck with this one.

Client cannot receive image data from gcdwebserver

I try to create a web server on iPhone to provide urls of images in ablum.
Before sending response to client, I need to do some adjustment on images (something like re-size).
These actions take up to 1 or 1.5 sec per image before response to client. (especially on iPhone 4)
The client side cannot receive data even though messages on xcode console already showed how many bytes has been GET on some sockets.
What options can I use to solve this problem?
Another question is what happens if I increase ConnectedStateCoalescingInterval value up to 2.0 or 3.0 seconds?
Thanks.
========= 2015/08/24 13:05 Updated
Here is my addHandlerForMethod:path:requestClass:asyncProcessBlock:
[_webServer addHandlerForMethod:#"GET" path:[NSString stringWithFormat:#"/image/%#",assetId] requestClass:[GCDWebServerRequest class] asyncProcessBlock:^(GCDWebServerRequest *request, GCDWebServerCompletionBlock completionBlock)
{
__strong typeof(weakself) strongself = weakself;
[strongself requestImageDataByAssetURL:assetURL completionCb:^(NSData *photoData) {
GCDWebServerDataResponse* response = [GCDWebServerDataResponse responseWithData:photoData contentType:#"image/png"];
completionBlock(response);
}];
}];
Here is requestImageDataByAssetURL:completionCb:
- (void)requestImageDataByAssetURL:(NSURL *)assetURL completionCb:(void(^)(NSData *photoData))cbfunc {
__block NSData *photoData;
ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init];
[library assetForURL:assetURL resultBlock:^(ALAsset *asset) {
#autoreleasepool {
uint64_t begin = mach_absolute_time();
// <do some image processing here>
uint64_t end = mach_absolute_time();
NSLog(#"Time taken to imageResize %g s", MachTimeToSecs(end - begin));
cbfunc(photoData);
}
} failureBlock:^(NSError *error) {
NSLog(#"[%#] fail. Error=%#", NSStringFromSelector(_cmd), error.localizedDescription);
cbfunc(nil);
}];
}
Here is the log:
[DEBUG] [2015-08-24 04:48:09 +0000] Did open connection on socket 32
[DEBUG] Connection received 221 bytes on socket 32
[DEBUG] Connection on socket 32 preflighting request "GET /image/9D959040-9FA8-4197-8150-8DC72339955D" with 221 bytes body
[DEBUG] Connection on socket 32 processing request "GET /image/9D959040-9FA8-4197-8150-8DC72339955D" with 221 bytes body
[DEBUG] [2015-08-24 04:48:10 +0000] Did open connection on socket 34
2015-08-24 12:48:10.799 xBoard[2981:3707] Time taken to imageResize 1.52039 s
[DEBUG] Connection received 221 bytes on socket 34
[DEBUG] Connection on socket 34 preflighting request "GET /image/9D959040-9FA8-4197-8150-8DC72339955D" with 221 bytes body
[DEBUG] Connection on socket 34 processing request "GET /image/9D959040-9FA8-4197-8150-8DC72339955D" with 221 bytes body
[DEBUG] Connection sent 171 bytes on socket 32
[DEBUG] Connection sent 123575 bytes on socket 32
[DEBUG] Did close connection on socket 32
[VERBOSE] [172.16.20.174:8080] 172.16.21.97:34450 200 "GET /image/9D959040-9FA8-4197-8150-8DC72339955D" (221 | 123746)
2015-08-24 12:48:12.028 xBoard[2981:4f0b] Time taken to imageResize 1.06382 s
[DEBUG] Connection sent 171 bytes on socket 34
[DEBUG] Connection sent 123575 bytes on socket 34
[DEBUG] Did close connection on socket 34
[VERBOSE] [172.16.20.174:8080] 172.16.21.97:50852 200 "GET /image/9D959040-9FA8-4197-8150-8DC72339955D" (221 | 123746)
We can see it creates the first socket(32).
Then creates the second socket(34) for the same image request immediately.
It seems that GCDWebServer close the first socket immediately. But why?
P.S. By the way, the client side use Android Volley library to download image instead of using web browsers.
There doesn't seem to be anything wrong according to the log: 2 GET requests for the path /image/9D959040-9FA8-4197-8150-8DC72339955D are processed on sockets 32 and 34, and each return 123,575 bytes.
Try using a desktop web browser like Chrome and its web inspector. If everything works correctly, then the problem is with your Android app.

CorePlot throws exceptions in iOS7 app / Xcode5

I have an iOS7 application that I am trying to integrate CorePlot 1.4 into (Dependent Project Install).
#property (nonatomic) CPTGraphHostingView *hostingView;
and
_hostingView = [[CPTGraphHostingView alloc] initWithFrame:CGRectNull];
(_hostingView is subject to auto-layout.) If I then add a graph:
CPTXYGraph *graph = [[CPTXYGraph alloc] initWithFrame:CGRectZero];
_hostingView.hostedGraph = graph;
I first get this exception:
-[CPTTextStyle attributes]: unrecognized selector sent to instance 0xa392900
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CPTTextStyle attributes]: unrecognized selector sent to instance 0xa392900'
5 myapp 0x00074325 -[CPTAxis updateAxisLabelsAtLocations:inRange:useMajorAxisLabels:] + 1141
6 myapp 0x00075662 -[CPTAxis relabel] + 1202
In desperation I have then fixed this in updateAxisLabelsAtLocations:inRange:useMajorAxisLabels by:
NSDictionary *textAttributes = nil;
BOOL hasAttributedFormatter = FALSE;
and then get the next exception:
-[__NSCFString sizeWithTextStyle:]: unrecognized selector sent to instance 0x9591e90
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString sizeWithTextStyle:]: unrecognized selector sent to instance 0x9591e90'
5 myapp 0x00081520 -[CPTTextLayer sizeThatFits] + 320
6 myapp 0x0008163c -[CPTTextLayer sizeToFit] + 108
7 myapp 0x00080559 -[CPTTextLayer initWithText:style:] + 313
8 myapp 0x00074b87 -[CPTAxis updateAxisLabelsAtLocations:inRange:useMajorAxisLabels:] + 3159
9 myapp 0x00075672 -[CPTAxis relabel] + 1202
I have then 'fixed' this by commenting out this line in sizeThatFits:
else {
// textSize = [myText sizeWithTextStyle:self.textStyle];
}
Next exception is then:
-[__NSCFString drawInRect:withTextStyle:inContext:]: unrecognized selector sent to instance 0xa162bd0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString drawInRect:withTextStyle:inContext:]: unrecognized selector sent to instance 0xa162bd0'
5 myapp 0x00081dc8 -[CPTTextLayer renderAsVectorInContext:] + 1144
6 myapp 0x00063f60 -[CPTLayer drawInContext:] + 112
which is fixed by commenting out below code in renderAsVectorInContext:
else {
// [myText drawInRect:newBounds
// withTextStyle:self.textStyle
// inContext:context];
}
Now finally no exceptions are thrown and the graph borders are shown. But if I then begin to add data/legend, etc. new exceptions are thrown :(
No text is shown on the axis etc. Of course this is because I have commented out the code. But any clue why these exceptions are thrown? I am desperate ;S
It seems like I have missed something fundamental in the integration. But my integration (CorePlot 1.3 though) worked fine in an iOS6 app on Xcode4 some time ago.
Check the linker flags in your app project. Core Plot requires -ObjC and -all_load. See the Core Plot wiki for more information.

iOS Titanium app crashes when scrolling TableView

I am creating a simple chat app with Appcelerator Titanium to test the framework, and I use a simple TableView to show a list of messages. When I scroll the table so that a row that wasn't visible before is loaded, the app crashes instantly with a Objective-C trace (see below). I have absolutely no idea how to understand this, but most of the stack is obviously library code.
[ERROR] : The application has crashed with an uncaught exception 'NSInvalidArgumentException'.
[ERROR] : Reason:
[ERROR] : -[__NSCFString absoluteString]: unrecognized selector sent to instance 0xae71df0
[ERROR] : Stack trace:
[ERROR] : 0 CoreFoundation 0x038fc012 __exceptionPreprocess + 178
[ERROR] : 1 libobjc.A.dylib 0x033bde7e objc_exception_throw + 44
[ERROR] : 2 CoreFoundation 0x039874bd -[NSObject(NSObject) doesNotRecognizeSelector:] + 253
[ERROR] : 3 CoreFoundation 0x038ebbbc ___forwarding___ + 588
[ERROR] : 4 CoreFoundation 0x038eb94e _CF_forwarding_prep_0 + 14
[ERROR] : 5 Mobile Chat 0x000e928b -[TiUIImageView loadUrl:] + 139
[ERROR] : 6 Mobile Chat 0x000eafe6 -[TiUIImageView setImage_:] + 902
[ERROR] : 7 libobjc.A.dylib 0x033d16b0 -[NSObject performSelector:withObject:] + 70
[ERROR] : 8 Mobile Chat 0x000f75f1 DoProxyDelegateReadKeyFromProxy + 321
[ERROR] : 9 Mobile Chat 0x000f7bf1 DoProxyDelegateReadValuesWithKeysFromProxy + 1137
[ERROR] : 10 Mobile Chat 0x00099f41 -[TiUIView readProxyValuesWithKeys:] + 65
[ERROR] : 11 Mobile Chat 0x00075427 -[TiViewProxy firePropertyChanges] + 167
[ERROR] : 12 Mobile Chat 0x00072c6e -[TiViewProxy view] + 1102
[ERROR] : 13 Mobile Chat 0x0017e8e5 -[TiUITableViewRowProxy redelegateViews:toView:] + 117
[ERROR] : 14 Mobile Chat 0x0018031f __43-[TiUITableViewRowProxy configureChildren:]_block_invoke_2 + 543
[ERROR] : 15 CoreFoundation 0x038f5e7c __NSArrayEnumerate + 572
[ERROR] : 16 CoreFoundation 0x038f5a16 -[NSArray enumerateObjectsWithOptions:usingBlock:] + 102
[ERROR] : 17 CoreFoundation 0x038f5925 -[NSArray enumerateObjectsUsingBlock:] + 53
[ERROR] : 18 Mobile Chat 0x0017fd34 -[TiUITableViewRowProxy configureChildren:] + 2900
[ERROR] : 19 Mobile Chat 0x00180725 -[TiUITableViewRowProxy initializeTableViewCell:] + 293
[ERROR] : 20 Mobile Chat 0x000c7660 -[TiUITableView tableView:cellForRowAtIndexPath:] + 944
[ERROR] : 21 UIKit 0x012748fb -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 412
[ERROR] : 22 UIKit 0x012749cf -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:] + 69
[ERROR] : 23 UIKit 0x0125d1bb -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:] + 1863
[ERROR] : 24 UIKit 0x0126db4b -[UITableView layoutSubviews] + 241
[ERROR] : 25 UIKit 0x0120a2dd -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 279
[ERROR] : 26 libobjc.A.dylib 0x033d16b0 -[NSObject performSelector:withObject:] + 70
[ERROR] : 27 QuartzCore 0x02779fc0 -[CALayer layoutSublayers] + 240
[ERROR] : 28 QuartzCore 0x0276e33c _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 468
[ERROR] : 29 QuartzCore 0x0276e150 _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 26
[ERROR] : 30 QuartzCore 0x026ec0bc _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 324
[ERROR] : 31 QuartzCore 0x026ed227 _ZN2CA11Transaction6commitEv + 395
[ERROR] : 32 QuartzCore 0x026ed8e2 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 96
[ERROR] : 33 CoreFoundation 0x038c4afe __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 30
[ERROR] : 34 CoreFoundation 0x038c4a3d __CFRunLoopDoObservers + 381
[ERROR] : 35 CoreFoundation 0x038a27c2 __CFRunLoopRun + 1106
[ERROR] : 36 CoreFoundation 0x038a1f44 CFRunLoopRunSpecific + 276
[ERROR] : 37 CoreFoundation 0x038a1e1b CFRunLoopRunInMode + 123
[ERROR] : 38 GraphicsServices 0x036837e3 GSEventRunModal + 88
[ERROR] : 39 GraphicsServices 0x03683668 GSEventRun + 104
[ERROR] : 40 UIKit 0x011b9ffc UIApplicationMain + 1211
[ERROR] : 41 Mobile Chat 0x000048f8 main + 456
[ERROR] : 42 Mobile Chat 0x00003205 start + 53
[ERROR] : 2013-09-24 10:49:02.969 Mobile Chat[35979:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString absoluteString]: unrecognized selector sent to instance 0xae71df0'
[ERROR] : *** First throw call stack:
[ERROR] : (0x38fc012 0x33bde7e 0x39874bd 0x38ebbbc 0x38eb94e 0xe928b 0xeafe6 0x33d16b0 0xf75f1 0xf7bf1 0x99f41 0x75427 0x72c6e 0x17e8e5 0x18031f 0x38f5e7c 0x38f5a16 0x38f5925 0x17fd34 0x180725 0xc7660 0x12748fb 0x12749cf 0x125d1bb 0x126db4b 0x120a2dd 0x33d16b0 0x2779fc0 0x276e33c 0x276e150 0x26ec0bc 0x26ed227 0x26ed8e2 0x38c4afe 0x38c4a3d 0x38a27c2 0x38a1f44 0x38a1e1b 0x36837e3 0x3683668 0x11b9ffc 0x48f8 0x3205)
-- End simulator log ---------------------------------------------------------
[ERROR] : An error occurred running the iOS Simulator
[ERROR] :
[ERROR] : Project failed to build after 12s 961ms
And here is the relevant code. It is a file whose function is called from app.js trough an navigation controller
var chatWindow = function(channelName) {
var chatRow = function(username, picture, message) {
var row = Titanium.UI.createTableViewRow();
var image = Titanium.UI.createImageView({
left: 5,
top: 5,
bottom: 5,
height: 50,
width: 50,
image: picture
});
var user = Titanium.UI.createLabel({
top: 5,
left: 60,
right: 5,
text: username,
font: {
fontWeight: "bold",
}
});
var msg = Titanium.UI.createLabel({
top: 30,
left: 60,
right: 5,
text: message
});
row.add(image);
row.add(user);
row.add(msg);
return row;
};
var window = Titanium.UI.createWindow({
width: Titanium.UI.FILL,
title: channelName,
backgroundColor: "#fff",
});
var container = Titanium.UI.createScrollView({
contentHeight: Titanium.UI.FILL,
contentWidth: Titanium.UI.FILL,
height: Titanium.UI.FILL,
width: Titanium.UI.FILL,
});
var textfield = Titanium.UI.createTextField({
borderStyle: Titanium.UI.INPUT_BORDERSTYLE_ROUNDED,
width: Titanium.UI.FILL,
height: Titanium.UI.FILL,
bottom: 10,
left: 10,
right: 10,
height: 30,
returnKeyType: Titanium.UI.RETURNKEY_SEND
});
var messages = Titanium.UI.createTableView({
width: Titanium.UI.FILL,
bottom: 50,
top: 0
});
textfield.addEventListener("return", function() {
if (textfield.getValue() != "") {
messages.appendRow({title:textfield.getValue()});
textfield.setValue("");
}
});
textfield.addEventListener("focus", function() {
setTimeout(function() {container.setScrollingEnabled(false);}, 100);
});
textfield.addEventListener("blur", function() {
setTimeout(function() {container.setScrollingEnabled(true);}, 100);
});
container.add(messages);
container.add(textfield);
window.add(container);
var loop = function(dateNow) {
var d = new Date();
connect.ServerLink("getMessages",
{
channel: channelName,
startTime: d.getYear().toString().concat("-")
.concat(d.getMonth()).concat("-")
.concat(d.getDay()).concat("T")
.concat(d.getHours()).concat(":")
.concat(d.getMinutes()).concat(":")
.concat(d.getSeconds()).concat(".")
.concat(d.getMilliseconds()).concat("Z")
},
function(content) {
var json = JSON.parse(content);
var rows = [];
for (var i = json.length-1; i >= 0; i--) {
rows.push(chatRow(json[i].author, json[i].content));
Titanium.API.debug(json[i]);
}
rows.sort(function(a, b){
return (Date.parse(a.time)-Date.parse(b.time));
});
messages.setData(rows);
},
null);
setTimeout(loop, 2000);
};
loop();
return window;
};
Does anyone have a idea of what is causing this error?
From what I can see from a first quick look your function
var chatRow = function(username, picture, message) {...};
does not match the arguments you are passing to it
rows.push(chatRow(json[i].author, json[i].content));

Releasing allocations in response to low memory warning, but app still crashes

I'm building an app for viewing photos I pull down from an API. Each photo is ~1MB in size. I've set up a "slideshow" to show a photo, then move onto the next one, like a user would actually use the app. I'm testing on an iPad 1 in Instruments.
When my app receives a low memory warning, I'm dumping all photos that are currently not being displayed to the user, as well as all cached model data returned from the API. I'm seeing a significant drop in my allocations in Instruments, and a similar drop in the virtual memory use. Even with this drop in consumed memory, my app is still being killed by the OS.
The application responds to 2-3 memory warnings without crashing before being terminated.
I've recently switched to ARC, so maybe there's something I'm not understanding? I assume setting my references to nil is sufficient. Here's my code for the in-memory models dumping their image data:
[[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidReceiveMemoryWarningNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
NSLog(#"Received memory warning; clear image for photo named \"%#\"", _name);
_image = nil;
_imageThumbnail = nil;
}];
Which is getting called. I also have an NSMutableDictionary which I'm calling removeAllObjects on when I received the low memory warning. I'm getting the following in the device console:
Oct 5 19:43:46 unknown configd[25] <Notice>: jetsam: kernel termination snapshot being created
Oct 5 19:43:46 unknown com.apple.launchd[1] <Notice>: (com.apple.accessoryd) Exited: Killed: 9
Oct 5 19:43:46 unknown com.apple.launchd[1] <Notice>: (com.apple.locationd) Exited: Killed: 9
Oct 5 19:43:46 unknown com.apple.launchd[1] <Notice>: (com.apple.mediaserverd) Exited: Killed: 9
Oct 5 19:43:46 unknown com.apple.launchd[1] <Notice>: (UIKitApplication:com.500px[0xd492]) Exited: Killed: 9
Oct 5 19:43:47 unknown kernel[0] <Debug>: launchd[1996] Builtin profile: accessoryd (sandbox)
Oct 5 19:43:47 unknown ReportCrash[1999] <Error>: libMobileGestalt loadBasebandMobileEquipmentInfo: CommCenter error: 1:45
Oct 5 19:43:47 unknown ReportCrash[1999] <Error>: libMobileGestalt copyInternationalMobileEquipmentIdentity: Could not get mobile equipment info dictionary
Oct 5 19:43:47 unknown ReportCrash[1999] <Error>: Saved crashreport to /Library/Logs/CrashReporter/LowMemory-2011-10-05-194347.plist using uid: 0 gid: 0, synthetic_euid: 0 egid: 0
Oct 5 19:43:47 unknown DTMobileIS[1655] <Warning>: _memoryNotification : <NSThread: 0x1cd31410>{name = (null), num = 1}
Oct 5 19:43:47 unknown DTMobileIS[1655] <Warning>: _memoryNotification : {
OSMemoryNotificationLevel = 0;
timestamp = "2011-10-05 23:43:47 +0000";
}
Oct 5 19:43:47 unknown DTMobileIS[1655] <Warning>: _memoryNotification : <NSThread: 0x1cd31410>{name = (null), num = 1}
Oct 5 19:43:47 unknown DTMobileIS[1655] <Warning>: _memoryNotification : {
OSMemoryNotificationLevel = 0;
timestamp = "2011-10-05 23:43:47 +0000";
}
Oct 5 19:43:48 unknown com.apple.locationd[1997] <Notice>: locationd was started after an unclean shutdown
Oct 5 19:43:49 unknown SpringBoard[29] <Warning>: Application '500px' exited abnormally with signal 9: Killed: 9
Does anyone have any idea why my app is being killed even though it's freeing memory?
_image = nil;
_imageThumbnail = nil;
This is just setting the pointers to nil, not releasing the actual objects. Release the objects, then they'll get deallocated (if their retain count hits 0).
Since you're using ARC, just set the properties to nil.
Turns out I was hanging onto references to the model classes somewhere else - they weren't getting dealloc'd, even if they released their image data during memory warnings. Eventually there were too many of them and the app crashed.