Description
Deletion of a notebook requires locking interpreterSettings. If the deletion is delayed , then lock is not released. At that point, we cannot run any notebook because everything is waiting to lock interpreterSettings.
Looking at the code, there is no reason to lock the InterpreterSettings object in InterpreterSettingManager.removeNoteInterpreterSettingBinding.
Similarly in InterpreterSettingManager.getNoteInterpreterSettingBinding only interpreterSettingBinding is accessed and its already a thread safe object. So we can remove synchronization on InterpreterSettings
More details in comments