Transient crash in network interface sync
Description:
What issue is being seen? Describe what should be happening instead of the bug, for example: Cartography should not crash, the expected value isn't returned, the data schema is wrong, etc.
Transient crashes happen when network interface sync is run on a busy enough database instance. I would not expect this to crash because it uses the data model, so this means there are still enhancements we can make to the loader.
To Reproduce:
Steps to reproduce the behavior. Provide all data and inputs required to reproduce the issue.
Run cartography network interface sync with enough data on a busy enough database instance.
Logs:
If applicable, copy and paste your console log with the failing stack trace.
Traceback (most recent call last):
File \"PATH/cartography/intel/aws/__init__.py\", line 169, in _sync_multiple_accounts
_sync_one_account(
File \"PATH/cartography/intel/aws/__init__.py\", line 64, in _sync_one_account
RESOURCE_FUNCTIONS[func_name](**sync_args)
File \"PATH/cartography/util.py\", line 192, in timed
result = method(*args, **kwargs)
File \"PATH/cartography/intel/aws/ec2/network_interfaces.py\", line 245, in sync_network_interfaces
load_network_data(
File \"PATH/cartography/intel/aws/ec2/network_interfaces.py\", line 220, in load_network_data
load_network_interfaces(neo4j_session, network_interface_list, region, current_aws_account_id, update_tag)
File \"PATH/cartography/util.py\", line 192, in timed
result = method(*args, **kwargs)
File \"PATH/cartography/intel/aws/ec2/network_interfaces.py\", line 134, in load_network_interfaces
load(
File \"PATH/cartography/client/core/tx.py\", line 252, in load
ensure_indexes(neo4j_session, node_schema)
File \"PATH/cartography/client/core/tx.py\", line 234, in ensure_indexes
neo4j_session.run(query)
File \"PATH/neo4j/work/simple.py\", line 217, in run
self._autoResult._run(
File \"PATH/neo4j/work/result.py\", line 115, in _run
self._attach()
File \"PATH/neo4j/work/result.py\", line 204, in _attach
self._connection.fetch_message()
File \"PATH/neo4j/io/_common.py\", line 187, in inner
func(*args, **kwargs)
File \"PATH/neo4j/io/_bolt4.py\", line 314, in fetch_message
response.on_failure(summary_metadata or {})
File \"PATH/neo4j/io/_common.py\", line 245, in on_failure
raise Neo4jError.hydrate(**metadata)
neo4j.exceptions.TransientError: {code: Neo.TransientError.Transaction.BookmarkTimeout} {message: Database 'database' not up to the requested version: 1065861924. Latest database version is 1065861923}
Please complete the following information::
- Cartography release version or commit hash [e.g. 0.12.0 or 95e8e11913e2a44a4d4682506d8364a638ceac69] 0.92.0