Repository navigation
objdump becomes zombie when running make check on linux-arm64 #38
Copy link
Copy link
Closed
Description
When working on the CI:
I tried linux-arm64 and macos-arm64 runners. The macos-arm64 finished properly, but the linux-arm64 went stuck.
I reproduced it on an Orange PI 5:
$ pstree
make─┬─test-driver───exploitability_───objdump
├─test-driver───minidump_proces───objdump
└─test-driver───disassembler_ob───objdump
$ ps a
6474 pts/0 S+ 0:00 /bin/bash -c set +e; bases='src/common/safe_math_unittest.log src/common/test_assembler_unittest.log src/common/dwarf/dwarf2reader_lineinfo_unittest.log src/common/dwarf/dwarf2reader_splitfunctions_unittest.log src/processor/address_map_unittest.log src/processor/basic_source_line_resolver_unittest.log src/processor/cfi_frame_info_unittest.log src/processor/contained_range_map_unittest.log src/processor/disassembler_x86_unittest.log src/processor/exploitability_unittest.log src/processor/fast_source_line_resolver_unittest.log src/processor/map_serializers_unittest.log src/processor/microdump_processor_unittest.log src/processor/minidump_processor_unittest.log src/processor/minidump_unittest.log src/processor/static_address_map_unittest.log src/processor/static_contained_range_map_unittest.log src/processor/static_map_unittest.log src/processor/static_range_map_unittest.log src/processor/pathname_stripper_unittest.log src/processor/postfix_evaluator_unittest.log src/processor/proc_maps_linux_unittest.log src/processor/range_map_truncate_lower_unittest.log src/processor/range_map_truncate_upper_unittest.log src/processor/range_map_unittest.log src/processor/stackwalker_amd64_unittest.log src/processor/stackwalker_arm_unittest.log src/processor/stackwalker_arm64_unittest.log src/processor/stackwalker_address_list_unittest.log src/processor/stackwalker_mips_unittest.log src/processor/stackwalker_mips64_unittest.log src/processor/stackwalker_riscv_unittest.log src/processor/stackwalker_riscv64_unittest.log src/processor/stackwalker_x86_unittest.log src/processor/synth_minidump_unittest.log src/processor/disassembler_objdump_unittest.log src/common/linux/scoped_pipe_unittest.log src/common/linux/scoped_tmpfile_unittest.log src/client/linux/linux_client_unittest.log src/common/linux/google_crashdump_uploader_test.log src/common/dumper_unittest.log src/tools/linux/md2core/minidump_2_core_unittest.log src/tools/linux/dump_syms/dump_syms_test.log src/tools/windows/dump_syms_dwarf/dump_syms_dwarf_test.log'; bases=`for i in $bases; do echo $i; done | sed 's/\.log$//'`; bases=`echo $bases`; \ log_list=`for i in $bases; do echo $i.log; done`; \ trs_list=`for i in $bases; do echo $i.trs; done`; \ log_list=`echo $log_list`; trs_list=`echo $trs_list`; \ make test-suite.log TEST_LOGS="$log_list"; \ exit $?;
6483 pts/0 S+ 0:00 make test-suite.log TEST_LOGS=src/common/safe_math_unittest.log src/common/test_assembler_unittest.log src/common/dwarf/dwarf2reader_lineinfo_unittest.log src/common/dwarf/dwarf2reader_splitfunctions_unittest.log src/processor/address_map_unittest.log src/processor/basic_source_line_resolver_unittest.log src/processor/cfi_frame_info_unittest.log src/processor/contained_range_map_unittest.log src/processor/disassembler_x86_unittest.log src/processor/exploitability_unittest.log src/processor/fast_source_line_resolver_unittest.log src/processor/map_serializers_unittest.log src/processor/microdump_processor_unittest.log src/processor/minidump_processor_unittest.log src/processor/minidump_unittest.log src/processor/static_address_map_unittest.log src/processor/static_contained_range_map_unittest.log src/processor/static_map_unittest.log src/processor/static_range_map_unittest.log src/processor/pathname_stripper_unittest.log src/processor/postfix_evaluator_unittest.log src/processor/proc_maps_linux_unittest.log src/processor/range_map_truncate_lower_unittest.log src/processor/range_map_truncate_upper_unittest.log src/processor/range_map_unittest.log src/processor/stackwalker_amd64_unittest.log src/processor/stackwalker_arm_unittest.log src/processor/stackwalker_arm64_unittest.log src/processor/stackwalker_address_list_unittest.log src/processor/stackwalker_mips_unittest.log src/processor/stackwalker_mips64_unittest.log src/processor/stackwalker_riscv_unittest.log src/processor/stackwalker_riscv64_unittest.log src/processor/stackwalker_x86_unittest.log src/processor/synth_minidump_unittest.log src/processor/disassembler_objdump_unittest.log src/common/linux/scoped_pipe_unittest.log src/common/linux/scoped_tmpfile_unittest.log src/client/linux/linux_client_unittest.log src/common/linux/google_crashdump_uploader_test.log src/common/dumper_unittest.log src/tools/linux/md2core/minidump_2_core_unittest.log src/tools/linux/dump_syms/dump_syms_test.log src/tools/windows/dump_syms_dwarf/dump_syms_dwarf_test.log
6760 pts/0 Z+ 0:00 [objdump] <defunct>
6773 pts/0 S+ 0:00 /bin/sh ./autotools/test-driver --test-name src/processor/disassembler_objdump_unittest --log-file src/processor/disassembler_objdump_unittest.log --trs-file src/processor/disassembler_objdump_unittest.trs --color-tests yes --enable-hard-errors yes --expect-failure no -- ./src/processor/disassembler_objdump_unittest
6781 pts/0 S+ 0:00 ./src/processor/disassembler_objdump_unittest
6796 pts/0 Z+ 0:00 [objdump] <defunct>
6865 pts/0 Z+ 0:00 [objdump] <defunct>
I have no idea about what's going on there, objdump should not go zombie like that.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
illwieckz commentedon Oct 11, 2026
When interrupting, it confirms the unittests going zombie:
illwieckz commentedon Oct 11, 2026
Now fixed in my CI branch:
There was two bugs:
objdumpexits with an error, it hangs while reading its output pipe. The parent process still holds the pipe's write end open, preventingEOFfrom being detected. Closing the pipe in the parent process properly fixes the hang, but the tests still fail.objdumpon the non-x86 Linux system does not support the requested x86 target architectures. Usingx86_64-linux-gnu-objdumpinstead ofobjdumpwhen not running on x86 fixes it, the tests now runs properly.illwieckz commentedon Oct 11, 2026