end-end dependency

50 views
Skip to first unread message

Matthias Berse

unread,
Jul 15, 2011, 7:57:25 AM7/15/11
to TaskJuggler Development
Hi *,

I am using taskjuggler III 0.2.1 trying to get my project scheduled.

I want to have the task create_orderlist end just before the milestone
orderListdone.

Therefore I put scheduling alap in create_orderlist.

This triggers a deadlock in the scheduler.

I also tried precedes orderListdone with essentially the same result.

I copy my project file below. Any clues?

Thanks, Matthias

--->cut<---
project spirit "Blah" 2011-07-04 - 2012-12-31{
timezone "Europe/Berlin"
}
account pcost "Project Cost"
account rev "Project Revenue"
balance pcost rev

vacation "Xmas" 2011-12-24 - 2012-01-02

flags duke
flags hspg
flags column
flags wrtstr
flags software
flags platform

#######Tasks######
task stage "Stages"{
chargeset pcost

task init "Project Initiation"{}
task design "Design"{
#end 2011-09-30
depends !init
depends milestones.kickoff
task sysConcept "Concept"{
end 2011-09-15

}

task order_list "Order List"{
task create_orderlist "create and continously update order list"{
scheduling alap
length 2w
}
task orderListdone "Order List finished"{
milestone
depends !!sysConcept{gaplength 2w}
depends !create_orderlist
}
task syncwDispo "Sync Dispo Plan with Order list"{
depends !orderListdone
length 1d
}
task check_completeness "check that all HW is ordered / planned to"{
depends !syncwDispo #+1week
length 1d
}

}
task est_costs "Cost Estimation"{
depends !order_list
length 1w

}
task wrtstr_concept "Strategy Concept"{}

}
task assembly "Assembly"{

end 2012-02-28
#depends !design
depends milestones.dHiTeK

}

}
task milestones "Milestones"{
task kickoff "KickOff Meeting"{
milestone
start 2011-07-14
}
task dHiTeK "Delivery PSUs"{
milestone
start 2011-09-25
}
}
#######Reports#####
textreport frame "" {
textreport index "Overview" {
formats html
header -8<-
=== Project Overview ===

The project is structured into 7 phases.


=== Draft Project Plan ===
->8-

center '<[report id="overview"]>'
}

}
taskreport overview "" {

#columns name, cost,start, end, chart
columns name ,start, end, chart
}

resourcereport resoverview "" {

columns name, cost ,chart

}
resourcereport resdaily "" {

columns name, cost ,chart {scale day}

}

--->paste<---

spirit.tjp:42: Warning in scenario plan: Task
stage.design.order_list.syncwDispo does not fit into project time
frame
stage.design.order_list.check_completeness ...
stage.design.est_costs

ERROR: Ups, you have triggered a bug in TaskJuggler III!
Scheduler deadlock: Cannot schedule any further tasks
/home/matt/.gem/ruby/1.8/gems/taskjuggler-0.2.1/lib/taskjuggler/
Project.rb:1232:in `scheduleScenario'
/home/matt/.gem/ruby/1.8/gems/taskjuggler-0.2.1/lib/taskjuggler/
Project.rb:650:in `schedule'
/home/matt/.gem/ruby/1.8/gems/taskjuggler-0.2.1/lib/taskjuggler/
PropertySet.rb:287:in `each'
/home/matt/.gem/ruby/1.8/gems/taskjuggler-0.2.1/lib/taskjuggler/
PropertySet.rb:286:in `each'
/home/matt/.gem/ruby/1.8/gems/taskjuggler-0.2.1/lib/taskjuggler/
Project.rb:633:in `schedule'
/home/matt/.gem/ruby/1.8/gems/taskjuggler-0.2.1/lib/taskjuggler/
TaskJuggler.rb:125:in `schedule'
/home/matt/.gem/ruby/1.8/gems/taskjuggler-0.2.1/lib/taskjuggler/apps/
Tj3.rb:150:in `appMain'
/home/matt/.gem/ruby/1.8/gems/taskjuggler-0.2.1/lib/taskjuggler/
Tj3AppBase.rb:118:in `main'
/home/matt/.gem/ruby/1.8/gems/taskjuggler-0.2.1/lib/tj3.rb:16
/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
/home/matt/.gem/ruby/1.8/gems/taskjuggler-0.2.1/bin/tj3:2
/home/matt/.gem/ruby/1.8/bin/tj3:19:in `load'
/home/matt/.gem/ruby/1.8/bin/tj3:19Please see the user manual on how
to get this bug fixed!

Chris Schlaeger

unread,
Jul 15, 2011, 2:51:23 PM7/15/11
to taskjug...@googlegroups.com
On Fri, Jul 15, 2011 at 1:57 PM, Matthias Berse
<matthia...@gmail.com> wrote:
> I am using taskjuggler III 0.2.1 trying to get my project scheduled.
>
> I want to have the task create_orderlist end just before the milestone
> orderListdone.
>
> Therefore I put scheduling alap in create_orderlist.
>
> This triggers a deadlock in the scheduler.

Not really, but that message certainly should not be generated. The
real problem is the warning that triggers an error situtation that is
not properly reported. I have fixed that now.

> I also tried precedes orderListdone with essentially the same result.
>
> I copy my project file below. Any clues?

>        task order_list "Order List"{
>                task create_orderlist "create and continously update order list"{
>                scheduling alap

This causes the task to inherit the project end date. The following
tasks will not fit behind it. Hence the warning.

You can try the latest version from the source repository. That should
no longer show the deadlock message. But you need to fix your project
too.

Chris

Matthias Berse

unread,
Jul 16, 2011, 5:09:39 AM7/16/11
to taskjug...@googlegroups.com

>
>> I also tried precedes orderListdone with essentially the same result.
>>
>> I copy my project file below. Any clues?
>> task order_list "Order List"{
>> task create_orderlist "create and continously update order list"{
>> scheduling alap
> This causes the task to inherit the project end date. The following
> tasks will not fit behind it. Hence the warning.
>
Ok I understand now. Seems you fixed it for scheduling alap only? Tried to experiment a bit with precedes and I got the same "deadlock" message again.

So still, and I already searched the forum or the documentation for it, how to I model something like this in taskjuggler:

I have task A and task B running at the same time. After task A is finished I know that task B will run on for N more weeks. So far I tried to put a milestone with a gap of N weeks which depends on task A and then make the milestone depend on task B. As you explained that does not work if I put the scheduler to alap for task B. So how can I get an enddate of a task set dynamically to the enddate of another task + a fixed offset?

Hope it is still ok to ask that to the dev forum. If not tell me and I will repost to user...

Thanks,

Matthias

Chris Schlaeger

unread,
Jul 16, 2011, 8:45:47 AM7/16/11
to taskjug...@googlegroups.com
On Sat, Jul 16, 2011 at 11:09 AM, Matthias Berse
<matthia...@gmail.com> wrote:
> Ok I understand now. Seems you fixed it for scheduling alap only? Tried to experiment a bit with precedes and I got the same "deadlock" message again.

This fix should work for all tasks. ALAP or ASAP doesn't matter here.
Can you send me the project that still fails, please?

> So still, and I already searched the forum or the documentation for it, how to I model something like this in taskjuggler:
>
> I have task A and task B running at the same time. After task A is finished I know that task B will run on for N more weeks. So far I tried to put a milestone with a gap of N weeks which depends on task A and then make the milestone depend on task B. As you explained that does not work if I put the scheduler to alap for task B. So how can I get an enddate of a task set dynamically to the enddate of another task + a fixed offset?
>
> Hope it is still ok to ask that to the dev forum. If not tell me and I will repost to user...

That's indeed more a topic for the user forum. You probably have to
split task b into 2 sub tasks, b1 and b2. b1 runs along with A and b2
that starts when A is ready. A and b1 must not be effort based tasks
and b1 must be alap with a precede on end of A.

Chris

Matthias Berse

unread,
Jul 16, 2011, 12:44:06 PM7/16/11
to taskjug...@googlegroups.com

On Jul 16, 2011, at 2:45 PM, Chris Schlaeger wrote:

> On Sat, Jul 16, 2011 at 11:09 AM, Matthias Berse
> <matthia...@gmail.com> wrote:
>> Ok I understand now. Seems you fixed it for scheduling alap only? Tried to experiment a bit with precedes and I got the same "deadlock" message again.
>
> This fix should work for all tasks. ALAP or ASAP doesn't matter here.
> Can you send me the project that still fails, please?
>

Yesterday I could still make it fail. Now I fail failing ;) Will keep you updated as I continue to work on my project. If it happens again, I will let you know...

Thanks,

Matthias

Reply all
Reply to author
Forward
0 new messages