Kernel panic every hour or so "UPSB: thunderbolt power on failed" ever since I upgraded to High Sierra

This problem has never happened before upgrading to High Sierra (was on every OS since Lion). The day I upgraded, this problem has been reoccurring every 1-2 hours, and once even 5 minute after a system restart caused by the kernel panic.

I've also called customer support and visited the Genius Bar, and they haven't been very helpful (from telling me that I didn't install High Sierra properly, to telling me to reboot my laptop, to installing some 3rd party extension to disable the NVIDIA Graphics card, and only use the integrated one). I've also submitted a bug report to Apple.

The first time this happened was when I was allocating about 1 GB of memory on the heap using a Java program in Eclipse IDE. In general, the problem occurs when the computer is running a lot of processes (running test suites) or using Slack/GitKraken/Visual Studio Code, though it could also happen when I'm just using Microsoft Office. It generally never happens when I'm just browsing the Internet.

Hardware: MacBook Pro Retina 15" mid-2012

Hardware Overview:

  Model Name:   MacBook Pro
  Model Identifier: MacBookPro10,1
  Processor Name:   Intel Core i7
  Processor Speed:  2.3 GHz
  Number of Processors: 1
  Total Number of Cores:    4
  L2 Cache (per Core):  256 KB
  L3 Cache: 6 MB
  Memory:   8 GB
  Boot ROM Version: MBP101.00F2.B00
  SMC Version (system): 2.3f36

System report:

Anonymous UUID:       4E2E596B-EF4C-6CB1-FD95-AB09C4B0AFFD

Sun Nov  5 14:23:52 2017

*** Panic Report ***
panic(cpu 0 caller 0xffffff7f8d69c71b): "UPSB: thunderbolt power on failed 0xffffffff\n"@/BuildRoot/Library/Caches/com.apple.xbs/Sources/IOPCIFamily/IOPCIFamily-320.1.1/IOPCIBridge.cpp:1297
Backtrace (CPU 0), Frame : Return Address
0xffffff914a193aa0 : 0xffffff800ce6d366 
0xffffff914a193ae0 : 0xffffff800cf98494 
0xffffff914a193b20 : 0xffffff800cf8a429 
0xffffff914a193ba0 : 0xffffff800ce1f190 
0xffffff914a193bc0 : 0xffffff800ce6cd8c 
0xffffff914a193cf0 : 0xffffff800ce6cafc 
0xffffff914a193d50 : 0xffffff7f8d69c71b 
0xffffff914a193db0 : 0xffffff7f8d69d25a 
0xffffff914a193dd0 : 0xffffff7f8d69b5bf 
0xffffff914a193e20 : 0xffffff7f8d6a5d0f 
0xffffff914a193e40 : 0xffffff800d489c45 
0xffffff914a193eb0 : 0xffffff800d4899ea 
0xffffff914a193ed0 : 0xffffff800cea6514 
0xffffff914a193f40 : 0xffffff800cea6015 
0xffffff914a193fa0 : 0xffffff800ce1c4f7 
      Kernel Extensions in backtrace:
         com.apple.iokit.IOPCIFamily(2.9)[DF1517A2-32C4-328E-9890-03E6C546604A]@0xffffff7f8d694000->0xffffff7f8d6c8fff

BSD process name corresponding to current thread: kernel_task

Mac OS version:
17A405

Kernel version:
Darwin Kernel Version 17.0.0: Thu Aug 24 21:48:19 PDT 2017; root:xnu-4570.1.46~2/RELEASE_X86_64
Kernel UUID: B84FDEFC-9081-35CE-8C51-25A9583AACDE
Kernel slide:     0x000000000cc00000
Kernel text base: 0xffffff800ce00000
__HIB  text base: 0xffffff800cd00000
System model name: MacBookPro10,1 (Mac-C3EC7CD22292981F)

System uptime in nanoseconds: 482731329021
last loaded kext at 253340449408: com.apple.filesystems.msdosfs 1.10 (addr 0xffffff7f8e33d000, size 69632)
last unloaded kext at 326512398018: com.apple.driver.AppleUSBMergeNub   900.4.1 (addr 0xffffff7f8f894000, size 12288)
loaded kexts:
com.apple.driver.AudioAUUC  1.70
com.apple.driver.AppleHWSensor  1.9.5d0
com.apple.driver.AGPM   110.23.24
com.apple.driver.ApplePlatformEnabler   2.7.0d0
com.apple.driver.X86PlatformShim    1.0.0
com.apple.filesystems.autofs    3.0
com.apple.driver.AppleMikeyHIDDriver    131
com.apple.driver.AppleMikeyDriver   280.12
com.apple.AGDCPluginDisplayMetrics  3.16.19
com.apple.driver.AppleHV    1
com.apple.iokit.IOUserEthernet  1.0.1
com.apple.driver.AppleUpstreamUserClient    3.6.4
com.apple.driver.AppleHDA   280.12
com.apple.iokit.IOBluetoothSerialManager    6.0.0f7
com.apple.GeForce   10.2.4
com.apple.driver.pmtelemetry    1
com.apple.Dont_Steal_Mac_OS_X   7.0.0
com.apple.driver.eficheck   1
com.apple.driver.AppleIntelHD4000Graphics   10.2.8
com.apple.driver.AGDCBacklightControl   3.16.19
com.apple.driver.AppleLPC   3.1
com.apple.driver.AppleMuxControl    3.16.19
com.apple.AVEBridge 1.0.0
com.apple.driver.AppleSMCPDRC   1.0.0
com.apple.driver.AppleThunderboltIP 3.1.0
com.apple.driver.AppleSMCLMU    211
com.apple.driver.AppleOSXWatchdog   1
com.apple.driver.AppleIntelFramebufferCapri 10.2.8
com.apple.driver.AppleIntelSlowAdaptiveClocking 4.0.0
com.apple.driver.AppleMCCSControl   1.5.3
com.apple.driver.AppleUSBTCKeyboard 254
com.apple.driver.AppleUSBTCButtons  254
com.apple.filesystems.apfs  748.1.47
com.apple.filesystems.hfs.kext  407.1.3
com.apple.AppleFSCompression.AppleFSCompressionTypeDataless 1.0.0d1
com.apple.BootCache 40
com.apple.AppleFSCompression.AppleFSCompressionTypeZlib 1.0.0
com.apple.driver.AppleSDXC  1.7.6
com.apple.driver.AirPort.Brcm4360   1200.15.1a3
com.apple.driver.AppleAHCIPort  329
com.apple.driver.AppleSmartBatteryManager   161.0.0
com.apple.driver.AppleACPIButtons   6.1
com.apple.driver.AppleRTC   2.0
com.apple.driver.AppleHPET  1.8
com.apple.driver.AppleSMBIOS    2.1
com.apple.driver.AppleACPIEC    6.1
com.apple.driver.AppleAPIC  1.7
com.apple.driver.AppleIntelCPUPowerManagementClient 220.0.0
com.apple.nke.applicationfirewall   183
com.apple.security.TMSafetyNet  8
com.apple.security.quarantine   3
com.apple.IOBufferCopyEngineTest    1
com.apple.driver.AppleIntelCPUPowerManagement   220.0.0
com.apple.kext.triggers 1.0
com.apple.iokit.IOTimeSyncFamily    600.15
com.apple.driver.AppleSSE   1.0
com.apple.driver.DspFuncLib 280.12
com.apple.kext.OSvKernDSPLib    526
com.apple.iokit.IOSerialFamily  11
com.apple.nvidia.driver.NVDAGK100Hal    10.2.4
com.apple.nvidia.driver.NVDAResman  10.2.4
com.apple.AppleGPUWrangler  3.16.19
com.apple.driver.AppleGraphicsControl   3.16.19
com.apple.driver.AppleHDAController 280.12
com.apple.iokit.IOHDAFamily 280.12
com.apple.iokit.IOAudioFamily   206.5
com.apple.vecLib.kext   1.2.0
com.apple.driver.AppleSMBusPCI  1.0.14d1
com.apple.driver.AppleBacklightExpert   1.1.0
com.apple.iokit.IONDRVSupport   517.17
com.apple.driver.X86PlatformPlugin  1.0.0
com.apple.driver.IOPlatformPluginFamily 6.0.0d8
com.apple.iokit.IOAcceleratorFamily2    373
com.apple.iokit.IOSurface   209
com.apple.AppleGraphicsDeviceControl    3.16.19
com.apple.iokit.IOSlowAdaptiveClockingFamily    1.0.0
com.apple.driver.AppleSMBusController   1.0.18d1
com.apple.iokit.IOGraphicsFamily    517.17
com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport 6.0.0f7
com.apple.iokit.IOBluetoothHostControllerUSBTransport   6.0.0f7
com.apple.iokit.IOBluetoothHostControllerTransport  6.0.0f7
com.apple.iokit.IOBluetoothFamily   6.0.0f7
com.apple.driver.AppleUSBMultitouch 261
com.apple.driver.usb.IOUSBHostHIDDevice 1.2
com.apple.driver.usb.networking 5.0.0
com.apple.driver.usb.AppleUSBHostCompositeDevice    1.2
com.apple.driver.usb.AppleUSBHub    1.2
com.apple.driver.AppleEffaceableStorage 1.0
com.apple.filesystems.hfs.encodings.kext    1
com.apple.driver.AppleThunderboltDPInAdapter    5.0.2
com.apple.driver.AppleThunderboltDPAdapterFamily    5.0.2
com.apple.driver.AppleThunderboltPCIDownAdapter 2.1.3
com.apple.iokit.IOAHCIBlockStorage  301.1.2
com.apple.driver.AppleThunderboltNHI    4.5.6
com.apple.iokit.IOThunderboltFamily 6.5.8
com.apple.iokit.IO80211Family   1200.12.2
com.apple.driver.mDNSOffloadUserClient  1.0.1b8
com.apple.iokit.IONetworkingFamily  3.3
com.apple.driver.corecapture    1.0.4
com.apple.iokit.IOAHCIFamily    288
com.apple.driver.usb.AppleUSBEHCIPCI    1.2
com.apple.driver.usb.AppleUSBEHCI   1.2
com.apple.driver.usb.AppleUSBXHCIPCI    1.2
com.apple.driver.usb.AppleUSBXHCI   1.2
com.apple.driver.usb.AppleUSBHostPacketFilter   1.0
com.apple.iokit.IOUSBFamily 900.4.1
com.apple.driver.AppleUSBHostMergeProperties    1.2
com.apple.driver.AppleEFINVRAM  2.1
com.apple.driver.AppleEFIRuntime    2.1
com.apple.iokit.IOHIDFamily 2.0.0
com.apple.iokit.IOSMBusFamily   1.1
com.apple.security.sandbox  300.0
com.apple.kext.AppleMatch   1.0.0d1
com.apple.iokit.IOBufferCopyEngineFamily    1
com.apple.driver.DiskImages 480.1.2
com.apple.driver.AppleKeyStore  2
com.apple.driver.AppleUSBTDM    439
com.apple.driver.AppleMobileFileIntegrity   1.0.5
com.apple.iokit.IOUSBMassStorageDriver  140
com.apple.iokit.IOSCSIBlockCommandsDevice   404
com.apple.iokit.IOSCSIArchitectureModelFamily   404
com.apple.iokit.IOStorageFamily 2.1
com.apple.driver.AppleCredentialManager 1.0
com.apple.driver.KernelRelayHost    1
com.apple.iokit.IOUSBHostFamily 1.2
com.apple.driver.usb.AppleUSBCommon 1.0
com.apple.driver.AppleBusPowerController    1.0
com.apple.driver.AppleSEPManager    1.0.1
com.apple.driver.IOSlaveProcessor   1
com.apple.iokit.IOReportFamily  31
com.apple.driver.AppleFDEKeyStore   28.30
com.apple.driver.AppleACPIPlatform  6.1
com.apple.driver.AppleSMCRTC    1.0
com.apple.driver.AppleSMC   3.1.9
com.apple.iokit.IOPCIFamily 2.9
com.apple.iokit.IOACPIFamily    1.4
com.apple.kec.pthread   1
com.apple.kec.Libm  1
com.apple.kec.corecrypto    1.0

EOF

Solution 1:

This is not an answer but a list of elements to progress toward an answer.

Kernel extensions upgrade

On the MacOS version having this kernel bug, the Thunderbolt kernel extensions were:

com.apple.driver.AppleThunderboltDPAdapterFamily    5.0.2
com.apple.driver.AppleThunderboltDPInAdapter    5.0.2
com.apple.driver.AppleThunderboltIP 3.1.0
com.apple.driver.AppleThunderboltNHI    4.5.6
com.apple.driver.AppleThunderboltPCIDownAdapter 2.1.3
com.apple.iokit.IOThunderboltFamily 6.5.8

obtained from a grep Thunder | sort on the system report of the question.

On a MacOS version 10.13.5, this set of kernel extensions is:

com.apple.driver.AppleThunderboltDPAdapterFamily 5.5.4
com.apple.driver.AppleThunderboltDPInAdapter 5.5.4
com.apple.driver.AppleThunderboltIP 3.1.1
com.apple.driver.AppleThunderboltNHI 4.7.2
com.apple.driver.AppleThunderboltPCIDownAdapter 2.1.3
com.apple.iokit.IOThunderboltFamily 6.7.8

obtained with the command:

kextstat -a | grep Thunder |
sed 's,^.* \(com[^ ]*\) (\([^)]*\).*$,\1 \2,' | sort

By comparing these 2 sets of kernel extensions one can see that Apple upgraded 5 of these 6 extensions. Maybe this could be to try to fix known bugs and not only to add some new sexy functions.

I would suggest to test this version of 10.13.5 of MacOS.

Reduce the potential source of kernel panic

Since Thunderbolt is used within the stupid network configuration named Automatic, I would test inactivating it if it isn't necessary. This can be achieved in System Preferences > Network:

Create a new location without Thunderbolt

Within Location: select Edit Locations… click on the down left + to create a new "location" (the correct term would be a network configuration):

Wi-Fi ON        Thunderbolt OFF

Select the Thunderbolt Bridge interface in the left list of network interfaces and:

  1. Set Configure IPv4: to Off
  2. From the bottom left gearing drop down menu Select Make Service Inactive
  3. and finally Apply this new network configuration

Thunderbolt inactive

If with this new configuration, the panics disappear, then this would mean that the IP Thunderbolt driver is where the bug stands. This might be a good workaround to return to a normal working system. This might also be an helpful information to transmit to Apple to help them improve their quality control.