Answered

Sonos controller hangs on start on MacOS when connected to a Global Protect VPN

  • 5 January 2022
  • 5 replies
  • 46 views

There’s a 100% hang on startup when starting the S2 controller on MacOS Big Sur (11.5.2 20G95) when the computer is connected to a VPN with Global Protect. In my case the VPN is on 10.0.0.0/8 and the local network is 192.168.1.0/8. The Sonos hardware is connected to the 192.168.1.0/8 subnet. If I disconnect from the VPN everything works fine. If I then re-connect to the VPN after the Sonos controller starts it continues to work fine.

 

When on the VPN the controller boots up and populates the three “System/Now Playing/Select a Music Source” columns correctly. The fact that the “Now Playing” column is correct indicates that it successfully discovered the Sonos cluster. However, about 2 seconds later the app freezes and I get the spinning-ball-of-death. What’s weird is if I force-quit the app is actually recovers for a second and starts working but then quits. I think the SIGTERM or AppleEvent is somehow breaking the deadlock/hang mentioned below.

 

Here’s the callstack for the main thread. It ends in what looks like a blocking call to __sendto from the main thread. Blocking network calls in the main thread are generally a no-no! However, this looks like a deadlock rather than a long stall or something.

Process:         Sonos [44450]
Path: /Applications/Sonos.app/Contents/MacOS/Sonos
Load Address: 0x100fc0000
Identifier: com.sonos.macController2
Version: 13.4.1 (66.4.23300)
Code Type: X86-64
Platform: macOS
Parent Process: ??? [1]

Date/Time: 2022-01-04 17:58:55.032 -0800
Launch Time: 2022-01-04 17:54:59.783 -0800
OS Version: macOS 11.5.2 (20G95)
Report Version: 7
Analysis Tool: /usr/bin/sample

Physical footprint: 72.7M
Physical footprint (peak): 72.8M
----

Call graph:
2598 Thread_2559252 DispatchQueue_1: com.apple.main-thread (serial)
+ 2598 start (in libdyld.dylib) + 1 [0x7fff20473f3d]
+ 2598 NSApplicationMain (in AppKit) + 816 [0x7fff22c45e6c]
+ 2598 -[NSApplication run] (in AppKit) + 586 [0x7fff22c71c69]
+ 2598 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] (in AppKit) + 1364 [0x7fff22c7f945]
+ 2598 _DPSNextEvent (in AppKit) + 864 [0x7fff22c81172]
+ 2598 _BlockUntilNextEventMatchingListInModeWithFilter (in HIToolbox) + 70 [0x7fff289f7583]
+ 2598 ReceiveNextEventCommon (in HIToolbox) + 284 [0x7fff289f76b6]
+ 2598 RunCurrentEventLoopInMode (in HIToolbox) + 292 [0x7fff289f7a83]
+ 2598 CFRunLoopRunSpecific (in CoreFoundation) + 567 [0x7fff2054f310]
+ 2598 __CFRunLoopRun (in CoreFoundation) + 897 [0x7fff2054fd58]
+ 2598 __CFRunLoopDoSources0 (in CoreFoundation) + 242 [0x7fff2055134a]
+ 2598 __CFRunLoopDoSource0 (in CoreFoundation) + 180 [0x7fff205515d4]
+ 2598 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ (in CoreFoundation) + 17 [0x7fff2055166c]
+ 2598 __NSThreadPerformPerform (in Foundation) + 204 [0x7fff21229b81]
+ 2598 ??? (in Sonos) load address 0x100fc0000 + 0xded672 [0x101dad672]
+ 2598 ??? (in Sonos) load address 0x100fc0000 + 0xaf329e [0x101ab329e]
+ 2598 ??? (in Sonos) load address 0x100fc0000 + 0xafaa9c [0x101abaa9c]
+ 2598 ??? (in Sonos) load address 0x100fc0000 + 0xbf0ea3 [0x101bb0ea3]
+ 2598 ??? (in Sonos) load address 0x100fc0000 + 0xbf12fd [0x101bb12fd]
+ 2598 ??? (in Sonos) load address 0x100fc0000 + 0xbf12fd [0x101bb12fd]
+ 2598 ??? (in Sonos) load address 0x100fc0000 + 0x1e03e6 [0x1011a03e6]
+ 2598 ??? (in Sonos) load address 0x100fc0000 + 0x1e3969 [0x1011a3969]
+ 2598 ??? (in Sonos) load address 0x100fc0000 + 0xc00690 [0x101bc0690]
+ 2598 ??? (in Sonos) load address 0x100fc0000 + 0xc00b4e [0x101bc0b4e]
+ 2598 ??? (in Sonos) load address 0x100fc0000 + 0x648451 [0x101608451]
+ 2598 ??? (in Sonos) load address 0x100fc0000 + 0x2aef16 [0x10126ef16]
+ 2598 ??? (in Sonos) load address 0x100fc0000 + 0x2ae416 [0x10126e416]
+ 2598 ??? (in Sonos) load address 0x100fc0000 + 0x30faa4 [0x1012cfaa4]
+ 2598 ??? (in Sonos) load address 0x100fc0000 + 0xbc8288 [0x101b88288]
+ 2598 ??? (in Sonos) load address 0x100fc0000 + 0xbd2262 [0x101b92262]
+ 2598 ??? (in Sonos) load address 0x100fc0000 + 0xbd1e93 [0x101b91e93]
+ 2598 __sendto (in libsystem_kernel.dylib) + 10 [0x7fff204267e2]

 

icon

Best answer by Ken_Griffiths 5 January 2022, 03:42

View original

5 replies

It suggests here in the Sonos Support pages to disable any VPN connections for the mobile or desktop Sonos App to be able to connect to the system/devices on the same local subnet, so this is probably working as expected:

https://support.sonos.com/s/article/290

The purpose of a VPN is to reject outside access except that between the computer and the VPN target. That would include connections between the Sonos speakers and the controller, since the VPN considers those to be outside connections to the computer. 

Userlevel 7
Badge +22

If your VPN has an option for “split tunneling” then enable it. If not then you will need to disable the VPN instead, it is doing what it is designed to do.

hi @seanhoughton while I am not familiar with Global Protect, I have been using Big Sur and Monterey with NordVPN without any issues and always was able to use my local network resources - you may check the preferences though for settings related to trusted networks

 

Ideally we get past “the docs say you can’t use a VPN” and have Sonos fix the hang. I understand problems with network routing can cause connectivity challenges with speakers - part of the troubleshooting steps for connectivity problems should include VPN adjustments. However, a complete application hang should never happen, regardless of any connectivity configuration. In my case the speakers are clearly reachable and responding.

Reply