Skip to content

Pycharm Indexing causes kernel dump during import #407

@emfdavid

Description

@emfdavid

I use the intellij ide with python plugin to develop GNN models. I have been struggling with using the optional dependencies like torch_sparse because the IDE indexing script cordumps and hangs while indexing these libraries. I am not sure if this is an issue with the intellij indexer, with the NVIDIA CUDA libraries, with torch, torch-geometric or with the torch-sparse, but I thought I would start by posting the issue here. Any insight is most welcome! I can install and index torch==2.8.0 torch_geometric==2.7.0 pyg_lib, but when I add torch_sparse I get issues, see my setup details below...

Pycharm Indexing hangs on
Image

Both the python indexing process and the systemd-coredum process have to be killed
Image

I see the following error when I run the generator3 script from the command line:

{"type": "log", "level": "info", "message": "Updating cache for torch_sparse._hgt_sample_cpu at '/home/ec2-user/.cache/JetBrains/IntelliJIdea2025.3/python_stubs/cache/c1004d7e408df69c41e09a2146888afff1b969926097937241b0d842401c4f45'"}
terminate called after throwing an instance of 'c10::Error'
  what():  Tried to register an operator (torch_sparse::hgt_sample(Dict(str, Tensor) _0, Dict(str, Tensor) _1, Dict(str, Tensor) _2, Dict(str, int[]) _3, int _4) -> (Dict(str, Tensor) _0, Dict(str, Tensor) _1, Dict(str, Tensor) _2, Dict(str, Tensor) _3)) with the same name and overload name multiple times. Each overload's schema should only be registered with a single call to def(). Duplicate registration: registered by RegisterOperators. Original registration: registered by RegisterOperators
Exception raised from registerDef at /pytorch/aten/src/ATen/core/dispatch/Dispatcher.cpp:254 (most recent call first):
frame #0: c10::Error::Error(c10::SourceLocation, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) + 0x80 (0x7f59f22d9eb0 in /home/ec2-user/projects/test_torch_scatter/.venv/lib/python3.12/site-packages/torch/lib/libc10.so)
frame #1: c10::detail::torchCheckFail(char const*, char const*, unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) + 0x65 (0x7f59f2276a89 in /home/ec2-user/projects/test_torch_scatter/.venv/lib/python3.12/site-packages/torch/lib/libc10.so)
frame #2: c10::Dispatcher::registerDef(c10::FunctionSchema, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<at::Tag, std::allocator<at::Tag> >) + 0x646 (0x7f59d1a82876 in /home/ec2-user/projects/test_torch_scatter/.venv/lib/python3.12/site-packages/torch/lib/libtorch_cpu.so)
frame #3: c10::RegisterOperators::registerOp_(c10::RegisterOperators::Options&&) + 0x3a9 (0x7f59d1aceba9 in /home/ec2-user/projects/test_torch_scatter/.venv/lib/python3.12/site-packages/torch/lib/libtorch_cpu.so)
frame #4: c10::RegisterOperators::checkSchemaAndRegisterOp_(c10::RegisterOperators::Options&&) + 0xc12 (0x7f59d1ad17d2 in /home/ec2-user/projects/test_torch_scatter/.venv/lib/python3.12/site-packages/torch/lib/libtorch_cpu.so)
frame #5: std::enable_if<c10::guts::is_function_type<std::tuple<c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor>, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor>, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor>, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor> > (c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor> const&, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor> const&, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor> const&, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<long, std::allocator<long> > > const&, long)>::value&&(!(is_same_v<std::tuple<c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor>, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor>, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor>, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor> > (c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor> const&, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor> const&, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor> const&, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<long, std::allocator<long> > > const&, long), void (c10::OperatorHandle const&, std::vector<c10::IValue, std::allocator<c10::IValue> >*)>)), c10::RegisterOperators&&>::type c10::RegisterOperators::op<std::tuple<c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor>, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor>, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor>, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor> > (c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor> const&, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor> const&, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor> const&, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<long, std::allocator<long> > > const&, long)>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::tuple<c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor>, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor>, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor>, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor> > (*)(c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor> const&, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor> const&, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, at::Tensor> const&, c10::Dict<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<long, std::allocator<long> > > const&, long), c10::RegisterOperators::Options&&) && + 0x1f8 (0x7f594f4f1168 in /home/ec2-user/projects/test_torch_scatter/.venv/lib/python3.12/site-packages/torch_sparse/_hgt_sample_cpu.so)
frame #6: <unknown function> + 0x12ef3 (0x7f594f4d0ef3 in /home/ec2-user/projects/test_torch_scatter/.venv/lib/python3.12/site-packages/torch_sparse/_hgt_sample_cpu.so)
frame #7: <unknown function> + 0x64fe (0x7f5a00ae74fe in /lib64/ld-linux-x86-64.so.2)

See the full log output in this gist

Setup

Using Amazon Machine Image ami-09d7d0c4b9154cef2 - Deep Learning Base AMI with Single CUDA (Amazon Linux 2023) 20251118
NVIDIA driver version: 580.95.05
CUDA versions available: cuda-12.8
Default CUDA version is 12.8

[ec2-user@ip-172-31-9-224 test_torch_scatter]$ rm -rf .venv/
[ec2-user@ip-172-31-9-224 test_torch_scatter]$ uv venv --python 3.12
Using CPython 3.12.12
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
[ec2-user@ip-172-31-9-224 test_torch_scatter]$ uv pip install torch==2.8.0 torch_geometric==2.7.0 pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.8.0+cu128.html
Resolved 50 packages in 278ms
Installed 50 packages in 607ms
 + aiohappyeyeballs==2.6.1
 + aiohttp==3.13.3
 + aiosignal==1.4.0
 + attrs==25.4.0
 + certifi==2026.1.4
 + charset-normalizer==3.4.4
 + filelock==3.20.3
 + frozenlist==1.8.0
 + fsspec==2026.1.0
 + idna==3.11
 + jinja2==3.1.6
 + markupsafe==3.0.3
 + mpmath==1.3.0
 + multidict==6.7.0
 + networkx==3.6.1
 + numpy==2.4.1
 + nvidia-cublas-cu12==12.8.4.1
 + nvidia-cuda-cupti-cu12==12.8.90
 + nvidia-cuda-nvrtc-cu12==12.8.93
 + nvidia-cuda-runtime-cu12==12.8.90
 + nvidia-cudnn-cu12==9.10.2.21
 + nvidia-cufft-cu12==11.3.3.83
 + nvidia-cufile-cu12==1.13.1.3
 + nvidia-curand-cu12==10.3.9.90
 + nvidia-cusolver-cu12==11.7.3.90
 + nvidia-cusparse-cu12==12.5.8.93
 + nvidia-cusparselt-cu12==0.7.1
 + nvidia-nccl-cu12==2.27.3
 + nvidia-nvjitlink-cu12==12.8.93
 + nvidia-nvtx-cu12==12.8.90
 + propcache==0.4.1
 + psutil==7.2.1
 + pyg-lib==0.5.0+pt28cu128
 + pyparsing==3.3.2
 + requests==2.32.5
 + scipy==1.17.0
 + setuptools==80.10.1
 + sympy==1.14.0
 + torch==2.8.0
 + torch-cluster==1.6.3+pt28cu128
 + torch-geometric==2.7.0
 + torch-scatter==2.1.2+pt28cu128
 + torch-sparse==0.6.18+pt28cu128
 + torch-spline-conv==1.2.2+pt28cu128
 + tqdm==4.67.1
 + triton==3.4.0
 + typing-extensions==4.15.0
 + urllib3==2.6.3
 + xxhash==3.6.0
 + yarl==1.22.0
[ec2-user@ip-172-31-9-224 test_torch_scatter]$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:23:50_PST_2025
Cuda compilation tools, release 12.8, V12.8.93
Build cuda_12.8.r12.8/compiler.35583870_0

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