The beach ball appears, when GarageSale is updating a smart group that uses a relative date rule, like “ends within x days”.
In particular, from the limited information present in the spin dump, it seems that determining if a particular item is contained within the crash costs a lot of performance.
Here are a few question that might help us optimize the code:
How many smart groups using a relative date rule do you have?
What’s the highest number of items any of those smart groups contains?
I made some optimization out of the blue when it comes to updating smart groups using relative dates. It might be hard to track down any improvements, as this process only runs when you launch GS and then every 60 minutes.