Memory leaks with sysmon 1.3.7
@MarioHewardt đang làm issue này rồi.
Từ ngày 10/6/2025.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
Describe the bug
I'm receiving reports from a sysadmin of Sysmon 1.3.7 leaking memory in the region of 5MB an hour on a number of Ubuntu 22.04 machines.
Following the previous issue #170 I've ran Sysmon from the main branch at commit 8283661 with valgrind for a short period and it does appear to indicate that there are more memory leaks.
To Reproduce
- Install sysmon
- Observe RSS usage increase over time
- Wait for OOM killer or Restart service
Sysmon version
1.3.7
Distro/kernel version
Ubuntu 22.04.01 - 6.8.0-1030-gcp
Sysmon configuration
The Sysmon configuration when the issue occurred.
Logs
Valgrind
==35150== Memcheck, a memory error detector
==35150== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==35150== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info
==35150== Command: /opt/sysmon/sysmon -i /opt/sysmon/config.xml -service
==35150== Parent PID: 35057
==35150==
==35150== Syscall param bpf(attr->expected_attach_type) points to uninitialised byte(s)
==35150== at 0x4F6D25D: syscall (syscall.S:38)
==35150== by 0x487A876: sys_bpf (bpf.c:75)
==35150== by 0x487A876: sys_bpf_fd (bpf.c:83)
==35150== by 0x487A876: sys_bpf_prog_load (bpf.c:92)
==35150== by 0x487F930: probe_kern_prog_name (libbpf.c:4527)
==35150== by 0x488300E: kernel_supports (libbpf.c:4910)
==35150== by 0x488300E: kernel_supports (libbpf.c:4898)
==35150== by 0x48852AC: bpf_object__create_map (libbpf.c:5034)
==35150== by 0x48903B5: bpf_object__create_maps (libbpf.c:5296)
==35150== by 0x4891692: bpf_object_load (libbpf.c:7738)
==35150== by 0x4891692: bpf_object__load (libbpf.c:7787)
==35150== by 0x48749A5: ebpfStart (telemetryLoader.c:1366)
==35150== by 0x48749A5: ebpfStart (telemetryLoader.c:1303)
==35150== by 0x48750ED: telemetryStart (telemetryLoader.c:1556)
==35150== by 0x17E808: main (sysmonforlinux.c:1681)
==35150== Address 0x1ffeffe9b4 is on thread 1's stack
==35150== in frame #2, created by probe_kern_prog_name (libbpf.c:4510)
==35150==
==35150== Syscall param bpf(attr->prog_ifindex) points to uninitialised byte(s)
==35150== at 0x4F6D25D: syscall (syscall.S:38)
==35150== by 0x487A876: sys_bpf (bpf.c:75)
==35150== by 0x487A876: sys_bpf_fd (bpf.c:83)
==35150== by 0x487A876: sys_bpf_prog_load (bpf.c:92)
==35150== by 0x487F930: probe_kern_prog_name (libbpf.c:4527)
==35150== by 0x488300E: kernel_supports (libbpf.c:4910)
==35150== by 0x488300E: kernel_supports (libbpf.c:4898)
==35150== by 0x48852AC: bpf_object__create_map (libbpf.c:5034)
==35150== by 0x48903B5: bpf_object__create_maps (libbpf.c:5296)
==35150== by 0x4891692: bpf_object_load (libbpf.c:7738)
==35150== by 0x4891692: bpf_object__load (libbpf.c:7787)
==35150== by 0x48749A5: ebpfStart (telemetryLoader.c:1366)
==35150== by 0x48749A5: ebpfStart (telemetryLoader.c:1303)
==35150== by 0x48750ED: telemetryStart (telemetryLoader.c:1556)
==35150== by 0x17E808: main (sysmonforlinux.c:1681)
==35150== Address 0x1ffeffe9b0 is on thread 1's stack
==35150== in frame #2, created by probe_kern_prog_name (libbpf.c:4510)
==35150==
==35150== Syscall param bpf(attr->value) points to uninitialised byte(s)
==35150== at 0x4F6D25D: syscall (syscall.S:38)
==35150== by 0x487B6D1: sys_bpf (bpf.c:75)
==35150== by 0x487B6D1: bpf_map_update_elem (bpf.c:394)
==35150== by 0x4874A76: ebpfStart (telemetryLoader.c:1405)
==35150== by 0x4874A76: ebpfStart (telemetryLoader.c:1303)
==35150== by 0x48750ED: telemetryStart (telemetryLoader.c:1556)
==35150== by 0x17E808: main (sysmonforlinux.c:1681)
==35150== Address 0x1ffeffee84 is on thread 1's stack
==35150== in frame #2, created by ebpfStart (telemetryLoader.c:1314)
==35150==
==35150== Syscall param bpf(attr->value) points to uninitialised byte(s)
==35150== at 0x4F6D25D: syscall (syscall.S:38)
==35150== by 0x487B6D1: sys_bpf (bpf.c:75)
==35150== by 0x487B6D1: bpf_map_update_elem (bpf.c:394)
==35150== by 0x4874AA5: ebpfStart (telemetryLoader.c:1412)
==35150== by 0x4874AA5: ebpfStart (telemetryLoader.c:1303)
==35150== by 0x48750ED: telemetryStart (telemetryLoader.c:1556)
==35150== by 0x17E808: main (sysmonforlinux.c:1681)
==35150== Address 0x1ffeffee84 is on thread 1's stack
==35150== in frame #2, created by ebpfStart (telemetryLoader.c:1314)
==35150==
--35150-- WARNING: unhandled eBPF command 28
--35150-- WARNING: unhandled eBPF command 28
--35150-- WARNING: unhandled eBPF command 28
==35150==
==35150== HEAP SUMMARY:
==35150== in use at exit: 230,146 bytes in 501 blocks
==35150== total heap usage: 630,473 allocs, 629,972 frees, 846,234,225 bytes allocated
==35150==
==35150== 0 bytes in 1 blocks are definitely lost in loss record 1 of 268
==35150== at 0x4846828: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==35150== by 0x1807B8: setConfigFromStoredArgv (sysmonforlinux.c:1070)
==35150== by 0x17DEDE: main (sysmonforlinux.c:1442)
==35150==
==35150== 189,142 bytes in 192 blocks are definitely lost in loss record 268 of 268
==35150== at 0x4846828: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==35150== by 0x1955B4: ProcessCache::ProcessAdd(GUID, SYSMON_EVENT_HEADER*) (eventsCommon.cpp:366)
==35150== by 0x195C41: GenerateUniquePGUID(GUID*, SYSMON_EVENT_HEADER*, bool) (eventsCommon.cpp:499)
==35150== by 0x19738A: EventResolveField (eventsCommon.cpp:1888)
==35150== by 0x197619: EventProcess(SYSMON_EVENT_TYPE_FMT*, SYSMON_DATA_DESCRIPTOR*, SYSMON_EVENT_HEADER*, unsigned long*) (eventsCommon.cpp:2463)
==35150== by 0x198773: DispatchEvent (eventsCommon.cpp:2922)
==35150== by 0x17FE2F: processProcessCreate (sysmonforlinux.c:623)
==35150== by 0x4881B40: perf_buffer__process_record (libbpf.c:11925)
==35150== by 0x4881C93: perf_event_read_simple.constprop.0 (libbpf.c:11553)
==35150== by 0x488FAC1: perf_buffer__process_records (libbpf.c:11947)
==35150== by 0x488FAC1: perf_buffer__poll (libbpf.c:11972)
==35150== by 0x4875199: telemetryStart (telemetryLoader.c:1572)
==35150== by 0x17E808: main (sysmonforlinux.c:1681)
==35150==
==35150== LEAK SUMMARY:
==35150== definitely lost: 189,142 bytes in 193 blocks
==35150== indirectly lost: 0 bytes in 0 blocks
==35150== possibly lost: 0 bytes in 0 blocks
==35150== still reachable: 38,988 bytes in 287 blocks
==35150== suppressed: 0 bytes in 0 blocks
==35150== Reachable blocks (those to which a pointer was found) are not shown.
==35150== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==35150==
==35150== Use --track-origins=yes to see where uninitialised values come from
==35150== For lists of detected and suppressed errors, rerun with: -s
==35150== ERROR SUMMARY: 7 errors from 7 contexts (suppressed: 0 from 0)
- Ngôn ngữ chính
- C
- Star
- 2.2k
- Fork
- 224
- Merge trung bình
- 4 giờ 50 phút
- Pull request đã merge (30 ngày)
- 3
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của microsoft/Sysmon-Linux
-
ProcessCreate: ParentImage is empty when the parent starts the process from a non-main threadĐang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
microsoft/Sysmon-Linux#253 ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 72/100
microsoft/Sysmon-Linux#252 ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 55/100
microsoft/Sysmon-Linux#247 ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 12/100
microsoft/Sysmon-Linux#246 · 3 bình luận ·
-
Sysmon service executable remains `(deleted)` after restart, causing repeated needrestart restarts and systemd start-limit-hitCó thể làm lại được @MarioHewardt đã nhận 31 ngày trước và không có pull request nào đang mở. Đang mở
microsoft/Sysmon-Linux#244 · 1 người được giao ·
Tất cả issue của microsoft/Sysmon-Linux
Issue tương tự
-
Implement looks_size reporterĐang mởenhancement good first issue help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
-
bug multiplayer status: planned
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
ChupathingyCE/chupathingyce#851 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
HigherOrderCO/Bend#2104 ·
-
Research radar digest 2026-W46Đang mởresearch-radar
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
good first issue help wanted program
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
hffgzktbcc-blip/ounce-core#297 ·
Maintainer thường phản hồi trong vòng 1 ngày