dimensionalOS / dimensionalOS/dimos

lfs.dimensionalos.com 404

Open
#2,495 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Python
Stars
4.5k
Forks
808
Avg merge
3d 5h
Merged PRs (30d)
233

Description

Description

System

22.04

Robot/Sim/Hardware (including firmware version)

Go2

Steps to reproduce

DimOS version

main latest

Logs / screenshots

dimos installed in /home/th/dimensional

▸ DimOS uses LCM transport which needs larger UDP buffers:
sudo sysctl -w net.core.rmem_max=67108864
sudo sysctl -w net.core.rmem_default=67108864

net.core.rmem_max = 67108864
net.core.rmem_default = 67108864
✓ LCM buffers configured
▸ verifying installation...
✓ python import: dimos ✓
✓ dimos CLI available

▸ post-install smoke test

▸ running: dimos --simulation run unitree-go2 (Ctrl+C to stop)
07:41:13.312[inf][dimos/robot/cli/dimos.py ] Starting DimOS
07:41:33.488[inf][dination/module_coordinator.py] Building the blueprint
07:41:33.544[war][ce/system_configurator/base.py] System configuration changes are recommended/required:

07:41:33.545[war][ce/system_configurator/base.py] - Multicast: sudo ip link set lo multicast on

  • Multicast: sudo ip route add 224.0.0.0/4 dev lo

07:41:33.567[inf][ce/system_configurator/base.py] System configuration completed.
07:41:33.567[inf][dination/module_coordinator.py] Starting the modules
07:41:33.625[inf][ation/worker_manager_python.py] Worker pool started. n_workers=9
07:41:36.619[inf][/coordination/python_worker.py] Deployed module. module=PatrollingModule module_id=7 worker_id=7
07:41:36.755[inf][/coordination/python_worker.py] Deployed module. module=ReplanningAStarPlanner module_id=5 worker_id=5
07:41:36.779[inf][/coordination/python_worker.py] Deployed module. module=WavefrontFrontierExplorer module_id=6 worker_id=6
07:41:36.900[inf][et_vis/websocket_vis_module.py] WebSocket visualization module initialized on port 7779, GPS goal tracking enabled
07:41:36.901[inf][/coordination/python_worker.py] Deployed module. module=WebsocketVisModule module_id=2 worker_id=2
07:41:39.044[inf][/coordination/python_worker.py] Deployed module. module=CostMapper module_id=4 worker_id=4
07:41:39.639[inf][dimos/utils/data.py ] Using local user data directory at '/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/data'
07:41:40.083[inf][/coordination/python_worker.py] Deployed module. module=RerunBridgeModule module_id=0 worker_id=0
batch response: 404 Not Found: Cannot find any of the requested objects
error: failed to fetch some objects from 'https://lfs.dimensionalos.com/dimensionalOS/dimos'
07:41:43.663[inf][/coordination/python_worker.py] Deployed module. module=VoxelGridMapper module_id=3 worker_id=3
07:41:43.664[inf][ation/worker_manager_python.py] Shutting down all workers...
07:41:43.669[inf][/coordination/python_worker.py] Worker stopping module... module=PatrollingModule module_id=7 worker_id=7
07:41:43.706[inf][/coordination/python_worker.py] Worker module stopped. module=PatrollingModule module_id=7 worker_id=7
07:41:43.714[inf][/coordination/python_worker.py] Worker stopping module... module=WavefrontFrontierExplorer module_id=6 worker_id=6
07:41:43.749[inf][/coordination/python_worker.py] Worker module stopped. module=WavefrontFrontierExplorer module_id=6 worker_id=6
07:41:43.758[inf][/coordination/python_worker.py] Worker stopping module... module=ReplanningAStarPlanner module_id=5 worker_id=5
07:41:43.759[inf][nning_a_star/global_planner.py] Cancelling goal. arrived=False but_will_try_again=False
07:41:43.763[inf][anning_a_star/local_planner.py] changed state state=idle
07:41:43.763[inf][nning_a_star/global_planner.py] Cancelling goal. arrived=False but_will_try_again=False
07:41:43.763[inf][anning_a_star/local_planner.py] changed state state=idle
07:41:43.763[inf][anning_a_star/local_planner.py] changed state state=idle
07:41:43.777[inf][/coordination/python_worker.py] Worker module stopped. module=ReplanningAStarPlanner module_id=5 worker_id=5
07:41:43.784[inf][/coordination/python_worker.py] Worker stopping module... module=CostMapper module_id=4 worker_id=4
07:41:43.803[inf][/coordination/python_worker.py] Worker module stopped. module=CostMapper module_id=4 worker_id=4
07:41:43.828[inf][/coordination/python_worker.py] Worker stopping module... module=VoxelGridMapper module_id=3 worker_id=3
07:41:43.864[inf][/coordination/python_worker.py] Worker module stopped. module=VoxelGridMapper module_id=3 worker_id=3
07:41:43.933[inf][/coordination/python_worker.py] Worker stopping module... module=WebsocketVisModule module_id=2 worker_id=2
07:41:43.969[inf][/coordination/python_worker.py] Worker module stopped. module=WebsocketVisModule module_id=2 worker_id=2
07:41:44.009[inf][/coordination/python_worker.py] Worker stopping module... module=RerunBridgeModule module_id=0 worker_id=0
07:41:44.041[inf][/coordination/python_worker.py] Worker module stopped. module=RerunBridgeModule module_id=0 worker_id=0
07:41:44.076[inf][ation/worker_manager_python.py] All workers shut down
07:41:44.084[err][dimos/utils/logging_config.py ] Uncaught exception occurred
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/robot/cli/dimos.py:275 in run │
│ │
│ 272 │ if cli_config_overrides: │
│ 273 │ │ kwargs["g"] = cli_config_overrides │
│ 274 │ │
│ ❱ 275 │ coordinator = ModuleCoordinator.build(blueprint, kwargs) │
│ 276 │ │
│ 277 │ if daemon: │
│ 278 │ │ # Health check before daemonizing — catch early crashes │
│ │
│ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/module_coordinat │
│ or.py:268 in build │
│ │
│ 265 │ │ coordinator = cls(g=global_config) │
│ 266 │ │ coordinator.start() │
│ 267 │ │ │
│ ❱ 268 │ │ _deploy_all_modules(blueprint, coordinator, global_config, blueprint_args) │
│ 269 │ │ coordinator._connect_streams(blueprint) │
│ 270 │ │ _connect_module_refs(blueprint, coordinator) │
│ 271 │
│ │
│ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/module_coordinat │
│ or.py:655 in _deploy_all_modules │
│ │
│ 652 │ for bp in blueprint.active_blueprints: │
│ 653 │ │ module_specs.append((bp.module, gc, bp.kwargs.copy())) │
│ 654 │ │
│ ❱ 655 │ module_coordinator.deploy_parallel(module_specs, blueprint_args) │
│ 656 │ │
│ 657 │ for bp in blueprint.active_blueprints: │
│ 658 │ │ module_coordinator._deployed_atoms[bp.module] = bp │
│ │
│ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/module_coordinat │
│ or.py:165 in deploy_parallel │
│ │
│ 162 │ │ │ │ results[index] = module │
│ 163 │ │ │
│ 164 │ │ try: │
│ ❱ 165 │ │ │ safe_thread_map(list(specs_by_deployment.keys()), _deploy_group) │
│ 166 │ │ except: │
│ 167 │ │ │ self.stop() │
│ 168 │ │ │ raise │
│ │
│ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/safe_thread_map.py:84 in │
│ safe_thread_map │
│ │
│ 81 │ │ if on_errors is not None: │
│ 82 │ │ │ zipped = [(items[i], outcomes[i]) for i in range(len(items))] │
│ 83 │ │ │ return on_errors(zipped, successes, errors) # type: ignore[no-any-return] │
│ ❱ 84 │ │ raise ExceptionGroup("safe_thread_map failed", errors) │
│ 85 │ │
│ 86 │ return [outcomes[i] for i in range(len(items))] # type: ignore[misc] │
│ 87 │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
ExceptionGroup: safe_thread_map failed (1 sub-exception)

╭──────────────────────────────────────── Sub-exception #1 ────────────────────────────────────────╮
│ ╭───────────────────────────── Traceback (most recent call last) ──────────────────────────────╮ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/safe_thread_map.py:68 in │ │
│ │ safe_thread_map │ │
│ │ │ │
│ │ 65 │ │ for fut in as_completed(futures): │ │
│ │ 66 │ │ │ idx = futures[fut] │ │
│ │ 67 │ │ │ try: │ │
│ │ ❱ 68 │ │ │ │ outcomes[idx] = fut.result() │ │
│ │ 69 │ │ │ except Exception as e: │ │
│ │ 70 │ │ │ │ outcomes[idx] = e │ │
│ │ 71 │ │
│ │ │ │
│ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurrent/f │ │
│ │ utures/_base.py:449 in result │ │
│ │ │ │
│ │ 446 │ │ │ │ if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]: │ │
│ │ 447 │ │ │ │ │ raise CancelledError() │ │
│ │ 448 │ │ │ │ elif self._state == FINISHED: │ │
│ │ ❱ 449 │ │ │ │ │ return self.__get_result() │ │
│ │ 450 │ │ │ │ │ │
│ │ 451 │ │ │ │ self._condition.wait(timeout) │ │
│ │ 452 │ │
│ │ │ │
│ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurrent/f │ │
│ │ utures/_base.py:401 in __get_result │ │
│ │ │ │
│ │ 398 │ def __get_result(self): │ │
│ │ 399 │ │ if self._exception: │ │
│ │ 400 │ │ │ try: │ │
│ │ ❱ 401 │ │ │ │ raise self._exception │ │
│ │ 402 │ │ │ finally: │ │
│ │ 403 │ │ │ │ # Break a reference cycle with the exception in self._exception │ │
│ │ 404 │ │ │ │ self = None │ │
│ │ │ │
│ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurrent/f │ │
│ │ utures/thread.py:59 in run │ │
│ │ │ │
│ │ 56 │ │ │ return │ │
│ │ 57 │ │ │ │
│ │ 58 │ │ try: │ │
│ │ ❱ 59 │ │ │ result = self.fn(*self.args, **self.kwargs) │ │
│ │ 60 │ │ except BaseException as exc: │ │
│ │ 61 │ │ │ self.future.set_exception(exc) │ │
│ │ 62 │ │ │ # Break a reference cycle with the exception 'exc' │ │
│ │ │ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/module_coord │ │
│ │ inator.py:160 in _deploy_group │ │
│ │ │ │
│ │ 157 │ │ results: list[Any] = [None] * len(module_specs) │ │
│ │ 158 │ │ │ │
│ │ 159 │ │ def _deploy_group(dep: str) -> None: │ │
│ │ ❱ 160 │ │ │ deployed = self._managers[dep].deploy_parallel(specs_by_deployment[dep], b │ │
│ │ 161 │ │ │ for index, module in zip(indices_by_deployment[dep], deployed, strict=True │ │
│ │ 162 │ │ │ │ results[index] = module │ │
│ │ 163 │ │
│ │ │ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/worker_manag │ │
│ │ er_python.py:163 in deploy_parallel │ │
│ │ │ │
│ │ 160 │ │ │ │
│ │ 161 │ │ try: │ │
│ │ 162 │ │ │ # item: (worker, module_class, global_config, kwargs) │ │
│ │ ❱ 163 │ │ │ return safe_thread_map( │ │
│ │ 164 │ │ │ │ assignments, │ │
│ │ 165 │ │ │ │ lambda item: RPCClient(item[0].deploy_module(item[1], item[2], item[3] │ │
│ │ 166 │ │ │ ) │ │
│ │ │ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/safe_thread_map.py:84 in │ │
│ │ safe_thread_map │ │
│ │ │ │
│ │ 81 │ │ if on_errors is not None: │ │
│ │ 82 │ │ │ zipped = [(items[i], outcomes[i]) for i in range(len(items))] │ │
│ │ 83 │ │ │ return on_errors(zipped, successes, errors) # type: ignore[no-any-return] │ │
│ │ ❱ 84 │ │ raise ExceptionGroup("safe_thread_map failed", errors) │ │
│ │ 85 │ │ │
│ │ 86 │ return [outcomes[i] for i in range(len(items))] # type: ignore[misc] │ │
│ │ 87 │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ ExceptionGroup: safe_thread_map failed (1 sub-exception) │
│ │
│ ╭────────────────────────────────────── Sub-exception #1 ──────────────────────────────────────╮ │
│ │ ╭─────────────────────────── Traceback (most recent call last) ────────────────────────────╮ │ │
│ │ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/safe_thread_map.py:6 │ │ │
│ │ │ 8 in safe_thread_map │ │ │
│ │ │ │ │ │
│ │ │ 65 │ │ for fut in as_completed(futures): │ │ │
│ │ │ 66 │ │ │ idx = futures[fut] │ │ │
│ │ │ 67 │ │ │ try: │ │ │
│ │ │ ❱ 68 │ │ │ │ outcomes[idx] = fut.result() │ │ │
│ │ │ 69 │ │ │ except Exception as e: │ │ │
│ │ │ 70 │ │ │ │ outcomes[idx] = e │ │ │
│ │ │ 71 │ │ │
│ │ │ │ │ │
│ │ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurre │ │ │
│ │ │ nt/futures/_base.py:449 in result │ │ │
│ │ │ │ │ │
│ │ │ 446 │ │ │ │ if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]: │ │ │
│ │ │ 447 │ │ │ │ │ raise CancelledError() │ │ │
│ │ │ 448 │ │ │ │ elif self._state == FINISHED: │ │ │
│ │ │ ❱ 449 │ │ │ │ │ return self.__get_result() │ │ │
│ │ │ 450 │ │ │ │ │ │ │
│ │ │ 451 │ │ │ │ self._condition.wait(timeout) │ │ │
│ │ │ 452 │ │ │
│ │ │ │ │ │
│ │ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurre │ │ │
│ │ │ nt/futures/_base.py:401 in __get_result │ │ │
│ │ │ │ │ │
│ │ │ 398 │ def __get_result(self): │ │ │
│ │ │ 399 │ │ if self._exception: │ │ │
│ │ │ 400 │ │ │ try: │ │ │
│ │ │ ❱ 401 │ │ │ │ raise self._exception │ │ │
│ │ │ 402 │ │ │ finally: │ │ │
│ │ │ 403 │ │ │ │ # Break a reference cycle with the exception in self._exception │ │ │
│ │ │ 404 │ │ │ │ self = None │ │ │
│ │ │ │ │ │
│ │ │ /home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/concurre │ │ │
│ │ │ nt/futures/thread.py:59 in run │ │ │
│ │ │ │ │ │
│ │ │ 56 │ │ │ return │ │ │
│ │ │ 57 │ │ │ │ │
│ │ │ 58 │ │ try: │ │ │
│ │ │ ❱ 59 │ │ │ result = self.fn(*self.args, **self.kwargs) │ │ │
│ │ │ 60 │ │ except BaseException as exc: │ │ │
│ │ │ 61 │ │ │ self.future.set_exception(exc) │ │ │
│ │ │ 62 │ │ │ # Break a reference cycle with the exception 'exc' │ │ │
│ │ │ │ │ │
│ │ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/worker_m │ │ │
│ │ │ anager_python.py:165 in │ │ │
│ │ │ │ │ │
│ │ │ 162 │ │ │ # item: (worker, module_class, global_config, kwargs) │ │ │
│ │ │ 163 │ │ │ return safe_thread_map( │ │ │
│ │ │ 164 │ │ │ │ assignments, │ │ │
│ │ │ ❱ 165 │ │ │ │ lambda item: RPCClient(item[0].deploy_module(item[1], item[2], ite │ │ │
│ │ │ 166 │ │ │ ) │ │ │
│ │ │ 167 │ │ except: │ │ │
│ │ │ 168 │ │ │ self.stop() │ │ │
│ │ │ │ │ │
│ │ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/python_w │ │ │
│ │ │ orker.py:242 in deploy_module │ │ │
│ │ │ │ │ │
│ │ │ 239 │ │ │ │ response: WorkerResponse = self._conn.recv() │ │ │
│ │ │ 240 │ │ │ │ │ │
│ │ │ 241 │ │ │ if response.error: │ │ │
│ │ │ ❱ 242 │ │ │ │ raise RuntimeError(f"Failed to deploy module: {response.error}") │ │ │
│ │ │ 243 │ │ │ │ │ │
│ │ │ 244 │ │ │ actor = Actor(self._conn, module_class, self._worker_id, module_id, se │ │ │
│ │ │ 245 │ │ │ actor.set_ref(actor).result() │ │ │
│ │ ╰──────────────────────────────────────────────────────────────────────────────────────────╯ │ │
│ │ RuntimeError: Failed to deploy module: RuntimeError: Failed to pull LFS file │ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/data/repo/data/.lfs/mujoco_sim │ │
│ │ .tar.gz: Command '['git', 'lfs', 'pull', '--include', 'data/.lfs/mujoco_sim.tar.gz']' │ │
│ │ returned non-zero exit status 2. │ │
│ │ Traceback (most recent call last): │ │
│ │ File "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/data.py", line │ │
│ │ 164, in _lfs_pull │ │
│ │ subprocess.run( │ │
│ │ File │ │
│ │ "/home/th/.local/share/uv/python/cpython-3.12.13-linux-x86_64-gnu/lib/python3.12/subprocess. │ │
│ │ py", line 571, in run │ │
│ │ raise CalledProcessError(retcode, process.args, │ │
│ │ subprocess.CalledProcessError: Command '['git', 'lfs', 'pull', '--include', │ │
│ │ 'data/.lfs/mujoco_sim.tar.gz']' returned non-zero exit status 2. │ │
│ │ │ │
│ │ During handling of the above exception, another exception occurred: │ │
│ │ │ │
│ │ Traceback (most recent call last): │ │
│ │ File │ │
│ │ "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/python_work │ │
│ │ er.py", line 441, in _worker_loop │ │
│ │ response = _handle_request(request, state) │ │
│ │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ │ │
│ │ File │ │
│ │ "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/core/coordination/python_work │ │
│ │ er.py", line 377, in _handle_request │ │
│ │ state.instances[module_id] = module_class(**kwargs) │ │
│ │ ^^^^^^^^^^^^^^^^^^^^^^ │ │
│ │ File │ │
│ │ "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/robot/unitree/go2/connection. │ │
│ │ py", line 221, in init │ │
│ │ self.connection = make_connection(self.config.ip, self.config.g) │ │
│ │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ │ │
│ │ File │ │
│ │ "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/robot/unitree/go2/connection. │ │
│ │ py", line 128, in make_connection │ │
│ │ return MujocoConnection(cfg) │ │
│ │ ^^^^^^^^^^^^^^^^^^^^^ │ │
│ │ File │ │
│ │ "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/robot/unitree/mujoco_connecti │ │
│ │ on.py", line 75, in init │ │
│ │ get_data("mujoco_sim") │ │
│ │ File "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/data.py", line │ │
│ │ 259, in get_data │ │
│ │ archive_path = _decompress_archive(_pull_lfs_archive(archive_name)) │ │
│ │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ │ │
│ │ File "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/data.py", line │ │
│ │ 203, in _pull_lfs_archive │ │
│ │ _lfs_pull(file_path, repo_root) │ │
│ │ File "/home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/utils/data.py", line │ │
│ │ 171, in _lfs_pull │ │
│ │ raise RuntimeError(f"Failed to pull LFS file {file_path}: {e}") │ │
│ │ RuntimeError: Failed to pull LFS file │ │
│ │ /home/th/dimensional/.venv/lib/python3.12/site-packages/dimos/data/repo/data/.lfs/mujoco_sim │ │
│ │ .tar.gz: Command '['git', 'lfs', 'pull', '--include', 'data/.lfs/mujoco_sim.tar.gz']' │ │
│ │ returned non-zero exit status 2. │ │
│ │ │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯

⚠ smoke test exited with code 1 (may be expected headless)

🎉 installation complete!

Dimos failed smoke test as the LFS is not available

thanks

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing dimos --simulation run unitree-go2 from the reported installation at /home/th/dimensional, then trace the installation or startup path that fetches https://lfs.dimensionalos.com/dimensionalOS/dimos. Check how the LFS object request is configured and confirm the post-install smoke test completes without the 404 or resulting startup exception.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, python
Domain
build-system, devops
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.