Sysinternals / ProcDump-for-Linux

A Linux version of the ProcDump Sysinternals tool
MIT License
2.94k stars 303 forks source link

1.2: test suite is failing #137

Closed kloczek closed 1 year ago

kloczek commented 2 years ago

Looks like test suite is failing

```console + cd ProcDump-for-Linux-1.2 + /usr/bin/make -O -j48 V=1 VERBOSE=1 test -j1 rm -rf obj rm -rf bin rm -rf /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/pkgbuild mkdir -p obj mkdir -p bin gcc -c -g -o obj/CoreDumpWriter.o src/CoreDumpWriter.c -Wall -I ./include -pthread -std=gnu99 gcc -c -g -o obj/Events.o src/Events.c -Wall -I ./include -pthread -std=gnu99 gcc -c -g -o obj/Handle.o src/Handle.c -Wall -I ./include -pthread -std=gnu99 gcc -c -g -o obj/Logging.o src/Logging.c -Wall -I ./include -pthread -std=gnu99 gcc -c -g -o obj/ProcDumpConfiguration.o src/ProcDumpConfiguration.c -Wall -I ./include -pthread -std=gnu99 gcc -c -g -o obj/Procdump.o src/Procdump.c -Wall -I ./include -pthread -std=gnu99 gcc -c -g -o obj/Process.o src/Process.c -Wall -I ./include -pthread -std=gnu99 gcc -c -g -o obj/TriggerThreadProcs.o src/TriggerThreadProcs.c -Wall -I ./include -pthread -std=gnu99 gcc -o bin/procdump obj/CoreDumpWriter.o obj/Events.o obj/Handle.o obj/Logging.o obj/ProcDumpConfiguration.o obj/Procdump.o obj/Process.o obj/TriggerThreadProcs.o -Wall -I ./include -pthread -std=gnu99 [16:56:39 - INFO]: Core dump 0 generated: ./ProcDumpTestApplication_cpu_2022-04-17_16:56:37.292201 gcc -c -g -o obj/ProcDumpTestApplication.o tests/integration/ProcDumpTestApplication.c -Wall -I ./include -pthread -std=gnu99 high_cpu_by_name.sh passed Starting high_cpu_custom_core_file_name.sh shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory PID: 292628 gcc -o bin/ProcDumpTestApplication obj/ProcDumpTestApplication.o -Wall -I ./include -pthread -std=gnu99 ./tests/integration/run.sh Starting high_cpu.sh PID: 292651 ChildrenPID: 292653 292651 292634 ChildPID: 292653 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -C 80 -o /tmp/dump_omBjZG/custom_dump_file -p 292653 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (292653) CPU Threshold: >=80 Commit Threshold: n/a Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: /tmp/dump_omBjZG Custom name for core dumps: custom_dump_file_. Press Ctrl-C to end monitoring without terminating the process. ChildrenPID: 292653 292634 292628 ChildPID: 292653 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -C 80 -p 292653 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (292653) CPU Threshold: >=80 Commit Threshold: n/a Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:56:48 - INFO]: CPU: 80% [16:56:53 - INFO]: CPU: 80% [16:57:08 - ERROR]: Target process is no longer alive [16:57:08 - ERROR]: Target process is no longer alive high_cpu_custom_core_file_name.sh failed high_cpu.sh failed Starting high_cpu_nonexisting_output_directory.sh Starting high_cpu_by_name.sh shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory PID: 292703 PID: 292705 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -C 50 -w ProcDumpTestApplication ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: ProcDumpTestApplication (pending) CPU Threshold: >=50 Commit Threshold: n/a Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:57:08 - INFO]: Waiting for process 'ProcDumpTestApplication' to launch... ChildrenPID: 292708 ChildPID: 292708 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -C 80 -o /tmp/dump_s5Pcyx/missing_subdir/custom_dump_file -p 292708 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. [16:57:09 - ERROR]: Invalid directory ("/tmp/dump_s5Pcyx/missing_subdir") provided for core dump output. Usage: procdump [OPTIONS...] TARGET OPTIONS -h Prints this help screen -C Trigger core dump generation when CPU exceeds or equals specified value (0 to 100 * nCPU) -c Trigger core dump generation when CPU is less than specified value (0 to 100 * nCPU) -M Trigger core dump generation when memory commit exceeds or equals specified value (MB) -m Trigger core dump generation when when memory commit is less than specified value (MB) -T Trigger when thread count exceeds or equals specified value. -F Trigger when file descriptor count exceeds or equals specified value. -G Trigger when signal with the specified value (num) is sent (uses PTRACE and will affect performance of target process). -I Polling frequency in milliseconds (default is 1000) -n Number of core dumps to write before exiting (default is 1) -s Consecutive seconds before dump is written (default is 10) -o Path and/or filename prefix where the core dump is written to -d Writes diagnostic logs to syslog TARGET must be exactly one of these: -p pid of the process -w Name of the process executable high_cpu_nonexisting_output_directory.sh passed Starting high_cpu_notdump.sh shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory PID: 292728 [16:57:10 - INFO]: Found process with PID 292731 ChildrenPID: 292730 ChildPID: 292730 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -C 80 -p 292730 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (292730) CPU Threshold: >=80 Commit Threshold: n/a Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:57:13 - INFO]: CPU: 50% [16:57:14 - INFO]: Core dump 0 generated: ./ProcDumpTestApplication_cpu_2022-04-17_16:57:13.292731 high_cpu_by_name.sh passed Starting high_cpu_custom_core_file_name.sh PID: 292817 ChildrenPID: 292819 292730 292728 ChildPID: 292819 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -C 80 -o /tmp/dump_8MIFt5/custom_dump_file -p 292819 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (292819) CPU Threshold: >=80 Commit Threshold: n/a Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: /tmp/dump_8MIFt5 Custom name for core dumps: custom_dump_file_. Press Ctrl-C to end monitoring without terminating the process. [16:57:23 - INFO]: CPU: 80% [16:57:25 - INFO]: Core dump 0 generated: /tmp/dump_8MIFt5/custom_dump_file_0.292819 high_cpu_custom_core_file_name.sh passed Starting high_cpu_nonexisting_output_directory.sh PID: 292901 ChildrenPID: 292903 292730 292728 ChildPID: 292903 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -C 80 -o /tmp/dump_6y5fJB/missing_subdir/custom_dump_file -p 292903 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. [16:57:26 - ERROR]: Invalid directory ("/tmp/dump_6y5fJB/missing_subdir") provided for core dump output. Usage: procdump [OPTIONS...] TARGET OPTIONS -h Prints this help screen -C Trigger core dump generation when CPU exceeds or equals specified value (0 to 100 * nCPU) -c Trigger core dump generation when CPU is less than specified value (0 to 100 * nCPU) -M Trigger core dump generation when memory commit exceeds or equals specified value (MB) -m Trigger core dump generation when when memory commit is less than specified value (MB) -T Trigger when thread count exceeds or equals specified value. -F Trigger when file descriptor count exceeds or equals specified value. -G Trigger when signal with the specified value (num) is sent (uses PTRACE and will affect performance of target process). -I Polling frequency in milliseconds (default is 1000) -n Number of core dumps to write before exiting (default is 1) -s Consecutive seconds before dump is written (default is 10) -o Path and/or filename prefix where the core dump is written to -d Writes diagnostic logs to syslog TARGET must be exactly one of these: -p pid of the process -w Name of the process executable high_cpu_nonexisting_output_directory.sh passed Starting high_cpu_notdump.sh PID: 292923 ChildrenPID: 292925 292730 292728 ChildPID: 292925 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -C 80 -p 292925 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (292925) CPU Threshold: >=80 Commit Threshold: n/a Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:57:30 - ERROR]: Target process is no longer alive high_cpu_notdump.sh passed Starting high_cpu_trigger_cpu_memory.sh shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory PID: 292949 ChildrenPID: 292951 292925 292923 ChildPID: 292951 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -M 1000 -C 80 -p 292951 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (292951) CPU Threshold: >=80 Commit Threshold: >=1000 Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:57:39 - INFO]: CPU: 80% [16:57:41 - INFO]: Core dump 0 generated: ./stress_ng_cpu_2022-04-17_16:57:39.292951 high_cpu_trigger_cpu_memory.sh passed Starting high_mem.sh shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory PID: 293036 ChildrenPID: 293039 293038 292925 292923 ChildPID: 293039 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -M 80 -p 293039 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (293039) CPU Threshold: n/a Commit Threshold: >=80 Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:57:43 - INFO]: Commit: 91 MB [16:57:44 - INFO]: Core dump 0 generated: ./stress_ng_commit_2022-04-17_16:57:43.293039 high_mem.sh passed Starting high_mem_notdump.sh shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory PID: 293121 ChildrenPID: 293124 293123 292925 292923 ChildPID: 293124 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -M 80 -p 293124 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (293124) CPU Threshold: n/a Commit Threshold: >=80 Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:57:47 - ERROR]: Target process is no longer alive high_cpu_notdump.sh passed Starting high_cpu_trigger_cpu_memory.sh PID: 293151 ChildrenPID: 293153 293124 293123 293121 ChildPID: 293153 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -M 1000 -C 80 -p 293153 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (293153) CPU Threshold: >=80 Commit Threshold: >=1000 Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:57:56 - INFO]: CPU: 80% [16:57:57 - INFO]: Core dump 0 generated: ./stress_ng_cpu_2022-04-17_16:57:56.293153 high_cpu_trigger_cpu_memory.sh passed Starting high_mem.sh PID: 293240 ChildrenPID: 293243 293242 293124 293123 293121 ChildPID: 293243 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -M 80 -p 293243 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (293243) CPU Threshold: n/a Commit Threshold: >=80 Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:57:59 - INFO]: Commit: 91 MB [16:58:01 - INFO]: Core dump 0 generated: ./stress_ng_commit_2022-04-17_16:57:59.293243 high_mem.sh passed Starting high_mem_notdump.sh PID: 293325 ChildrenPID: 293328 293327 293124 293123 293121 ChildPID: 293328 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -M 80 -p 293328 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (293328) CPU Threshold: n/a Commit Threshold: >=80 Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:58:05 - ERROR]: Target process is no longer alive high_mem_notdump.sh passed Starting high_mem_trigger_cpu_memory.sh shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory PID: 293352 ChildrenPID: 293355 293354 293328 293327 293325 ChildPID: 293355 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -C 100 -M 80 -p 293355 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (293355) CPU Threshold: >=100 Commit Threshold: >=80 Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:58:07 - INFO]: Commit: 91 MB [16:58:09 - INFO]: Core dump 0 generated: ./stress_ng_commit_2022-04-17_16:58:07.293355 high_mem_trigger_cpu_memory.sh passed Starting low_cpu.sh shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory PID: 293440 ChildrenPID: 293442 293328 293327 293325 ChildPID: 293442 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -c 20 -p 293442 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (293442) CPU Threshold: <20 Commit Threshold: n/a Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:58:11 - INFO]: CPU: 0% [16:58:12 - INFO]: Core dump 0 generated: ./stress_ng_cpu_2022-04-17_16:58:11.293442 low_cpu.sh passed Starting low_cpu_by_name.sh shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory PID: 293525 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -c 20 -w ProcDumpTestApplication ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: ProcDumpTestApplication (pending) CPU Threshold: <20 Commit Threshold: n/a Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:58:12 - INFO]: Waiting for process 'ProcDumpTestApplication' to launch... [16:58:14 - INFO]: Found process with PID 293528 [16:58:15 - INFO]: CPU: 0% [16:58:16 - INFO]: Core dump 0 generated: ./ProcDumpTestApplication_cpu_2022-04-17_16:58:15.293528 low_cpu_by_name.sh passed Starting low_cpu_notdump.sh shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory PID: 293604 ChildrenPID: 293606 293328 293327 293325 ChildPID: 293606 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -c 20 -p 293606 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (293606) CPU Threshold: <20 Commit Threshold: n/a Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:58:22 - ERROR]: Target process is no longer alive high_mem_notdump.sh passed Starting high_mem_trigger_cpu_memory.sh PID: 293630 ChildrenPID: 293633 293632 293606 293604 ChildPID: 293633 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -C 100 -M 80 -p 293633 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (293633) CPU Threshold: >=100 Commit Threshold: >=80 Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:58:24 - INFO]: Commit: 91 MB [16:58:25 - INFO]: Core dump 0 generated: ./stress_ng_commit_2022-04-17_16:58:24.293633 high_mem_trigger_cpu_memory.sh passed Starting low_cpu.sh PID: 293718 ChildrenPID: 293720 293606 293604 ChildPID: 293720 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -c 20 -p 293720 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (293720) CPU Threshold: <20 Commit Threshold: n/a Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:58:27 - INFO]: CPU: 0% [16:58:29 - INFO]: Core dump 0 generated: ./stress_ng_cpu_2022-04-17_16:58:27.293720 low_cpu.sh passed Starting low_cpu_by_name.sh PID: 293803 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -c 20 -w ProcDumpTestApplication ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: ProcDumpTestApplication (pending) CPU Threshold: <20 Commit Threshold: n/a Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:58:29 - INFO]: Waiting for process 'ProcDumpTestApplication' to launch... [16:58:31 - INFO]: Found process with PID 293806 [16:58:32 - INFO]: CPU: 0% [16:58:33 - INFO]: Core dump 0 generated: ./ProcDumpTestApplication_cpu_2022-04-17_16:58:32.293806 low_cpu_by_name.sh passed Starting low_cpu_notdump.sh PID: 293882 ChildrenPID: 293884 293606 293604 ChildPID: 293884 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -c 20 -p 293884 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (293884) CPU Threshold: <20 Commit Threshold: n/a Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:58:37 - ERROR]: Target process is no longer alive low_cpu_notdump.sh passed Starting low_cpu_trigger_cpu_memory.sh shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory PID: 293908 ChildrenPID: 293910 293884 293882 ChildPID: 293910 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -M 1000 -c 20 -p 293910 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (293910) CPU Threshold: <20 Commit Threshold: >=1000 Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:58:39 - INFO]: CPU: 0% [16:58:41 - INFO]: Core dump 0 generated: ./stress_ng_cpu_2022-04-17_16:58:39.293910 low_cpu_trigger_cpu_memory.sh passed Starting low_mem.sh shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory PID: 293995 ChildrenPID: 293998 293997 293884 293882 ChildPID: 293998 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -m 80 -p 293998 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (293998) CPU Threshold: n/a Commit Threshold: <80 Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:58:43 - INFO]: Commit: 41 MB [16:58:44 - INFO]: Core dump 0 generated: ./stress_ng_commit_2022-04-17_16:58:43.293998 low_mem.sh passed Starting low_mem_notdump.sh shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory PID: 294080 ChildrenPID: 294083 294082 293884 293882 ChildPID: 294083 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -m 80 -p 294083 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (294083) CPU Threshold: n/a Commit Threshold: <80 Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:58:54 - ERROR]: Target process is no longer alive low_cpu_notdump.sh passed Starting low_cpu_trigger_cpu_memory.sh PID: 294107 ChildrenPID: 294109 294083 294082 294080 ChildPID: 294109 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -M 1000 -c 20 -p 294109 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (294109) CPU Threshold: <20 Commit Threshold: >=1000 Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:58:56 - INFO]: CPU: 0% [16:58:57 - INFO]: Core dump 0 generated: ./stress_ng_cpu_2022-04-17_16:58:56.294109 low_cpu_trigger_cpu_memory.sh passed Starting low_mem.sh PID: 294194 ChildrenPID: 294197 294196 294083 294082 294080 ChildPID: 294197 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -m 80 -p 294197 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (294197) CPU Threshold: n/a Commit Threshold: <80 Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:59:00 - INFO]: Commit: 40 MB [16:59:01 - INFO]: Core dump 0 generated: ./stress_ng_commit_2022-04-17_16:59:00.294197 low_mem.sh passed Starting low_mem_notdump.sh PID: 294279 ChildrenPID: 294282 294281 294083 294082 294080 ChildPID: 294282 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -m 80 -p 294282 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (294282) CPU Threshold: n/a Commit Threshold: <80 Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:59:05 - ERROR]: Target process is no longer alive low_mem_notdump.sh passed Starting low_mem_trigger_cpu_memory.sh shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory PID: 294307 ChildrenPID: 294310 294309 294282 294281 294279 ChildPID: 294310 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -C 100 -m 80 -p 294310 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (294310) CPU Threshold: >=100 Commit Threshold: <80 Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:59:07 - INFO]: Commit: 41 MB [16:59:09 - INFO]: Core dump 0 generated: ./stress_ng_commit_2022-04-17_16:59:07.294310 low_mem_trigger_cpu_memory.sh passed Starting ondemand.sh shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory PID: 294395 ChildrenPID: 294397 294282 294281 294279 ChildPID: 294397 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -p 294397 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (294397) CPU Threshold: n/a Commit Threshold: n/a Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:59:10 - INFO]: Timed: [16:59:11 - INFO]: Core dump 0 generated: ./stress_ng_time_2022-04-17_16:59:10.294397 ondemand.sh passed Failed tests: high_cpu.sh high_cpu_custom_core_file_name.sh make: *** [Makefile:75: test] Error 1 [16:59:22 - ERROR]: Target process is no longer alive low_mem_notdump.sh passed Starting low_mem_trigger_cpu_memory.sh PID: 294483 ChildrenPID: 294486 294485 ChildPID: 294486 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -C 100 -m 80 -p 294486 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (294486) CPU Threshold: >=100 Commit Threshold: <80 Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:59:24 - INFO]: Commit: 41 MB [16:59:25 - INFO]: Core dump 0 generated: ./stress_ng_commit_2022-04-17_16:59:24.294486 low_mem_trigger_cpu_memory.sh passed Starting ondemand.sh PID: 294571 ChildrenPID: 294573 ChildPID: 294573 /home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -p 294573 ProcDump v1.2 - Sysinternals process dump utility Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license. Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi Monitors a process and writes a dump file when the process meets the specified criteria. Process: stress-ng (294573) CPU Threshold: n/a Commit Threshold: n/a Thread Threshold: n/a File descriptor Threshold: n/a Signal: n/a Polling interval (ms): 1000 Threshold (s): 10 Number of Dumps: 1 Output directory for core dumps: . Press Ctrl-C to end monitoring without terminating the process. [16:59:26 - INFO]: Timed: [16:59:28 - INFO]: Core dump 0 generated: ./stress_ng_time_2022-04-17_16:59:26.294573 ondemand.sh passed Failed tests: high_cpu.sh make: *** [Makefile:75: test] Error 1 ```
MarioHewardt commented 2 years ago

What environment is this running on? I just cloned it and ran make -O -j48 V=1 VERBOSE=1 test -j1 without any problems.

What happens if you try a single test (sudo ./high_cpu.sh)?

MarioHewardt commented 2 years ago

Hey @kloczek - just checking in to see if you have any updates on this?

kloczek commented 2 years ago

here it is ..

[tkloczko@devel-g2v scenarios]$ ./high_cpu.sh
PID: 4064649
ChildrenPID: 4064651
ChildPID: 4064651
/home/tkloczko/rpmbuild/BUILD/ProcDump-for-Linux-1.2/bin/procdump -C 80  -p 4064651

ProcDump v1.2 - Sysinternals process dump utility
Copyright (C) 2020 Microsoft Corporation. All rights reserved. Licensed under the MIT license.
Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi
Monitors a process and writes a dump file when the process meets the
specified criteria.

Process:                stress-ng (4064651)
CPU Threshold:          >=80
Commit Threshold:       n/a
Thread Threshold:               n/a
File descriptor Threshold:              n/a
Signal:         n/a
Polling interval (ms):  1000
Threshold (s):  10
Number of Dumps:        1
Output directory for core dumps:        .

Press Ctrl-C to end monitoring without terminating the process.

[03:43:00 - WARN]: Procdump not running with elevated credentials. If your uid does not match the uid of the target process procdump will not be able to capture memory dumps
[03:43:08 - INFO]: CPU: 80%
[03:43:09 - INFO]: Core dump 0 generated: ./stress_ng_cpu_2022-05-26_03:43:08.4064651

I just retested my whole package and as long as test suite is executed with -j1 everything looks like it is OK. With parallelisation it fails.

MarioHewardt commented 1 year ago

I see. Yes, when running the tests via make (specifying the -jX flag where X > 1) the tests might not work. That is by design as some of the tests rely on procdump monitoring by process name. If you run them in parallel you might end up with multiple processes with the same name at the same time. We can add a check in the Makefile that makes sure -j1 has been set and error otherwise.

MarioHewardt commented 1 year ago

I'm closing this issue. If there are any concerns, please re-open.