hero_compute --start fails with "Symbolic link loop (os error 40)" #70

Closed
opened 2026-04-06 19:07:12 +00:00 by mahmoud · 1 comment
Owner

Problem

hero_compute --start fails immediately with:

Failed to start hero_compute: Symbolic link loop (os error 40)

This happens on a fresh install (no symlinks in ~/hero) with hero_compute v0.1.3 on Ubuntu 24.04.

Steps to Reproduce

  1. Fresh install via curl -sfL .../scripts/install.sh | bash
  2. All binaries install successfully, hero_proc_server and mycelium start fine
  3. Run: hero_compute --start --mode worker --master-ip <IP>
  4. Immediate failure: Symbolic link loop (os error 40)

Also fails in single-node mode: hero_compute --start

Environment

  • OS: Ubuntu 24.04.3 LTS
  • Arch: x86_64
  • hero_compute: v0.1.3
  • hero_proc_server: v0.4.4 (running)
  • mycelium: v0.7.3 (running)
  • No symlinks in ~/hero (verified with find ~/hero -type l)

Investigation

  • readlink -f ~/hero/bin/hero_compute resolves correctly (not a filesystem symlink)
  • strace shows the ELOOP originates from inside the Rust binary, not from filesystem symlinks
  • The error is likely from std::os::unix::fs::symlink() or std::fs::canonicalize() hitting a path that loops

Suspected Root Cause

The --start command registers services with hero_proc. It may be creating a symlink (e.g. for the binary or a socket) that points back to itself, or calling canonicalize() on a path with too many indirections.

## Problem `hero_compute --start` fails immediately with: ``` Failed to start hero_compute: Symbolic link loop (os error 40) ``` This happens on a fresh install (no symlinks in ~/hero) with hero_compute v0.1.3 on Ubuntu 24.04. ## Steps to Reproduce 1. Fresh install via `curl -sfL .../scripts/install.sh | bash` 2. All binaries install successfully, hero_proc_server and mycelium start fine 3. Run: `hero_compute --start --mode worker --master-ip <IP>` 4. Immediate failure: `Symbolic link loop (os error 40)` Also fails in single-node mode: `hero_compute --start` ## Environment - OS: Ubuntu 24.04.3 LTS - Arch: x86_64 - hero_compute: v0.1.3 - hero_proc_server: v0.4.4 (running) - mycelium: v0.7.3 (running) - No symlinks in ~/hero (verified with `find ~/hero -type l`) ## Investigation - `readlink -f ~/hero/bin/hero_compute` resolves correctly (not a filesystem symlink) - `strace` shows the ELOOP originates from inside the Rust binary, not from filesystem symlinks - The error is likely from `std::os::unix::fs::symlink()` or `std::fs::canonicalize()` hitting a path that loops ## Suspected Root Cause The `--start` command registers services with hero_proc. It may be creating a symlink (e.g. for the binary or a socket) that points back to itself, or calling `canonicalize()` on a path with too many indirections.
mahmoud self-assigned this 2026-04-07 08:45:46 +00:00
mahmoud added this to the ACTIVE project 2026-04-07 08:45:48 +00:00
mahmoud added this to the now milestone 2026-04-07 08:45:52 +00:00
Author
Owner

fixed

fixed
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_compute#70
No description provided.