Skip to content

spconv/cumm wheel pairing not enforced → pybind 'type not registered' + process-poisoning ExternalAllocator failures #237

Description

@OmarB97

Environment: Ubuntu (kernel 7.0), RTX 5090 (Blackwell sm_120), NVIDIA driver w/ CUDA 13.3 userland, Modly AppImage v0.4.x, embedded Python 3.11.9, data dir relocated to a large secondary disk. Found while driving Modly headlessly (REST + MCP) for a game-asset pipeline.

With fork-built spconv 2.3.8+cu128torch2.7 and PyPI cumm 0.7.11 — which satisfies the wheel's declared range cumm<0.8.0,>=0.7.11 — importing spconv raises:

arg(): could not convert default argument 'workspace: tv::Tensor' in method
'<class 'spconv.core_cc.csrc.sparse.convops.gemmops.GemmTunerSimple'>.run_with_tuned_result'
into a Python object (type not registered yet?)

Worse, that failed import partially registers pybind types process-wide, so every later import spconv.pytorch in the same (long-lived worker) process dies with:

ImportError: generic_type: cannot initialize type "ExternalAllocator": an object with that name is already defined

Installing the matching cumm 0.8.2+cu128torch2.7 from the same wheel index fixes both symptoms.

Suggested fixes: pin the exact cumm build in the spconv wheel metadata (the declared range is stale), and treat a failed spconv probe as fatal-for-process (respawn the worker) instead of continuing with a poisoned pybind registry.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions