Page 1 of 1

child dependency waits on previous frames?

Posted: Fri Jan 05, 2018 7:06 am
by pfranz
I have two blocks with frame dependencies. If frame 3 of the parent dependency takes longer (4 and 5 have finished), frames 3, 4, or 5 of the child dependency won't pick up until 3 is done. I attached a test job and what I see when it runs. Is there any way to change this behavior? Running v2.2.3

Image

Code: Select all

{
  "job": {
    "name": "job name",
    "user_name": "vagrant",
    "blocks": [
      {
        "name": "One",
        "service": "generic",
        "parser": "generic",
        "command": "/usr/bin/perl -e 'my $x=abs(cos(@#@))*20;sleep($x); print $x' && echo ' done @#@'",
        "flags": 1,
        "frame_first": 1,
        "frame_last": 5,
        "tasks": [
          {}
        ]
      },
      {
        "name": "Two",
        "tasks_depend_mask": "One",
        "service": "generic",
        "parser": "generic",
        "command": "echo 'done @#@'",
        "flags": 1,
        "frame_first": 1,
        "frame_last": 5,
        "tasks": [
          {}
        ]
      }
    ]
  }
}

Re: child dependency waits on previous frames?

Posted: Fri Jan 05, 2018 5:11 pm
by timurhai
Yes. This is a bug.
I will fix it, but for now very busy with other issues.
Job solving function should be completely rewritten.
This effect happen because there is a recursive function that solves task, run other other task solve if it depends.
There should not be any recursion, there should be like in jobs dependence, if it does, it just got DEPEND flag, and does not run other job, just wait READY flag.
(this was historically(always) in Afanasy code, bad idea, but still working)