[Cdash] CDash submission problem
matthias.brantner at 28msec.com
Wed Nov 26 14:42:35 UTC 2008
Hello Julien, hello Emmanuel,
some time has passed but we finally managed to come up with a patch
that changes the CDash submission mechanism. William Candillon (in CC)
is a colleague of mine at 28msec, Inc. He made the following two
changes to CDash:
(1) remove the current test submission parse mechanism that stores all
tests in an array
(2) instead there is one sax handler for each test submission (e.g.
Build, Testing, Coverage). As a result, the incoming data is fully
streamed and there is no need to load the complete input.
We have carefully tested the changes in our environment (approx. 16000
tests per submission) and with the test scenarios that you provide
(see http://public.kitware.com/Wiki/CDash:XML). Everything seems to
work fine and we were able to make a submission with ca. 16000 tests
that required less then 8MB of memory. However, we had to pay the
price that a submission might take slightly longer (but we think it's
worth it because we are now able to reliably process our huge
We created a diff against the current svn head (Rev. 1267). You can
find the diff at http://www.28msec.com/CDashSAX_rev1267.diff.
Could you please review this patch (if you find the time) and let us
know what you think. As we have seen in your FAQ, there seem to be a
lot of people that have the same problem as we had. Hence, it would be
great if you could consider to integrate our changes in a next CDash
On 07.10.2008, at 17:39, Julien Jomier wrote:
> We have seen this behavior for very large submission and since tests
> are not split by CTest the submission can be very big.
> I think we can improve this by customizing the XML parser in PHP and
> instead of storing in an array, do the processing at parsing time
> (as you are suggesting).
> If you have any experience with this, feel free to share :)
> I'll look at this when I get a chance. Thanks for the input,
> Matthias Brantner wrote:
>> unfortunately, I also encountered this problem for our project.
>> We have several nightly submissions each having approx. 15000 tests.
>> I already changed the PHP variables to
>> max_execution_time = 1500;
>> max_input_time = 1500;
>> memory_limit = 1000M;
>> With these settings the submission is sometimes parsed
>> successfully. However,
>> it does not always work.
>> I looked at the code and I've seen that the full submission is
>> stored in an array
>> which is afterwards written into the database. Would it be an
>> option to use a SAX parser and
>> immediately write each submission into the database, i.e. without
>> creating the big array but do
>> it in a streaming fashion? I think this could dramatically reduce
>> the submission time and the
>> main memory usage.
>> Maybe our test submissions are a to big for the scenarios CDash was
>> designed for.
>> What do you think?
>> Thanks in advance.
>> On 07.10.2008, at 13:46, Julien Jomier wrote:
>>> You should increase the memory requirement for PHP otherwise it
>>> runs out of memory when trying to parse large submission:
>>> Try changing these variables in your php.ini file (and restart the
>>> web server)
>>> max_execution_time = 30;
>>> max_input_time = 60;
>>> memory_limit = 200M;
>>> Let us know if that was the problem,
>>> Emmanuel Christophe wrote:
>>>> I'm trying to set up a cdash dashboard. It seems to be working
>>>> well for small submissions (*-Experimental_Test.xml about 1.5 Mo of
>>>> size) as I can see
>>>> for the test done at 14:12:57 CEST. This test is done without the
>>>> DATA_ROOT set for the test data, resulting in many fails but
>>>> xml file.
>>>> However, when I set properly the DATA_ROOT, the xml file is about
>>>> 6 Mo
>>>> and something is wrong during the submission: as you can see on the
>>>> 14:33:20 CEST test, no test result appear.
>>>> I add a similar problem at the beginning, with some error in apache
>>>> log showing a lack of memory for php to parse the xml file and the
>>>> *-Experimental_Test.xml not appearing in the backup directory.
>>>> increasing the memory allowed to php, the *-Experimental_Test.xml
>>>> now does appear in the backup directory, there is no more error
>>>> in the
>>>> apache log, but the test result do not display (even after
>>>> the tests).
>>>> My CTestConfig.cmake is :
>>>> SET(CTEST_PROJECT_NAME "OTB")
>>>> SET(CTEST_NIGHTLY_START_TIME "00:00:00 EST")
>>>> IF(NOT DEFINED CTEST_DROP_METHOD)
>>>> SET(CTEST_DROP_METHOD "http")
>>>> ENDIF(NOT DEFINED CTEST_DROP_METHOD)
>>>> IF(CTEST_DROP_METHOD STREQUAL "http")
>>>> SET(CTEST_DROP_SITE "www.orfeo-toolbox.org")
>>>> SET(CTEST_DROP_LOCATION "/Dashboard/submit.php?project=OTB")
>>>> SET(CTEST_TRIGGER_SITE "")
>>>> ENDIF(CTEST_DROP_METHOD STREQUAL "http")
>>>> I'm using CDash-1.0.2.zip, php5, apache2.
>>>> Any suggestions? Where should I look to find out the source of
>>>> the problem?
>>>> Cdash mailing list
>>>> Cdash at public.kitware.com
>>> Cdash mailing list
>>> Cdash at public.kitware.com
More information about the CDash