plynx-team / plynx

PLynx is a domain agnostic platform for managing reproducible experiments and data-oriented workflows.
https://plynx.com
Apache License 2.0
301 stars 37 forks source link

The database hub operator run error #122

Closed wallyell closed 2 years ago

wallyell commented 2 years ago

The database hub operator which defined by plynx.plugins.hubs.collection.CollectionHub run with error as below:

Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/plynx-1.7.4-py3.7.egg/plynx/plugins/executors/python/dag.py", line 99, in worker_main pickled_fn_parameter = node.get_parameter_by_name("_pickled_fn") File "/usr/local/lib/python3.7/site-packages/plynx-1.7.4-py3.7.egg/plynx/db/node.py", line 342, in get_parameter_by_name return self._get_custom_element(self.parameters, name, throw) File "/usr/local/lib/python3.7/site-packages/plynx-1.7.4-py3.7.egg/plynx/db/node.py", line 332, in _get_custom_element raise Exception('Parameter "{}" not found in {}'.format(name, self.title)) Exception: Parameter "_pickled_fn" not found in Numbers A to B

wallyell commented 2 years ago

The db.node init with out parameter "_pickled_fn" but dag init with this parameter, it seems like a bug.

khaxis commented 2 years ago

Thanks @wallyell for reporting it!

Probably this is not a bug exactly... Or more precisely it's a bug in the config

The workflow you are using is defined byexecutor: plynx.plugins.executors.python.dag.DAG is not compatible with operations in the hub.

    - kind: db-hub
      title: Database hub
      icon: feathericons.database
      cls: plynx.plugins.hubs.collection.CollectionHub
      args:
        operations:
          - basic-file
          - basic-bash-jinja2-operation
          - basic-python-node-operation
          - basic-dag-operation
        collection: templates

None of those ^ operations work with python-workflow in the config.

khaxis commented 2 years ago

Yes, it should be fixed with in next release. Meanwhile, is it a blocking issue? I would be happy to assist with it!

wallyell commented 2 years ago

Thanks, it solved my problem by updating config file.

fwanghe commented 2 years ago

@wallyell Hi, I think i had the same issue while trying to run a python workflow with a Python Code Operation which was created from the UI. Could you pls advice how did you fix the issue? Appreciated

Traceback as below:

workers_1   | INFO:root:Execute Node(625e34c1c3b8b7142a6279d1) say
workers_1   | ERROR:root:Job failed with traceback: Traceback (most recent call last):
workers_1   |   File "/usr/local/lib/python3.7/site-packages/plynx-1.7.8-py3.7.egg/plynx/plugins/executors/python/dag.py", line 115, in worker_main
workers_1   |     pickled_fn_parameter = node.get_parameter_by_name("_pickled_fn")
workers_1   |   File "/usr/local/lib/python3.7/site-packages/plynx-1.7.8-py3.7.egg/plynx/db/node.py", line 216, in get_parameter_by_name
workers_1   |     return self._get_custom_element(self.parameters, name, throw)
workers_1   |   File "/usr/local/lib/python3.7/site-packages/plynx-1.7.8-py3.7.egg/plynx/db/node.py", line 204, in _get_custom_element
workers_1   |     raise Exception(f'Object "{name}" not found in {self.title}')
workers_1   | Exception: Object "_pickled_fn" not found in say
workers_1   | 
workers_1   | ERROR:root:Wrote to logs: 36e735af-9451-4fcb-96fe-5d99e7bcab03
workers_1   | INFO:root:Node running status FAILED say
workers_1   | INFO:root:Received kill request
workers_1   | INFO:root:Node 625e34c1c3b8b7142a6279d0 `New DAG workflow` finished with status `FAILED

@khaxis pls advice if you had any idea, thank you

khaxis commented 2 years ago

@frank-io should be fixed in 1.7.9 https://github.com/plynx-team/plynx/pull/128/files#diff-084b3435c47f3672bc5888b44fc556fc598132bca1d13657501646aad1a6f1f9R142 You will need to update the config (or cp template_config.yaml config.yaml)

The reason: the Workflow used here did not support the Operations defined in the UI. It was the matter of transforming the backend a little done recently