You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IceCC调度器日志中“<host> not eligible”含义及场景解读

Hey there, let's unpack that <hostname> not eligible log message you're seeing in your icecc-scheduler logs, and figure out why it keeps popping up when you're trying to diagnose slow build times with Icecream.

What Does " not eligible" Mean?

Put simply, this message tells you that the Icecream scheduler has determined the specified host can't be used to run the current compilation task. The scheduler checks each available node against a set of criteria before assigning a task, and if a node fails any of those checks, it gets marked as "not eligible" for that particular job.

Common Reasons You'll See This Message

Here are the most frequent causes behind this log entry:

  • Architecture mismatch: The compilation task is targeting a CPU architecture that the host doesn't support. For example, trying to run an x86_64 build task on an ARM-based node will trigger this.
  • Insufficient resources: The host is already under heavy load (high CPU usage, low available memory) or doesn't meet the minimum resource requirements for the task. Icecream avoids overloading nodes that can't handle additional work.
  • Mismatched build environment: Icecream requires consistent build toolchains across all nodes. If the host has a different version of the compiler (e.g., GCC 11 vs GCC 12) or lacks required libraries/headers needed for the task, it won't be eligible.
  • Node connectivity/state issues: The host might be offline, experiencing network issues that prevent communication with the scheduler, or marked as "disabled" in the scheduler's configuration.
  • Configuration restrictions: The scheduler could have explicit rules limiting which nodes can run certain tasks (like a blacklist for specific job types), or the host has reached its maximum allowed number of concurrent tasks.
How to Troubleshoot the Issue

To narrow down why your nodes are being marked ineligible, try these steps:

  1. Verify architecture compatibility: Run uname -m on both the machine submitting the build and the ineligible host to confirm they use the same CPU architecture.
  2. Check host resource usage: Log into the host and use tools like top, htop, or free -h to check CPU load and available memory. If the node is already maxed out, it won't accept new tasks.
  3. Validate toolchain consistency: Compare the compiler versions on the submitter machine and the host (e.g., gcc --version or clang --version). Icecream relies on matching toolchains to avoid build errors.
  4. Check node status in the scheduler: Run icecc-scheduler -l on the scheduler machine to see if the host is listed as "online". If it's missing or marked as offline, there's a connectivity problem.
  5. Review configuration files: Check the scheduler's config (usually /etc/icecc/scheduler.conf) and the host's iceccd config (/etc/icecc/iceccd.conf) for any restrictions on task assignment, like MAX_JOBS limits or excluded task types.

内容的提问来源于stack exchange,提问作者Spacemoose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:47:09