[Rock-dev] Amake stuck

Pierre Willenbrock pierre at pirsoft.de
Tue Sep 19 18:14:09 CEST 2017


Hi Sylvain,

Sylvain Joyeux schrieb:
> Hi Pierre. Thanks for the debugging !
> 
> When you say "immensely", does it become workable with this change ?

i was only waiting for maybe a minute or two, which is mostly masked by
packages failing to build on their own. That being said, the cpu time
used by amake while in its building package phase went to close to zero,
from saturating one of the cpu cores. The number of "stat" syscalls went
from 10883398 to 44583.

I was suspecting there to actually be a mechanism that prevents amake
from making progress at all, but looking at that strace log, i just
found that that run was aborted a few 100k stat calls too early to finish.

Regards,
  Pierre

> Sylvain
> 
> On Tue, Sep 19, 2017 at 9:07 AM, Pierre Willenbrock <pierre at pirsoft.de> wrote:
>> Hello everyone,
>> i am not able to reproduce amake being stuck, but i am experiencing
>> excessive slowness. I traced that down to Rake::FileTask.needed?(to be
>> more specific: Rake::FileTask.out_of_date?) taking a long time to
>> recursively check the timestamps of all the prerequisites.
>>
>> Modifying rake to have Rake::FileTask.out_of_date? like below helps
>> immensely(collects the touched tasks first, then checks timestamps):
>>
>>     def out_of_date?(stamp)
>>       all_prerequisite_tasks.any? { |prereq_task|
>>         if prereq_task.instance_of?(Rake::FileTask)
>>           prereq_task.timestamp > stamp || !
>> File.exist?(prereq_task.name) || @application.options.build_all
>>         else
>>           prereq_task.timestamp > stamp
>>         end
>>       }
>>     end
>>
>> The behaviour has changed between rake-12.0.0 and rake-12.1.0. In
>> rake-12.0.0, out_of_date? only checked its own timestamp.
>>
>> Maybe this helps someone.
>>
>> Regards,
>>   Pierre
>> _______________________________________________
>> Rock-dev mailing list
>> Rock-dev at dfki.de
>> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev
> 



More information about the Rock-dev mailing list