Brightness Issue during stress testing

2019-04-18 07:51发布

问题:

My application has the ability to Wipe all contacts and calendar events. It has been working fine as far as we had not done stress testing.

During this, it was observer that device brightness goes down when we execute following use case

  1. Sync Facebook, Gmail etc accounts with device so that there are lot of records in contacts and calendar. In our case we had about 477 contacts and 1500+ calendar events.
  2. Give Wipe command
  3. During wipe switch off the device and switch it on again.
  4. As per application design, it queries server if there have been any pending commands and starts the wipe again
  5. Now if I switch between application tabs, device brightness suddenly goes down. If I go to settings and check the level of brightness, it is not changed. We have not done anything in application that will change brightness of device.

This is strange for us and not easily understandable. If anybody has any clue, please reply.

First I had thought iOS might be changing it because auto brightness was ON. So if application is taking more processing job, it might be doing it for power saving. But issue persists even when auto-brightness is OFF.

secondly problem is, this happens if I switch OFF n ON the device. So once switched OFF, I loose the debugging session. So difficult to find reason

Note : by switch OFF - I mean complete turn off device. Long press power button, slide to turn off the device. Also crash does not occur if we perform the steps during wiping of contacts. It only occurs when we are wiping calendar events

Adding more details. I get a crash also after which above issue occurs. Following are crash report details

`Incident Identifier: 297BD243-B9D9-414F-A9FB-3C02CAAF8A89
CrashReporter Key:   e2ff53439e90b377dadf9c750793f23cac739930
Hardware Model:      iPhone4,1
Process:         SpringBoard [293]
Path:            /System/Library/CoreServices/SpringBoard.app/SpringBoard
Identifier:      SpringBoard
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2013-03-21 16:30:25.137 +0530
OS Version:      iOS 6.1 (10B142)
Report Version:  104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread:  21

blah ... blah ... blah ... all thread info

Thread 21 name:  Dispatch queue: com.apple.eventkit.eventstore.registered
Thread 21 Crashed:
0   libsystem_kernel.dylib          0x396e8350 __pthread_kill + 8
1   libsystem_c.dylib               0x3965f11e pthread_kill + 54
2   libsystem_c.dylib               0x3969b96e abort + 90
3   libc++abi.dylib                 0x38c39d4a abort_message + 70
4   libc++abi.dylib                 0x38c36ff4 default_terminate() + 20
5   libobjc.A.dylib                 0x391eaa74 _objc_terminate() + 144
6   libc++abi.dylib                 0x38c37078 safe_handler_caller(void (*)()) + 76
7   libc++abi.dylib                 0x38c37110 std::terminate() + 16
8   libc++abi.dylib                 0x38c3850e __cxa_throw + 118
9   libobjc.A.dylib                 0x391ea9ba objc_exception_throw + 90
10  CoreFoundation                  0x314cd158 +[NSException raise:format:arguments:] + 96
11  Foundation                      0x31da2ab2 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 86
12  EventKit                        0x31bb1882 -[EKObjectID entityName] + 382
13  EventKit                        0x31bb1604 -[EKEventStore _addFetchedObjectWithID:] + 52
14  EventKit                        0x31bfb95e __68-[EKEventStore registerFetchedObjectWithID:defaultLoadedProperties:]_block_invoke_0 + 78
15  libdispatch.dylib               0x396014b4 _dispatch_client_callout + 20
16  libdispatch.dylib               0x396059f2 _dispatch_barrier_sync_f_invoke + 26
17  EventKit                        0x31bb150c -[EKEventStore registerFetchedObjectWithID:defaultLoadedProperties:] + 156
18  EventKit                        0x31c039ce __41-[EKPredicateSearch startWithCompletion:]_block_invoke_0 + 514
19  EventKit                        0x31bb8830 -[EKDaemonConnection _processReplyWithID:data:finished:] + 264
20  EventKit                        0x31bb871e CADReceiveReply + 94
21  EventKit                        0x31bb86a2 _XReply + 118
22  EventKit                        0x31bb8626 ClientCallbacks_server + 90
23  libdispatch.dylib               0x39609a02 dispatch_mig_server$VARIANT$mp + 114
24  EventKit                        0x31c00c84 __43-[EKDaemonConnection initWithOptions:path:]_block_invoke_016 + 36
25  libdispatch.dylib               0x39608134 _dispatch_source_invoke$VARIANT$mp + 248
26  libdispatch.dylib               0x3960691a _dispatch_root_queue_drain + 182
27  libdispatch.dylib               0x39606abc _dispatch_worker_thread2 + 80
28  libsystem_c.dylib               0x39636a0e _pthread_wqthread + 358
29  libsystem_c.dylib               0x396368a0 start_wqthread + 4


Thread 21 crashed with ARM Thread State (32-bit):
    r0: 0x00000000    r1: 0x00000000      r2: 0x00000000      r3: 0x3b1af534
    r4: 0x00000006    r5: 0x07494000      r6: 0x1f96a044      r7: 0x074932b4
    r8: 0x1f96a020    r9: 0x00000300     r10: 0x1f9594a0     r11: 0x1fa97b00
    ip: 0x00000148    sp: 0x074932a8      lr: 0x3965f123      pc: 0x396e8350
  cpsr: 0x00000010`

Please shed any light on if you have any knowledge about this.

回答1:

I don't believe this has anything to do with your app crashing and is intended functionality built into iOS when the device overheats.

I've had this happen on other apps as well and it typically occurs when:

  1. The app is using close to 100% of the CPU (generates heat)
  2. The heat can't escape (using a cover or phone is laying on cloth)
  3. The device is also charging (creates additional heat)

It sounds like your device is plugged in to record the logs. Try stress testing it without connecting it to your CPU and see if it makes a difference.



回答2:

Ensure that when turning the device off, you are not changing the amount of light entering the ambient light sensor. I have noticed this behavior something like this before and attributed it to poorly implemented light sensing on behalf of the OS.