MolSSI / MQCAS

History information for the data in the MolSSI QCArchive Server (MQCAS)
https://qcarchive.molssi.org
BSD 3-Clause "New" or "Revised" License
5 stars 2 forks source link

ACSDB get_molecules fails #9

Closed mattwelborn closed 4 years ago

mattwelborn commented 4 years ago

Data Location Collection ASCDB

Describe the issue Calling get_molecules() returns an internal server error. This can also be reproduced by querying individual molecules from ASCDB, e.g. client.query_molecules('11757989').

Looking into the logs on molssi10, this might be a slim molecule issue:

[E 200313 10:10:03 web:1788] Uncaught exception GET /molecule (127.0.0.1)
    HTTPServerRequest(protocol='http', host='api.qcarchive.molssi.org', method='GET', uri='/molecule', version='HTTP/1.0', remote_ip='127.0.0.1')
    Traceback (most recent call last):
      File "/home/dgasmith/miniconda3/envs/qcfprodv13/lib/python3.7/site-packages/tornado/web.py", line 1697, in _execute
        result = method(*self.path_args, **self.path_kwargs)
      File "/home/dgasmith/miniconda3/envs/qcfprodv13/lib/python3.7/site-packages/qcfractal/web_handlers.py", line 238, in get
        molecules = self.storage.get_molecules(**{**body.data.dict(), **body.meta.dict()})
      File "/home/dgasmith/miniconda3/envs/qcfprodv13/lib/python3.7/site-packages/qcfractal/storage_sockets/sqlalchemy_socket.py", line 739, in get_molecules
        data = [Molecule(**d, validate=False, validated=True) for d in rdata]
      File "/home/dgasmith/miniconda3/envs/qcfprodv13/lib/python3.7/site-packages/qcfractal/storage_sockets/sqlalchemy_socket.py", line 739, in <listcomp>
        data = [Molecule(**d, validate=False, validated=True) for d in rdata]
      File "/home/dgasmith/miniconda3/envs/qcfprodv13/lib/python3.7/site-packages/qcelemental/models/molecule.py", line 271, in __init__
        super().__init__(**kwargs)
      File "pydantic/main.py", line 274, in pydantic.main.BaseModel.__init__
    pydantic.error_wrappers.ValidationError: 4 validation errors for Molecule
    masses
      object of type 'NoneType' has no len() (type=type_error)
    real
      object of type 'NoneType' has no len() (type=type_error)
    fragment_charges
      object of type 'NoneType' has no len() (type=type_error)
    fragment_multiplicities
      object of type 'NoneType' has no len() (type=type_error)

Expected behavior Molecule should be successfully returned.

dgasmith commented 4 years ago

Server side bug, upgraded and fixed.