Habitat-Sim Segmentation Fault After Updating tbp.monty and Installing Hydra

hi everyone

after I updated my codebase of tbp.monty and installed Hydra, now Habitat isn’t working.
I have been trying to fix it with Claude for hours, but I am not a technical expert, and it made the problem even worse.
Below is a summary of my chat with Claude, and I would appreciate any help based on it.

TBP.Monty Segmentation Fault – Complete Troubleshooting Summary


System Information

  • OS: Ubuntu/Linux

  • GPU: NVIDIA MX350 (driver 535.274.02)

  • Python: 3.8

  • Conda Environment: tbp.monty.backup

  • tbp.monty version: 0.17.0 (commit 6c76e3f)

  • Location: /home/ziad/tbp.monty


Problem

Running any experiment causes an immediate segmentation fault:

python run.py experiment=tutorial/surf_agent_2obj_train
# Result: Segmentation fault (core dumped)

The crash happens during initialization, BEFORE any training occurs. No results folder is created.


What We Verified

:white_check_mark: Working Components

  1. YCB dataset installed correctly (v1.2, 81 objects at ~/tbp/data/habitat/objects/ycb/)

  2. Environment variable set: MONTY_DATA=~/tbp/data

  3. Python imports work:

    import tbp.monty  # ✓ Works
    import habitat_sim  # ✓ Works (v0.2.2)
    
    
  4. NVIDIA driver is functional

  5. Conda environment has all packages from environment.yml

:cross_mark: What Crashes

  • ANY experiment config (tutorial, custom, minimal)

  • Crashes with both num_parallel=16 and num_parallel=1

  • Crashes with episodes=1 (single episode test)

  • Happens before the config fully loads


Troubleshooting Steps Attempted

1. Parallel Processing Issues

python run.py experiment=tutorial/surf_agent_2obj_train num_parallel=1
# Result: Still crashes

2. GPU Rendering Issues

export MAGNUM_DEVICE=cpu
export MESA_GL_VERSION_OVERRIDE=3.3
export HABITAT_SIM_LOG=quiet
python run.py experiment=tutorial/surf_agent_2obj_train num_parallel=1
# Result: Still crashes

3. Environment Rebuild

conda env remove -n tbp.monty
conda env create -f environment.yml
# Result: Successfully created tbp.monty.backup with all dependencies
# But: Still crashes when running experiments

4. Habitat-Sim Basic Test

import habitat_sim
cfg = habitat_sim.SimulatorConfiguration()
backend_cfg = habitat_sim.SimulatorConfiguration()
backend_cfg.scene_id = 'NONE'
sim = habitat_sim.Simulator(backend_cfg)
# Result: Error about 'agents' attribute, but imports work

5. Minimal Test Cases

  • Tried with a single object

  • Tried with built-in Habitat shapes (capsule3DSolid)

  • Tried with a minimal config (3 epochs, 10 steps)

  • All crash identically


Configuration Used

experiment: tutorial/surf_agent_2obj_train
num_parallel: 1
episodes: 1
objects: [mug, banana]
n_train_epochs: 14
max_train_steps: 1000

The config prints successfully, then crashes during simulator initialization.


Key Observations

  1. Crash happens after config resolution and before the first simulation step

  2. No error message, only “Segmentation fault (core dumped)”

  3. No partial results are created

  4. Same crash across all experiment types

  5. MX350 is an older mobile GPU and may not support required OpenGL features


Files Available

  • Environment export: ~/tbp_monty_backup_working_YYYYMMDD.yml

  • Crash log: ~/tbp.monty/crash.log (if created)

  • Config location: ~/tbp.monty/conf/experiment/

  • Results path (empty): ~/tbp/results/monty/projects/


Not Tried Yet

  1. Habitat-sim headless build installation

  2. GDB stack trace analysis

  3. Running on different hardware

  4. Docker container

  5. Checking GitHub issues for similar MX350 problems

  6. Testing with habitat-sim test scenes


Questions for TBP.Monty Experts

  1. Is the MX350 GPU supported?

  2. Should we use the habitat-sim headless build?

  3. Are there missing environment variables for GPU compatibility?

  4. Has anyone run tbp.monty on similar hardware?

  5. Is there a Docker image available?

  6. Should we try an older tbp.monty version?


Reproduction Steps

conda activate tbp.monty.backup
cd ~/tbp.monty
python run.py experiment=tutorial/surf_agent_2obj_train num_parallel=1
# Segmentation fault (core dumped)


Bottom line: The environment is correctly configured, imports work, but Habitat-sim crashes during initialization.

1 Like

You say:

  • Conda Environment: tbp.monty.backup

But then you execute: conda env remove -n tbp.monty
Are you absolutely sure you’re really recreating the environment? If I were in your shoes, I’d nuke all environments in ~/miniconda (or wherever they are in your setup) and start from scratch.

Also you can look at this topic and see if anything there might apply to you too, just keep in mind it’s written from the Mac ARM perspective, and you don’t need rosetta etc.

To try to answer some of your questions:

  1. If it was working before, it should work now. The issue is very unlikely hardware-related. Also important to note that by default Monty runs purely on CPU and does not engage GPU at all.
  2. Yes, the docs explicitly say that the version shipped by default is headless with bullet.
  3. See point 1.
  4. See point 1.
  5. I can make one for you if you want, there’s a little hassle with passing GPUs into containers but overall it’s doable.
  6. I’m using Debian 13 and the latest version is working just fine. Although it might depend on how many versions you’ve jumped during your upgrade, but most likely the issue is environment-related.
4 Likes

Hi @Ziad_Alenna, sorry you’re having issues! Let us know if @ash’s suggestion fix your issue.

1 Like

Yes, I started everything from scratch as suggested and it’s working now.

Thank you so much @ash

4 Likes

You’re most welcome, glad it helped!

1 Like