gpt4 book ai didi

java - strace'ing java 进程时有很多 SIGSEGV

转载 作者:搜寻专家 更新时间:2023-10-30 19:56:00 26 4
gpt4 key购买 nike

当我在 CI 服务器(实际上是 maven 构建)上调试其中一个单元测试时,发生了一些有趣的事情。我使用 strace -ff -e trace=network -p [pid] 连接到 java 进程以跟踪构建过程的网络 Activity 。这就是我所看到的:

Process 26324 attached
Process 26325 attached (waiting for parent)
Process 26325 resumed (parent 26312 ready)
Process 26325 detached
Process 26324 detached
Process 26320 detached
Process 26317 detached
Process 26308 resumed
[pid 26308] --- SIGCHLD (Child exited) @ 0 (0) ---
Process 26307 resumed
Process 26308 detached
[pid 26310] --- SIGCHLD (Child exited) @ 0 (0) ---
Process 26310 detached
[pid 25551] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
Process 26309 detached
Process 26307 detached
[pid 25717] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
[pid 25715] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
[pid 25713] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
[pid 25551] socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 163
[pid 25551] setsockopt(163, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
[pid 25551] bind(163, {sa_family=AF_INET, sin_port=htons(6590), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
Process 26471 attached (waiting for parent)
Process 26471 resumed (parent 25551 ready)
[pid 25551] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
[pid 25551] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
[pid 26471] recvfrom(163, <unfinished ...>
[pid 25551] socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 164
[pid 25551] setsockopt(164, SOL_SOCKET, SO_BROADCAST, [1], 4) = 0
[pid 25551] bind(164, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
[pid 25551] getsockname(164, {sa_family=AF_INET, sin_port=htons(45728), sin_addr=inet_addr("0.0.0.0")},[16]) = 0
[pid 25551] --- SIGSEGV (Segmentation fault) @ 0 (0) ---
[pid 26471] <... recvfrom resumed> 0x8e80618, 65536, 0, 0x6ef6aea0, 0x6ef6ae9c) = ? ERESTARTSYS (To be restarted)
[pid 26471] --- SIGRT_29 (Real-time signal 27) @ 0 (0) ---
Process 26471 detached
Process 26472 attached (waiting for parent)
Process 26472 resumed (parent 25551 ready)
Process 26473 attached (waiting for parent)
Process 26473 resumed (parent 25551 ready)

因此,我们有一些网络 Activity (这是我实际搜索的内容)和大量 SIGSEGV 信号。

构建正确完成(只有一个失败的测试)。情况可确定并一遍又一遍地重现。这是什么意思?

最佳答案

由于这是 java,这意味着您的 JVM 正在使用 SIGSEGV 进行某些操作。常见用途包括

  • 空指针取消引用——JVM 捕获 SIGSEGV 到地址 0 并将它们转换为 NullPointerExceptions

  • 垃圾收集写入障碍——很少更改的页面被标记为只读,并且 SEGV 捕获对它们的写入。这样垃圾收集器就不必一直重新扫描所有内存。

关于java - strace'ing java 进程时有很多 SIGSEGV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3731784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com