User Details
- User Since
- Mar 13 2014, 8:36 AM (564 w, 16 h)
- Availability
- Available
Apr 9 2014
That is too bad. Allthough my change does fix the problem, checkLease() is now completly disabled, and I am not sure what its purpose is.
Mar 26 2014
I have added a "return" on the first line of function checkLease() in ./src/infrastructure/daemon/workers/storage/PhabricatorWorkerActiveTask.php. Daemon has been behaving better now
Mar 24 2014
I have ran the task manually.
In DiffusionPathChangeQuery::executeQuery() at line 55 the query (the one in my post above) returns 2.470.422 rows and uses over 4 gigabyte of memory.
The call to isort() on this array takes 25 seconds and costs 930MB additional memory. Then even more time is spent with the three foreach() loops that come next, taking additional gigabytes of memory.
During this CPU is around 98% most of the time, only sometimes hitting 100% for short periods.
When I add the echo inside ExecFuture::isReady() the output becomes this;
isready 1395651103.4699 isready isready isready 1395651103.471 isready 1395651104.4709 isready isready isready 1395651104.472 isready 1395651105.4719 isready isready isready 1395651105.473 ...
Mar 19 2014
Nope, that one works correctly
I see one select() that pauses untill the sleep is finished, and no CPU usage.
Yes, we are getting close.
That one doesn't reproduce the issue either
CPU stays idle and strace shows a single select() while waiting and finishes with;
select() took 29999794 us to return.
Setting the timeout to 1 or 60 in libphutil/src/future/Future.php:146 does not make any difference. Allthough the brk() and rt_sigprocmask() calls in strace now both seem to occur.
I am trying to debug ./libphutil/src/future/Future.php where the stream_select() call is;
You were right, that works.
Mar 18 2014
I've generated an xhprof outfile from a launch up untill execution pauses. I ^C'd it when it was about to continue
The time seems to be spent with calling proc_close(), called from PhutilExecPassthru::execute().
The query itself doesn't seem the problem
I sometimes notice other pauses in the debug output for example after this;
Thank you for your reply epriestley.