Python error: Segmentation fault in neo4j/_codec/packstream/v1/__init__.py

I tried to query the database to count number of nodes that have an attribute.

num_node_query = f"MATCH (n:{attr.group_name}) WHERE n.{attr.attr_name} IS NOT NULL RETURN count(n) as count"
num_node_records, _, _ = self.driver.execute_query(num_node_query)

During the run segmentation fault occurs,

Fatal Python error: Segmentation fault

Current thread 0x00007f49e8ad3280 (most recent call first):
  File "/home/s147490/miniconda3/lib/python3.9/site-packages/neo4j/_codec/packstream/v1/__init__.py", line 222 in pack_struct
  File "/home/s147490/miniconda3/lib/python3.9/site-packages/neo4j/_sync/io/_common.py", line 132 in append_message
  File "/home/s147490/miniconda3/lib/python3.9/site-packages/neo4j/_sync/io/_bolt.py", line 793 in _append
  File "/home/s147490/miniconda3/lib/python3.9/site-packages/neo4j/_sync/io/_bolt4.py", line 577 in run
  File "/home/s147490/miniconda3/lib/python3.9/site-packages/neo4j/_sync/io/_common.py", line 178 in inner
  File "/home/s147490/miniconda3/lib/python3.9/site-packages/neo4j/_sync/work/result.py", line 163 in _run
  File "/home/s147490/miniconda3/lib/python3.9/site-packages/neo4j/_sync/work/result.py", line 131 in _tx_ready_run
  File "/home/s147490/miniconda3/lib/python3.9/site-packages/neo4j/_sync/work/transaction.py", line 169 in run
  File "/home/s147490/miniconda3/lib/python3.9/site-packages/neo4j/_sync/driver.py", line 1227 in _work
  File "/home/s147490/miniconda3/lib/python3.9/site-packages/neo4j/_sync/work/session.py", line 552 in _run_transaction
  File "/home/s147490/miniconda3/lib/python3.9/site-packages/neo4j/_sync/driver.py", line 902 in execute_query
  File "/data/home/s147490/forked/ofnil/examples/benchmark/test_neo4j_python/test_neo4j_feature_store.py", line 91 in _get_tensor_size
  File "/home/s147490/miniconda3/lib/python3.9/site-packages/torch_geometric/data/feature_store.py", line 445 in get_tensor_size
  File "/home/s147490/miniconda3/lib/python3.9/site-packages/torch_geometric/data/remote_backend_utils.py", line 56 in _internal_num_nodes
  File "/home/s147490/miniconda3/lib/python3.9/site-packages/torch_geometric/data/remote_backend_utils.py", line 83 in num_nodes
  File "/home/s147490/miniconda3/lib/python3.9/site-packages/torch_geometric/loader/utils.py", line 289 in get_input_nodes
  File "/home/s147490/miniconda3/lib/python3.9/site-packages/torch_geometric/loader/node_loader.py", line 101 in __init__
  File "/home/s147490/miniconda3/lib/python3.9/site-packages/torch_geometric/loader/neighbor_loader.py", line 243 in __init__
  File "/data/home/s147490/forked/ofnil/examples/benchmark/benchmark.py", line 82 in <module>

The line

  File "/data/home/s147490/forked/ofnil/examples/benchmark/test_neo4j_python/test_neo4j_feature_store.py", line 91 in _get_tensor_size

refers to my code here:

def _get_tensor_size(self, attr: TensorAttr) -> Tuple:
        num_node_query = f"MATCH (n:{attr.group_name}) WHERE n.{attr.attr_name} IS NOT NULL RETURN count(n) as count"
        num_node_records, _, _ = self.driver.execute_query(num_node_query) #line 91

And the last call is at function pack_struct in neo4j/_codec/packstream/v1/__init__.py:

def pack_struct(self, signature, fields, dehydration_hooks=None):
        self._pack_struct(
            signature, fields,
            dehydration_hooks=self._inject_hooks(dehydration_hooks)
        )

Here are my system's version:

  1. Neo4j
$ neo4j --version
neo4j 4.4.12
  1. I use Neo4j Python Driver
$ pip show neo4j
Name: neo4j
Version: 5.17.0