Spring 内提供的 Mockito 引导无法附加到 JVM (OpenJDK 11)

Mockito shipped within Spring Boot fails to attach to JVM (OpenJDK 11)

我有一堆 Spring Boot 2.5.6 应用程序使用 Mockito 进行单元测试。使用的 Mockito 版本是 SB 本身附带的版本 (3.9.0)。 JDK 是 OpenJDK 11.0.12+0。直到昨天一切都正常,今天早上我突然无法 运行 任何基于 Mockito 的测试,所有测试都失败并显示以下内容:

Caused by: java.lang.IllegalStateException: Failed to load interface org.mockito.plugins.MockMaker implementation declared in java.lang.CompoundEnumeration@7c51f34b
Caused by: java.lang.reflect.InvocationTargetException
Caused by: org.mockito.exceptions.base.MockitoInitializationException: 

Could not initialize inline Byte Buddy mock maker.

It appears as if your JDK does not supply a working agent attachment mechanism.
Java               : 11
JVM vendor name    : Homebrew
JVM vendor version : 11.0.12+0
JVM name           : OpenJDK 64-Bit Server VM
JVM version        : 11.0.12+0
JVM info           : mixed mode
OS name            : Mac OS X
OS version         : 12.0.1

Caused by: java.lang.IllegalStateException: Could not self-attach to current VM using external process

我无法确定昨天和今天之间发生了什么变化。

我尝试过但没有成功的事情:

万一重要,这是在 MBP M1 上。团队的其他成员可以毫无问题地构建。

不确定这会有多少答案,但问题现在(似乎)已自行解决...我将描述我所做的事情以及发生的事情,以防其他用户遇到类似情况问题。

在尝试问题中描述的所有操作均未成功后,我不得不(再次)重新启动笔记本电脑以解决一个不相关的问题(Zoom 无法启动)。重新启动后,笔记本电脑只是崩溃并自行重新启动。然后它第二次做了同样的事情。第三次自动重启后,我在构建 Java 应用程序时不再遇到问题。

我的猜测是 NVRAM 以某种方式损坏,这影响了 JVM 接受传入附件请求的能力。在 MBP M1 上,不能像 Intel 型号那样重置 NVRAM(按 Cmd + Opt + R + P),而是在检测到错误时 the NVRAM is supposed to self-heal。我想在 MBP 崩溃后最终决定修复 NVRAM,这就是构建再次开始工作的原因。

更新: 我现在又遇到这个问题几次,每次“解决方案”都是重启笔记本电脑几次,直到它崩溃。之后问题就会消失。这增加了问题中指定的硬件和软件组合存在一些固有不稳定性的想法。如果其他人有同样的问题,我会将其保留为“已回答”问题。

更新 2: 这可能纯属巧合,但问题似乎因使用额外屏幕而加剧,尤其是通过 Sidecar 使用 iPad。