Dimillian / IceCubesApp

A SwiftUI Mastodon client
https://apps.apple.com/us/app/ice-cubes-for-mastodon/id6444915884
GNU Affero General Public License v3.0
5.57k stars 539 forks source link

Bug: Either a MacOS or IceCube update has made many ui operations spin the beachball and CPU usage shoot up #2163

Closed rexbron closed 2 months ago

rexbron commented 3 months ago

Environment:

Description

After a recent app and/or mac os update, many parts of the app hang for an extended period of time. CPU usage is very high.

Related Issues

Data Source: Microstackshots Shared Cache: BB3DF3D3-38BD-304C-9233-E43DE95F1903 slid base address 0x180370000, slide 0x370000

Command: Ice Cubes Path: /Applications/Ice Cubes.app/Contents/MacOS/Ice Cubes Identifier: com.thomasricouard.IceCubesApp Version: 1.10.46 (2751) Team ID: Z6P74P6T99 App Item ID: 6444915884 App External ID: 867836469 Is First Party: No Beta Identifier: CBBC0717-A8A9-5767-B70E-F5D522AA25C5 Resource Coalition: 866 Architecture: arm64 PID: 7596

Event: cpu usage Action taken: none CPU: 90 seconds cpu time over 91 seconds (99% cpu average), exceeding limit of 50% cpu over 180 seconds CPU limit: 90s Limit duration: 180s CPU used: 90s CPU duration: 91s Duration: 91.27s Duration Sampled: 88.29s Steps: 60

Hardware model: Mac15,6 Active cpus: 11 HW page size: 16384 VM page size: 16384

Fan speed: 0 rpm OS Cryptex File Extents: 1

Heaviest stack for the target process: 60 start + 2476 (dyld + 24916) [0x18042f154] 60 ??? (Ice Cubes + 699764) [0x100866d74] 60 ??? (SwiftUI + 12592648) [0x1c9934608] 60 ??? (SwiftUI + 16573224) [0x1c9d00328] 60 ??? (SwiftUI + 16573664) [0x1c9d004e0] 60 UIApplicationMain + 148 (UIKitCore + 14268) [0x1afd4d7bc] 60 UINSApplicationMain + 972 (UIKitMacHelper + 20304) [0x199b75f50] 60 _NSApplicationMainWithInfoDictionary + 24 (AppKit + 2455124) [0x184314654] 60 NSApplicationMain + 880 (AppKit + 16960) [0x1840c1240] 60 -[NSApplication run] + 476 (AppKit + 184316) [0x1840e9ffc] 60 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 700 (AppKit + 8586448) [0x1848ed4d0] 60 _DPSNextEvent + 660 (AppKit + 236744) [0x1840f6cc8] 60 _BlockUntilNextEventMatchingListInModeWithFilter + 76 (HIToolbox + 208176) [0x18b040d30] 60 ReceiveNextEventCommon + 648 (HIToolbox + 208856) [0x18b040fd8] 60 RunCurrentEventLoopInMode + 292 (HIToolbox + 209308) [0x18b04119c] 60 CFRunLoopRunSpecific + 684 (CoreFoundation + 509056) [0x180897480] 60 CFRunLoopDoObservers + 536 (CoreFoundation + 513896) [0x180898768] 60 CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION_ + 36 (CoreFoundation + 514172) [0x18089887c] 60 ??? (SwiftUI + 6537716) [0x1c936e1f4] 60 ??? (SwiftUI + 6537372) [0x1c936e09c] 60 ??? (SwiftUI + 6537552) [0x1c936e150] 60 ??? (SwiftUI + 16548928) [0x1c9cfa440] 60 ??? (SwiftUI + 22938008) [0x1ca312198] 60 ??? (SwiftUI + 22938284) [0x1ca3122ac] 60 ??? (SwiftUI + 12781668) [0x1c9962864] 60 ??? (SwiftUI + 23775100) [0x1ca3de77c] 60 ??? (SwiftUI + 23781752) [0x1ca3e0178] 60 ??? (SwiftUI + 12820420) [0x1c996bfc4] 60 ??? (SwiftUI + 22938340) [0x1ca3122e4] 60 ??? (SwiftUI + 22932496) [0x1ca310c10] 60 ??? (SwiftUI + 25553192) [0x1ca590928] 60 ??? (SwiftUI + 22941148) [0x1ca312ddc] 60 ??? (SwiftUI + 9969652) [0x1c96b3ff4] 60 ObservationTracking.cancel() + 224 (libswiftObservation.dylib + 30812) [0x247edf85c] 55 ObservationRegistrar.State.cancel(:) + 736 (libswiftObservation.dylib + 24328) [0x247eddf08] 55 specialized Set.Variant.remove(:) + 248 (libswiftObservation.dylib + 45956) [0x247ee3384] 45 specialized _NativeSet.copy() + 220 (libswiftObservation.dylib + 39632) [0x247ee1ad0]

Powerstats for: Ice Cubes [7596] UUID: A8590516-72E1-32B0-9D10-D11C460C52C2 Path: /Applications/Ice Cubes.app/Contents/MacOS/Ice Cubes Identifier: com.thomasricouard.IceCubesApp Version: 1.10.46 (2751) Team ID: Z6P74P6T99 App Item ID: 6444915884 App External ID: 867836469 Is First Party: No Beta Identifier: CBBC0717-A8A9-5767-B70E-F5D522AA25C5 Resource Coalition: 60 samples 866 Architecture: arm64 Footprint: 3669.45 MB Pageins: 4 pages Start time: 2024-08-13 10:21:50.532 -0400 End time: 2024-08-13 10:23:18.817 -0400 Num samples: 60 (100%) Num threads: 1 Primary state: 48 samples Frontmost App, Non-Suppressed, User mode, Effective Thread QoS User Interactive, Requested Thread QoS User Interactive, Override Thread QoS Unspecified, p-core User Activity: 0 samples Idle, 60 samples Active Power Source: 0 samples on Battery, 60 samples on AC 60 start + 2476 (dyld + 24916) [0x18042f154] 60 ??? (Ice Cubes + 699764) [0x100866d74] 60 ??? (SwiftUI + 12592648) [0x1c9934608] 60 ??? (SwiftUI + 16573224) [0x1c9d00328] 60 ??? (SwiftUI + 16573664) [0x1c9d004e0] 60 UIApplicationMain + 148 (UIKitCore + 14268) [0x1afd4d7bc] 60 UINSApplicationMain + 972 (UIKitMacHelper + 20304) [0x199b75f50] 60 _NSApplicationMainWithInfoDictionary + 24 (AppKit + 2455124) [0x184314654] 60 NSApplicationMain + 880 (AppKit + 16960) [0x1840c1240] 60 -[NSApplication run] + 476 (AppKit + 184316) [0x1840e9ffc] 60 -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 700 (AppKit + 8586448) [0x1848ed4d0] 60 _DPSNextEvent + 660 (AppKit + 236744) [0x1840f6cc8] 60 _BlockUntilNextEventMatchingListInModeWithFilter + 76 (HIToolbox + 208176) [0x18b040d30] 60 ReceiveNextEventCommon + 648 (HIToolbox + 208856) [0x18b040fd8] 60 RunCurrentEventLoopInMode + 292 (HIToolbox + 209308) [0x18b04119c] 60 CFRunLoopRunSpecific + 684 (CoreFoundation + 509056) [0x180897480] 60 CFRunLoopDoObservers + 536 (CoreFoundation + 513896) [0x180898768] 60 CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION_ + 36 (CoreFoundation + 514172) [0x18089887c] 60 ??? (SwiftUI + 6537716) [0x1c936e1f4] 60 ??? (SwiftUI + 6537372) [0x1c936e09c] 60 ??? (SwiftUI + 6537552) [0x1c936e150] 60 ??? (SwiftUI + 16548928) [0x1c9cfa440] 60 ??? (SwiftUI + 22938008) [0x1ca312198] 60 ??? (SwiftUI + 22938284) [0x1ca3122ac] 60 ??? (SwiftUI + 12781668) [0x1c9962864] 60 ??? (SwiftUI + 23775100) [0x1ca3de77c] 60 ??? (SwiftUI + 23781752) [0x1ca3e0178] 60 ??? (SwiftUI + 12820420) [0x1c996bfc4] 60 ??? (SwiftUI + 22938340) [0x1ca3122e4] 60 ??? (SwiftUI + 22932496) [0x1ca310c10] 60 ??? (SwiftUI + 25553192) [0x1ca590928] 60 ??? (SwiftUI + 22941148) [0x1ca312ddc] 60 ??? (SwiftUI + 9969652) [0x1c96b3ff4] 60 ObservationTracking.cancel() + 224 (libswiftObservation.dylib + 30812) [0x247edf85c] 55 ObservationRegistrar.State.cancel(:) + 736 (libswiftObservation.dylib + 24328) [0x247eddf08] 55 specialized Set.Variant.remove(:) + 248 (libswiftObservation.dylib + 45956) [0x247ee3384] 45 specialized _NativeSet.copy() + 220 (libswiftObservation.dylib + 39632) [0x247ee1ad0] 10 5 specialized _NativeSet.copy() + 228 (libswiftObservation.dylib + 39640) [0x247ee1ad8] 1 3 specialized _NativeSet.copy() + 204 (libswiftObservation.dylib + 39616) [0x247ee1ac0] 1 specialized _NativeSet.copy() + 212 (libswiftObservation.dylib + 39624) [0x247ee1ac8] 1 specialized NativeSet.copy() + 184 (libswiftObservation.dylib + 39596) [0x247ee1aac] 5 ObservationRegistrar.State.cancel(:) + 1080 (libswiftObservation.dylib + 24672) [0x247ede060] 5 bool swift::RefCounts<swift::RefCountBitsT<(swift::RefCountInlinedness)1>>::doDecrementSlow<(swift::PerformDeinit)1>(swift::RefCountBitsT<(swift::RefCountInlinedness)1>, unsigned int) + 136 (libswiftCore.dylib + 3861752) [0x190839cf8] 5 _swift_release_dealloc + 56 (libswiftCore.dylib + 3858848) [0x1908391a0] 5 _szone_free + 720 (libsystem_malloc.dylib + 97552) [0x1805dfd10] 5 madvise + 8 (libsystem_kernel.dylib + 14968) [0x18077ba78] 2

Binary Images: 0x1007bc000 - 0x101513fff com.thomasricouard.IceCubesApp 1.10.46 (2751) /Applications/Ice Cubes.app/Contents/MacOS/Ice Cubes 0x180429000 - 0x1804b2507 dyld (1165.3) /usr/lib/dyld 0x1805c8000 - 0x180604ff7 libsystem_malloc.dylib (521.120.7) <8A69A1AC-6D54-3B64-9860-CD0DB47473ED> /usr/lib/system/libsystem_malloc.dylib 0x180778000 - 0x1807b2ffb libsystem_kernel.dylib (10063.141.2) <71FF45B8-F14E-3666-9E96-6CF58315B91D> /usr/lib/system/libsystem_kernel.dylib 0x18081b000 - 0x180cf3fff com.apple.CoreFoundation 6.9 (2602) <55720EE0-D8C3-33A1-9854-8E61A6F44895> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation 0x1840bd000 - 0x1853fbfff com.apple.AppKit 6.9 (2487.70.105) <7ACBEEF9-A453-3E4D-98AC-F9441D86E183> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit 0x18b00e000 - 0x18b2d1fff com.apple.HIToolbox 2.1.1 (1204.0.1) <4166F6CB-B599-306C-8568-823BD29A74C3> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox 0x19048b000 - 0x1909e8fff libswiftCore.dylib (5.10.0.12.10) <7DB1818B-1D9A-328E-821B-21A33442746A> /usr/lib/swift/libswiftCore.dylib 0x199b71000 - 0x199c84fff com.apple.UIKitMacHelper 1.0 (7605) /System/Library/PrivateFrameworks/UIKitMacHelper.framework/Versions/A/UIKitMacHelper 0x1afd4a000 - 0x1b16dafff com.apple.UIKitCore 1.0 (7605) /System/iOSSupport/System/Library/PrivateFrameworks/UIKitCore.framework/Versions/A/UIKitCore 0x1c8d32000 - 0x1caa28fff com.apple.SwiftUI 5.6.2 (5.6.2) <62F8E056-F667-3143-95D4-92FAB24BBDA5> /System/iOSSupport/System/Library/Frameworks/SwiftUI.framework/Versions/A/SwiftUI 0x247ed8000 - 0x247ee7ff7 libswiftObservation.dylib (5.10.0.12.10) /usr/lib/swift/libswiftObservation.dylib

EHCG04 commented 2 months ago

Same Bug here, also on arm an 14.6.1. It also crashed on me now, which it so far only did on mobile.

curtkrone commented 2 months ago

In case it's helpful, can confirm that I'm seeing the same thing - frequent beachballing with the occasional crash - with newer builds.

OS: MacOS 14.6.1 IceCubesApp version: 1.10.50 (2803)

stepheneb commented 2 months ago

Fixed for me as of v1.10.55.

rexbron commented 2 months ago

I wonder if it's related to this commit: https://github.com/Dimillian/IceCubesApp/commit/6d289ebd09c135627ec3dc884f810d211d94f395

Dimillian commented 2 months ago

Yes. So removing the stream (unfortunately) fix a lof of issues, like the app not being able to sleep, loading too many posts etc... It's mostly a problem with SwiftUI, the List seems to be completely instable if this happen while the app is in background.