aiida-core icon indicating copy to clipboard operation
aiida-core copied to clipboard

Error from SQLite when running `verdi node graph generate`

Open giovannipizzi opened this issue 2 years ago • 2 comments

I was generating a large graph (many many nodes) and I got this exception:

Traceback (most recent call last):
  File "/Users/pizzi/git/aiida-core/aiida/orm/implementation/django/nodes.py", line 242, in get_attribute
KeyError: 'mesh'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/pizzi/git/aiida-core/aiida/orm/nodes/data/array/kpoints.py", line 46, in get_description
  File "/Users/pizzi/git/aiida-core/aiida/orm/nodes/data/array/kpoints.py", line 285, in get_kpoints_mesh
  File "/Users/pizzi/git/aiida-core/aiida/orm/entities.py", line 313, in get_attribute
  File "/Users/pizzi/git/aiida-core/aiida/orm/implementation/django/nodes.py", line 244, in get_attribute
AttributeError: attribute `'mesh'` does not exist

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 3250, in _wrap_pool_connect
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 310, in connect
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 868, in _checkout
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 476, in checkout
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 256, in _do_get
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 256, in _create_connection
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 371, in __init__
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 677, in __connect
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/event/attr.py", line 329, in _exec_w_sync_on_first_run
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/event/attr.py", line 343, in __call__
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/disk_objectstore/database.py", line 70, in do_connect
sqlite3.OperationalError: unable to open database file

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/pizzi/.virtualenvs/aiida-dev/bin/verdi", line 12, in <module>
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/click/core.py", line 1128, in __call__
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/click/core.py", line 1053, in main
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/click/core.py", line 1659, in invoke
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/click/core.py", line 1659, in invoke
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/click/core.py", line 1659, in invoke
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/click/core.py", line 1395, in invoke
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/click/core.py", line 754, in invoke
  File "/Users/pizzi/git/aiida-core/aiida/cmdline/utils/decorators.py", line 74, in wrapper
  File "/Users/pizzi/git/aiida-core/aiida/cmdline/commands/cmd_node.py", line 452, in graph_generate
  File "/Users/pizzi/git/aiida-core/aiida/tools/visualization/graph.py", line 719, in recurse_descendants
  File "/Users/pizzi/git/aiida-core/aiida/tools/visualization/graph.py", line 476, in add_node
  File "/Users/pizzi/git/aiida-core/aiida/tools/visualization/graph.py", line 319, in _add_graphviz_node
  File "/Users/pizzi/git/aiida-core/aiida/tools/visualization/graph.py", line 254, in default_node_sublabels
  File "/Users/pizzi/git/aiida-core/aiida/orm/nodes/data/array/kpoints.py", line 52, in get_description
  File "/Users/pizzi/git/aiida-core/aiida/orm/nodes/data/array/kpoints.py", line 490, in get_kpoints
  File "/Users/pizzi/git/aiida-core/aiida/orm/nodes/data/array/array.py", line 126, in get_array
  File "/Users/pizzi/git/aiida-core/aiida/orm/nodes/data/array/array.py", line 118, in get_array_from_file
  File "/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.8/lib/python3.8/contextlib.py", line 113, in __enter__
  File "/Users/pizzi/git/aiida-core/aiida/orm/nodes/repository.py", line 126, in open
  File "/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.8/lib/python3.8/contextlib.py", line 113, in __enter__
  File "/Users/pizzi/git/aiida-core/aiida/repository/repository.py", line 398, in open
  File "/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.8/lib/python3.8/contextlib.py", line 113, in __enter__
  File "/Users/pizzi/git/aiida-core/aiida/repository/backend/disk_object_store.py", line 89, in open
  File "/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.8/lib/python3.8/contextlib.py", line 240, in helper
  File "/usr/local/opt/[email protected]/Frameworks/Python.framework/Versions/3.8/lib/python3.8/contextlib.py", line 83, in __init__
  File "/Users/pizzi/git/aiida-core/aiida/repository/backend/abstract.py", line 157, in open
  File "/Users/pizzi/git/aiida-core/aiida/repository/backend/abstract.py", line 113, in has_object
  File "/Users/pizzi/git/aiida-core/aiida/repository/backend/disk_object_store.py", line 75, in has_objects
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/disk_objectstore/container.py", line 948, in has_objects
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/disk_objectstore/container.py", line 610, in _get_objects_stream_meta_generator
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 1691, in execute
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 1532, in _connection_for_bind
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 747, in _connection_for_bind
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/future/engine.py", line 406, in connect
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 3204, in connect
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 96, in __init__
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 3283, in raw_connection
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 3253, in _wrap_pool_connect
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 2100, in _handle_dbapi_exception_noconnection
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 207, in raise_
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 3250, in _wrap_pool_connect
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 310, in connect
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 868, in _checkout
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 476, in checkout
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 256, in _do_get
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 256, in _create_connection
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 371, in __init__
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 677, in __connect
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/event/attr.py", line 329, in _exec_w_sync_on_first_run
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/sqlalchemy/event/attr.py", line 343, in __call__
  File "/Users/pizzi/.virtualenvs/aiida-dev/lib/python3.8/site-packages/disk_objectstore/database.py", line 70, in do_connect
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) unable to open database file
(Background on this error at: https://sqlalche.me/e/14/e3q8)

I'm a bit worried because it's a "new" error down inside from the disk-objectstore. With a smaller graph, it works fine. On the other hand, it seems that the error is actually caused by a missing attribute. I'm surprised that this generates an error on SQLA, though... Any idea @sphuber @chrisjsewell on how the two things might be connected?

giovannipizzi avatar Apr 06 '22 08:04 giovannipizzi

Quick initial question @giovannipizzi, what version/commit of aiida are you using? Given that the traceback mentions aiida/orm/implementation/django/nodes.py, which is obviously not from current develop

chrisjsewell avatar Apr 06 '22 09:04 chrisjsewell

I finally found where I had run the command, it was in a develop branch of last December. I wanted to try it again on the most recent develop, but I got #5481 - when this will be fixed, I'll try this again to check if this is reproducible

giovannipizzi avatar Apr 11 '22 07:04 giovannipizzi