Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing the faulty DONE status assignment #3271

Closed
wants to merge 2 commits into from

Conversation

HadiKutabi
Copy link

Fixing the faulty DONE status assignment

It is possbile that the outputs of a task don't exist but but still assigned as the status DONE.

Here is an example:

import luigi


class Task1(luigi.Task):

    def run(self):
        with self.output()["foo_TASK_1"].open("w") as f:
            f.write("Hello World")

        with self.output()["bar_TASK_1"].open("w") as f:
            f.write("Hello World")

    def output(self):
        return {
            "foo_TASK_1": luigi.LocalTarget("foo_TASK_1.txt"),
            "bar_TASK_1": luigi.LocalTarget("bar_TASK_1.txt"),
        }


class Task2(luigi.Task):
    def requires(self):
        return Task1()

    def run(self):
        with self.output()["foo_TASK_2"].open("w") as f:
            f.write("Hello World")

    def output(self):
        return {
            "foo_TASK_2": luigi.LocalTarget("foo_TASK_2.txt"),
            "bar_TASK_2": luigi.LocalTarget("bar_TASK_2.txt"),
        }


if __name__ == "__main__":
    luigi.build([Task2()], local_scheduler=True, detailed_summary=True)

If you run this the detailed summary will show that both tasks are successful. However, Task2 cannot be successful because in the run() we only create one of the outputs.

I've traced this error to the worker.py and fixed it in a hacky way.

@HadiKutabi HadiKutabi requested review from dlstadther and a team as code owners January 5, 2024 13:08
@lallea
Copy link
Contributor

lallea commented Jan 10, 2024

This limitation in Luigi is intended and documented behaviour, see comment on #3273.

@RRap0so
Copy link
Contributor

RRap0so commented Jan 14, 2024

Closing PR since it's working as intended.

@RRap0so RRap0so closed this Jan 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants