Avaiga / taipy

Turns Data and AI algorithms into production-ready web applications in no time.
https://www.taipy.io
Apache License 2.0
14.23k stars 1.7k forks source link

BUG- Error when accessing Jobs for job Selector #415

Closed FlorianJacta closed 6 months ago

FlorianJacta commented 1 year ago

Issue

After the first execution of a scenario, sometimes, no jobs are displayed in the job selector. When submitting the scenario, an error

How to replicate

Run this code, create, and execute a scenario. Retry this same process until the job selector is not working properly.

from taipy import Config

import taipy as tp
import pandas as pd

def identity(input):
    print("     Identity")
    return input

## Input Data Nodes
input_cfg = Config.configure_data_node(id="input", default_data=2)

## Remaining Data Node
output_cfg = Config.configure_data_node(id="output")

# Task config objects
identity_task_cfg = Config.configure_task(id="identity",
                                            function=identity,
                                            input=input_cfg,
                                            output=output_cfg,
                                            skippable=True)

# Configure our scenario config.
scenario_cfg = Config.configure_scenario(id="my_scenario", task_configs=[identity_task_cfg])

scenario = None

page = """
<|{scenario}|scenario_selector|>
<|{scenario}|scenario|>

<|job_selector|>
"""

pages = {'/':'<|navbar|> <|toggle|theme|> <br/>',
         'Data-Node': page}

if __name__ == "__main__":
    tp.Core().run()

    tp.Gui(pages=pages).run(debug=True)

Traceback:

Traceback (most recent call last):
  File "C:\Users\jeu\Projects\taipy\src\taipy\gui_core\_context.py", line 533, in job_adapter
    data.creation_date,
    ^^^^^^^^^^^^^^^^^^
  File "C:\Users\jeu\.virtualenvs\taipy-OW_uNObx\Lib\site-packages\taipy\core\_entity\_reload.py", line 54, in _do_reload
    self = _Reloader()._reload(manager, self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jeu\.virtualenvs\taipy-OW_uNObx\Lib\site-packages\taipy\core\_entity\_reload.py", line 33, in _reload
    entity = _get_manager(manager)._get(obj, obj)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jeu\.virtualenvs\taipy-OW_uNObx\Lib\site-packages\taipy\core\_manager\_manager.py", line 98, in _get
    return cls._repository._load(entity_id)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jeu\.virtualenvs\taipy-OW_uNObx\Lib\site-packages\taipy\core\_repository\_filesystem_repository.py", line 80, in _load
    return self.__file_content_to_entity(file_content)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jeu\.virtualenvs\taipy-OW_uNObx\Lib\site-packages\taipy\core\_repository\_filesystem_repository.py", line 231, in __file_content_to_entity
    entity = self.converter._model_to_entity(model)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jeu\.virtualenvs\taipy-OW_uNObx\Lib\site-packages\taipy\core\job\_job_converter.py", line 46, in _model_to_entity  
    task=task_repository._load(model.task_id),
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jeu\.virtualenvs\taipy-OW_uNObx\Lib\site-packages\taipy\core\_repository\_filesystem_repository.py", line 80, in _load
    return self.__file_content_to_entity(file_content)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jeu\.virtualenvs\taipy-OW_uNObx\Lib\site-packages\taipy\core\_repository\_filesystem_repository.py", line 231, in __file_content_to_entity
    entity = self.converter._model_to_entity(model)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jeu\.virtualenvs\taipy-OW_uNObx\Lib\site-packages\taipy\core\task\_task_converter.py", line 49, in _model_to_entity
    output=cls.__to_data_nodes(model.output_ids),
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jeu\.virtualenvs\taipy-OW_uNObx\Lib\site-packages\taipy\core\task\_task_converter.py", line 68, in __to_data_nodes 
    raise NonExistingDataNode(_id)
taipy.core.exceptions.exceptions.NonExistingDataNode: DATANODE_output_ff07096b-7ccf-4a4d-a95c-2c56eb84c7e3

Expected behavior

Jobs should be correctly displayed in the console, and no error should be thrown.

Environment

Taipy 3.0.0.dev3

jrobinAV commented 11 months ago

@FlorianJacta This should have been fixed. Can you check again?

FlorianJacta commented 11 months ago

@jrobinAV Another issue exists on this one https://github.com/Avaiga/taipy/issues/318. This is a related issue that was fixed by the GUI-Core viz elements but I am not sure on how to test it has been solved in Taipy Core

jrobinAV commented 6 months ago

Fixed!