BitDefender deadlocks macOS display subsystem
I can reproduce this 100%:
* Enable BitDefender for macOS
* Install Firestorm and log into Second Life https://www.firestormviewer.org/downloads/
* Turn on local chat logging in Firestorm preferences
* Repeatedly "teleport" (travel) within Second Life from region to region
* macOS graphics will freeze. Only the mouse can move. It's impossible to interact with any part of macOS without holding the power button for 5 seconds to hard power off the machine
Additional details:
* This does NOT repro if BitDefender is installed, but BitDefender Shield is disabled
* It's still possible to ssh into the Mac even though graphics are frozen. From here, you can see that BitDefender is pinned to 100% CPU usage. Attaching a debugger to the process shows it deadlocked on a semaphore.
I'm working to see if I can create a simpler repro case, but I'm filing this now in case it's enough for BitDefender devs to work with.
My working theory is:
* a process locks an OpenGL context
* process performs a file operation
* BitDefender kernel extension intercepts process because file operation will trigger a virus scan
* BitDefender kernel extension makes a synchronous call to the userland process that updates the activity indicator to indicate that a file scan operation is in progress
* Updating the menubar icon is blocked until the GL context is released, but that's deadlocked because GL context release is blocked by BitDefender's intercept of process' file operation
The simplest thing BitDefender devs could do would be to determine whether updating the menu bar is a synchronous operation. Ideally this GUI operation would happen in its own thread so no other BitDefender operation is blocked by update calls.
Comments
-
Hello,
I have sent this situation to our development team and to take into consideration adding a Game Profile. Meanwhile, please keep the Bitdefender Shield disabled while playing Firestorm.0