Exception when webservice is called after device got locked
I'm requesting stuff from the web using web services that return XML. This works fine as long as the device is not locked. If the user turns the device off or if it gets locked after the configured timeout, the webservice fails. I appended the stacktrace here. What I'm wondering: I'm not doing anything in my test application with the result of the webservice (called via SOAP). Still it crashes, trying to call "mprotect" or something. What is the issue and how can I keep my app running if the device gets locked? I always thought locking is different from pushing to background - the app should remain active.
I found out that "errno 12" means "out of memory" but that is not true. If the device does not lock, the test app goes on for hours. As soon as it locks, it does one more request and crashes. Also Instruments shows a constant memory usage of 40MB (Like in Luke's q开发者_StackOverflow中文版uestion: Explanation of MProtect Errno 12 (ENOMEM) )
Mprotect failed at 0x5f55000 (length 1396736) with errno 12
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: Stacktrace:
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at (wrapper managed-to-native) string.InternalAllocateStr (int) <0xffffffff>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at System.Text.StringBuilder.InternalEnsureCapacity (int) <0x000bc>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at System.Text.StringBuilder.Append (char) <0x00047>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at Mono.Xml2.XmlTextReader.ReadText (bool) <0x00117>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at Mono.Xml2.XmlTextReader.ReadContent () <0x001fb>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at Mono.Xml2.XmlTextReader.Read () <0x001a3>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at System.Xml.XmlTextReader.Read () <0x000d7>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at System.Xml.XmlReader.ReadElementString () <0x00067>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadPrimitiveValue (System.Xml.Serialization.XmlTypeMapElementInfo) <0x000b3>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadObjectElement (System.Xml.Serialization.XmlTypeMapElementInfo) <0x00083>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadMembers (System.Xml.Serialization.ClassMap,object,bool,bool) <0x0140f>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadMessage (System.Xml.Serialization.XmlMembersMapping) <0x0037b>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at System.Xml.Serialization.XmlSerializationReaderInterpreter.ReadRoot () <0x00153>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at System.Xml.Serialization.XmlSerializer.Deserialize (System.Xml.Serialization.XmlSerializationReader) <0x000cb>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at System.Xml.Serialization.XmlSerializer.Deserialize (System.Xml.XmlReader) <0x00073>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at System.Web.Services.Protocols.WebServiceHelper.ReadSoapMessage (System.Xml.XmlTextReader,System.Xml.Serialization.XmlSerializer,System.Xml.Serialization.XmlSerializer,bool,object&,System.Web.Services.Protocols.SoapHeaderCollection&) <0x00277>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at System.Web.Services.Protocols.WebServiceHelper.ReadSoapMessage (System.Xml.XmlTextReader,System.Web.Services.Protocols.SoapMethodStubInfo,System.Web.Services.Protocols.SoapHeaderDirection,bool,object&,System.Web.Services.Protocols.SoapHeaderCollection&) <0x0007b>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at System.Web.Services.Protocols.SoapHttpClientProtocol.ReceiveResponse (System.Net.WebResponse,System.Web.Services.Protocols.SoapClientMessage,System.Web.Services.Protocols.SoapExtension[]) <0x003fb>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke (string,object[]) <0x00353>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at iBrainloop.API210.API210.DMOGetChunked (string,int,int,bool,int) <0x00157>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at iOSTest.AppDelegate/<FinishedLaunching>c__AnonStorey1.<>m__0 () <0x00217>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: at (wrapper runtime-invoke) object.runtime_invoke_dynamic (intptr,intptr,intptr,intptr) <0x000c3>
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: Native stacktrace:
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: 0 iOSTest 0x006ada34 iOSTest + 6998580
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: 1 iOSTest 0x006cc370 iOSTest + 7123824
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: 2 libsystem_c.dylib 0x336b472f _sigtramp + 42
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: 3 libsystem_c.dylib 0x336a93bb pthread_kill + 58
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: 4 libsystem_c.dylib 0x336a1bff abort + 78
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: 5 iOSTest 0x007ef40c iOSTest + 8315916
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: 6 iOSTest 0x007e2b34 iOSTest + 8264500
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: 7 iOSTest 0x007e281c iOSTest + 8263708
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: 8 iOSTest 0x007e9150 iOSTest + 8290640
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: 9 iOSTest 0x007e97f4 iOSTest + 8292340
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: 10 iOSTest 0x007e9ad4 iOSTest + 8293076
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: 11 iOSTest 0x00778324 iOSTest + 7828260
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: 12 iOSTest 0x00778794 iOSTest + 7829396
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: 13 iOSTest 0x00794d04 iOSTest + 7945476
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: 14 iOSTest 0x0037d39c iOSTest + 3654556
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: =================================================================
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: Got a SIGABRT while executing native code. This usually indicates
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: a fatal error in the mono runtime or one of the native libraries
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: used by your application.
Apr 27 20:25:54 unknown UIKitApplication:iostest[0x9bc1][649] <Notice>: =================================================================
Apr 27 20:25:54 unknown ReportCrash[651] <Notice>: Formulating crash report for process iOSTest[649]
Apr 27 20:25:54 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:iostest[0x9bc1]) Job appears to have crashed: Abort trap: 6
Apr 27 20:25:54 unknown SpringBoard[479] <Warning>: Application 'iOSTest' exited abnormally with signal 6: Abort trap: 6
Apr 27 20:25:54 unknown ReportCrash[651] <Error>: libMobileGestalt loadBasebandMobileEquipmentInfo: CommCenter error: 1:45
Apr 27 20:25:54 unknown ReportCrash[651] <Error>: libMobileGestalt copyInternationalMobileEquipmentIdentity: Could not get mobile equipment info dictionary
Apr 27 20:25:54 unknown ReportCrash[651] <Error>: libMobileGestalt copyInternationalMobileEquipmentIdentity: Could not get mobile equipment info dictionary
Apr 27 20:25:54 unknown ReportCrash[651] <Error>: Saved crashreport to /var/mobile/Library/Logs/CrashReporter/iOSTest_2011-04-27-202554_iPad-Fuji-ID-0240.plist using uid: 0 gid: 0, synthetic_euid: 501 egid: 0
This is supposingly fixed in MonoTouch 4.0.2
精彩评论