magma icon indicating copy to clipboard operation
magma copied to clipboard

KeyError: "None of ['TIME'] are in the columns"

Open jiangjingzhi2003 opened this issue 5 months ago • 0 comments

Hi, I am running Magma for aflplusplus with all programs.

When I try to use tools/benchd/exp2json.py tools/captain/workdir3 bugs_rest.json to generate summary, I encountered following errors: WARNING:root:aflplusplus/poppler/pdf_fuzzer/0 contains no monitor logs. Check the corresponding campaign log file for more information: tools/captain/workdir3/log/aflplusplus_poppler_pdf_fuzzer_0_container.log WARNING:root:aflplusplus/poppler/pdf_fuzzer/8 contains no monitor logs. Check the corresponding campaign log file for more information: tools/captain/workdir3/log/aflplusplus_poppler_pdf_fuzzer_8_container.log ERROR:root:Encountered exception when processing aflplusplus/poppler/pdf_fuzzer/0. Details: "None of ['TIME'] are in the columns" Traceback (most recent call last): File "/home/jingzhijiang/magma/tools/benchd/exp2json.py", line 152, in process_one_campaign df = generate_monitor_df(os.path.join(dumpdir, "monitor"), path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/jingzhijiang/magma/tools/benchd/exp2json.py", line 130, in generate_monitor_df df.set_index('TIME', inplace=True) File "/home/jingzhijiang/miniconda3/lib/python3.12/site-packages/pandas/core/frame.py", line 6129, in set_index raise KeyError(f"None of {missing} are in the columns") KeyError: "None of ['TIME'] are in the columns" ERROR:root:Encountered exception when processing aflplusplus/poppler/pdf_fuzzer/8. Details: "None of ['TIME'] are in the columns" Traceback (most recent call last): File "/home/jingzhijiang/magma/tools/benchd/exp2json.py", line 152, in process_one_campaign df = generate_monitor_df(os.path.join(dumpdir, "monitor"), path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/jingzhijiang/magma/tools/benchd/exp2json.py", line 130, in generate_monitor_df df.set_index('TIME', inplace=True) File "/home/jingzhijiang/miniconda3/lib/python3.12/site-packages/pandas/core/frame.py", line 6129, in set_index raise KeyError(f"None of {missing} are in the columns") KeyError: "None of ['TIME'] are in the columns"

And my monitor/ for some of my run is empty. How should I resolve this?

Here is my captainrc file:

# Bash syntax and is sourced by the script to access the variables. Variables
# are mandatory unless marked with [brackets].

###
## Configuration parameters
###

# WORKDIR: path to directory where shared volumes will be created
WORKDIR=./workdir3

# REPEAT: number of campaigns to run per program (per fuzzer)
REPEAT=10

# [WORKER_MODE]: defines the type of CPU resources to allocate (default: 1)
# - 1: logical cores (possibly SMT-enabled)
# - 2: physical cores
# - 3: physical sockets (1 worker per CPU socket)
# WORKER_MODE=1

# [WORKERS]: number of worker threads (default: all cores)
WORKERS=100

# [WORKER_POOL]: a space-separated list of logical cores to allocate
# WORKER_POOL="1 3 5 7 9"

# [CAMPAIGN_WORKERS]: number of workers to allocate for a campaign (default: 1)
# CAMPAIGN_WORKERS=1

# [TIMEOUT]: time to run each campaign. This variable supports one-letter
# suffixes to indicate duration (s: seconds, m: minutes, h: hours, d: days)
# (default: 1m)
TIMEOUT=24h

# [POLL]: time (in seconds) between polls (default: 5)
POLL=5

# [CACHE_ON_DISK]: if set, the cache workdir is mounted on disk instead of
# in-memory (default: unset)
# CACHE_ON_DISK=1

# [NO_ARCHIVE]: if set, campaign workdirs will not be tarballed (default: unset)
# NO_ARCHIVE=1

# [TMPFS_SIZE]: the size of the tmpfs mounted volume. This only applies when
# CACHE_ON_DISK is not set (default: 50g)
# TMPFS_SIZE=16g

# [MAGMA]: path to magma root (default: ../../)
# MAGMA=/path/to/magma/

# [CANARY_MODE]: defines the mode of canaries at compile time (default: 1)
# - 1: without fixes, with canaries
# - 2: without fixes, without canaries
# - 3: with fixes, without canaries
# CANARY_MODE=3

# [ISAN]: if set, build the benchmark with ISAN/fatal canaries (default: unset)
# ISAN=1

# [HARDEN]: if set, build the benchmark with hardened canaries (default: unset)
# HARDEN=1

# [POC_EXTRACT]: if set, run the extract.sh script after the campaign is done
# (default: unset)
# POC_EXTRACT=1


###
## Campaigns to run
###

# FUZZERS: an array of fuzzer names (from magma/fuzzers/*) to evaluate
FUZZERS=(aflplusplus)

# [fuzzer_TARGETS]: an array of target names (from magma/targets/*) to fuzz with
# `fuzzer`. The `fuzzer` prefix is a fuzzer listed in the FUZZERS array
# (default: all targets)
# afl_TARGETS=(libpng libtiff libxml2)
aflplusplus_TARGETS=(php poppler sqlite3)

# [fuzzer_target_PROGRAMS]: an array of program names (from
# magma/targets/target/configrc) to use as execution drivers when fuzzing the
# `target`
# afl_libtiff_PROGRAMS=(tiffcp)

# [fuzzer_target_FUZZARGS]: a string containing fuzzer/target-specific arguments
# when fuzzing `target` with `fuzzer`
# afl_libpng_FUZZARGS="-x /magma_shared/png.dict"

# [fuzzer_CAMPAIGN_WORKERS]: overrides the global CAMPAIGN_WORKERS setting
# afl_CAMPAIGN_WORKERS=3```

jiangjingzhi2003 avatar Aug 10 '25 21:08 jiangjingzhi2003