CDash
CDash copied to clipboard
Unable to create a new project : no ProjectId specified
Hello,
I'm running CDash 2.6.0 and I'm unable to create new projects. When I click the "Create project" button on the sixth and final tab in the project creation UI, nothing happens (no project is created and no error is displayed either).
I've launch Firefox's debug panel and had a look at the request. It returns a HTTP code of 200 (success), however the body of the reply contains the following text :
SQL error in Project Create():SQL error encountered, query hidden.<br>UserProject::Save(): no ProjectId specified{"projectcreated":1,"project":{"Name":"X","Id":null,"Description":null,"HomeUrl":null,"CvsUrl":null,"DocumentationUrl":null,"BugTrackerUrl":null,"BugTrackerFileUrl":null,"BugTrackerNewIssueUrl":null,"BugTrackerType":null,"ImageId":0,"Public":null,"CoverageThreshold":70,"TestingDataUrl":null,"NightlyTime":"01:00:00 UTC","GoogleTracker":null,"EmailLowCoverage":0,"EmailTestTimingChanged":0,"EmailBrokenSubmission":1,"EmailRedundantFailures":0,"CvsViewerType":null,"TestTimeStd":4,"TestTimeStdThreshold":1,"ShowTestTime":0,"TestTimeMaxStatus":3,"EmailMaxItems":5,"EmailMaxChars":255,"EmailAdministrator":0,"ShowIPAddresses":0,"DisplayLabels":0,"ShareLabelFilters":0,"AuthenticateSubmissions":0,"ShowCoverageCode":1,"AutoremoveTimeframe":60,"AutoremoveMaxBuilds":500,"UploadQuota":1,"RobotName":null,"RobotRegex":null,"CTestTemplateScript":null,"WebApiKey":"","BuildErrorFilter":{"ProjectId":null,"PDO":{}},"WarningsFilter":"","ErrorsFilter":"","repositories":[{"id":0,"url":"","branch":"","username":"","password":""}],"name_encoded":"X","ctesttemplatescript":"# From this line down, this script may be customized\n# on the Clients tab of the CDash createProject page.\n#\nif(JOB_MODULE)\n set(SOURCE_NAME ${JOB_MODULE})\n if(JOB_TAG)\n set(SOURCE_NAME ${SOURCE_NAME}-${JOB_TAG})\n endif()\nelse()\n set(SOURCE_NAME ${PROJECT_NAME})\n if(JOB_BUILDNAME_SUFFIX)\n set(SOURCE_NAME ${SOURCE_NAME}-${JOB_BUILDNAME_SUFFIX})\n endif()\nendif()\n\nset(CTEST_SOURCE_NAME ${SOURCE_NAME})\nset(CTEST_BINARY_NAME ${SOURCE_NAME}-bin)\nset(CTEST_DASHBOARD_ROOT \"${CLIENT_BASE_DIRECTORY}\")\nset(CTEST_SOURCE_DIRECTORY \"${CTEST_DASHBOARD_ROOT}\/${CTEST_SOURCE_NAME}\")\nset(CTEST_BINARY_DIRECTORY \"${CTEST_DASHBOARD_ROOT}\/${CTEST_BINARY_NAME}\")\nset(CTEST_CMAKE_GENERATOR \"${JOB_CMAKE_GENERATOR}\")\nset(CTEST_BUILD_CONFIGURATION \"${JOB_BUILD_CONFIGURATION}\")\n\nset(CTEST_SITE \"${CLIENT_SITE}\")\nset(CTEST_BUILD_NAME \"${JOB_OS_NAME}-${JOB_OS_VERSION}-${JOB_OS_BITS}-${JOB_COMPILER_NAME}-${JOB_COMPILER_VERSION}\")\nif(JOB_BUILDNAME_SUFFIX)\n set(CTEST_BUILD_NAME ${CTEST_BUILD_NAME}-${JOB_BUILDNAME_SUFFIX})\nendif()\n\nif(NOT EXISTS \"${CTEST_SOURCE_DIRECTORY}\")\n set(CTEST_CHECKOUT_COMMAND \"cvs -d ${JOB_REPOSITORY} checkout \")\n if(JOB_TAG)\n set(CTEST_CHECKOUT_COMMAND \"${CTEST_CHECKOUT_COMMAND} -r ${JOB_TAG}\")\n endif()\n set(CTEST_CHECKOUT_COMMAND \"${CTEST_CHECKOUT_COMMAND} -d ${SOURCE_NAME}\")\n set(CTEST_CHECKOUT_COMMAND \"${CTEST_CHECKOUT_COMMAND} ${JOB_MODULE}\")\nendif()\nset(CTEST_UPDATE_COMMAND \"cvs\")\n\nfile(WRITE \"${CTEST_BINARY_DIRECTORY}\/CMakeCache.txt\" \"${JOB_INITIAL_CACHE}\")\n\nctest_start(${JOB_BUILDTYPE})\nctest_update(SOURCE ${CTEST_SOURCE_DIRECTORY})\nctest_configure(BUILD \"${CTEST_BINARY_DIRECTORY}\" RETURN_VALUE res)\nctest_build(BUILD \"${CTEST_BINARY_DIRECTORY}\" RETURN_VALUE res)\nctest_test(BUILD \"${CTEST_BINARY_DIRECTORY}\" RETURN_VALUE res)\n# The following lines are used to associate a build id with this job.\nset(CTEST_DROP_SITE ${JOB_DROP_SITE})\nset(CTEST_DROP_LOCATION ${JOB_DROP_LOCATION})\nctest_submit(RETURN_VALUE res)\n\nmessage(\"DONE\")\n","MaxUploadQuota":"10"}}
I've tried to fill many fields as well as only the single mandatory field ("project name"), and I get the same result.
I'm wondering why the request reply contains something that resembles a user manual for ctest. Maybe something is broken is our install, but at this stage I have no clue. How can I start debugging this, please?
SQL error encountered, query hidden.
That's the main clue to dig into.
To get CDash to actually log what SQL error occurred, you can edit config.local.php
and set $CDASH_PRODUCTION_MODE = false;
Feel free to paste the error here if it isn't clear what the problem is.
Thanks, I set the production mode to false long enough to re-run my query, tried to create a project (I named it "Test project" and filled nothing else)n and got this in the reply body :
SQL error in Project Create():Incorrect integer value: '' for column 'public' at row 1
UserProject::Save(): no ProjectId specified{"projectcreated":1,"project":{"Name":"Test project","Id":null,"Description":null,"HomeUrl":null,"CvsUrl":null,"DocumentationUrl":null,"BugTrackerUrl":null,"BugTrackerFileUrl":null,"BugTrackerNewIssueUrl":null,"BugTrackerType":null,"ImageId":0,"Public":null,"CoverageThreshold":70,"TestingDataUrl":null,"NightlyTime":"01:00:00 UTC","GoogleTracker":null,"EmailLowCoverage":0,"EmailTestTimingChanged":0,"EmailBrokenSubmission":1,"EmailRedundantFailures":0,"CvsViewerType":null,"TestTimeStd":4,"TestTimeStdThreshold":1,"ShowTestTime":0,"TestTimeMaxStatus":3,"EmailMaxItems":5,"EmailMaxChars":255,"EmailAdministrator":0,"ShowIPAddresses":0,"DisplayLabels":0,"ShareLabelFilters":0,"AuthenticateSubmissions":0,"ShowCoverageCode":1,"AutoremoveTimeframe":60,"AutoremoveMaxBuilds":500,"UploadQuota":1,"RobotName":null,"RobotRegex":null,"CTestTemplateScript":null,"WebApiKey":"","BuildErrorFilter":{"ProjectId":null,"PDO":{}},"WarningsFilter":"","ErrorsFilter":"","repositories":[{"id":0,"url":"","branch":"","username":"","password":""}],"name_encoded":"Test+project","ctesttemplatescript":"# From this line down, this script may be customized\n# on the Clients tab of the CDash createProject page.\n#\nif(JOB_MODULE)\n set(SOURCE_NAME ${JOB_MODULE})\n if(JOB_TAG)\n set(SOURCE_NAME ${SOURCE_NAME}-${JOB_TAG})\n endif()\nelse()\n set(SOURCE_NAME ${PROJECT_NAME})\n if(JOB_BUILDNAME_SUFFIX)\n set(SOURCE_NAME ${SOURCE_NAME}-${JOB_BUILDNAME_SUFFIX})\n endif()\nendif()\n\nset(CTEST_SOURCE_NAME ${SOURCE_NAME})\nset(CTEST_BINARY_NAME ${SOURCE_NAME}-bin)\nset(CTEST_DASHBOARD_ROOT \"${CLIENT_BASE_DIRECTORY}\")\nset(CTEST_SOURCE_DIRECTORY \"${CTEST_DASHBOARD_ROOT}\/${CTEST_SOURCE_NAME}\")\nset(CTEST_BINARY_DIRECTORY \"${CTEST_DASHBOARD_ROOT}\/${CTEST_BINARY_NAME}\")\nset(CTEST_CMAKE_GENERATOR \"${JOB_CMAKE_GENERATOR}\")\nset(CTEST_BUILD_CONFIGURATION \"${JOB_BUILD_CONFIGURATION}\")\n\nset(CTEST_SITE \"${CLIENT_SITE}\")\nset(CTEST_BUILD_NAME \"${JOB_OS_NAME}-${JOB_OS_VERSION}-${JOB_OS_BITS}-${JOB_COMPILER_NAME}-${JOB_COMPILER_VERSION}\")\nif(JOB_BUILDNAME_SUFFIX)\n set(CTEST_BUILD_NAME ${CTEST_BUILD_NAME}-${JOB_BUILDNAME_SUFFIX})\nendif()\n\nif(NOT EXISTS \"${CTEST_SOURCE_DIRECTORY}\")\n set(CTEST_CHECKOUT_COMMAND \"cvs -d ${JOB_REPOSITORY} checkout \")\n if(JOB_TAG)\n set(CTEST_CHECKOUT_COMMAND \"${CTEST_CHECKOUT_COMMAND} -r ${JOB_TAG}\")\n endif()\n set(CTEST_CHECKOUT_COMMAND \"${CTEST_CHECKOUT_COMMAND} -d ${SOURCE_NAME}\")\n set(CTEST_CHECKOUT_COMMAND \"${CTEST_CHECKOUT_COMMAND} ${JOB_MODULE}\")\nendif()\nset(CTEST_UPDATE_COMMAND \"cvs\")\n\nfile(WRITE \"${CTEST_BINARY_DIRECTORY}\/CMakeCache.txt\" \"${JOB_INITIAL_CACHE}\")\n\nctest_start(${JOB_BUILDTYPE})\nctest_update(SOURCE ${CTEST_SOURCE_DIRECTORY})\nctest_configure(BUILD \"${CTEST_BINARY_DIRECTORY}\" RETURN_VALUE res)\nctest_build(BUILD \"${CTEST_BINARY_DIRECTORY}\" RETURN_VALUE res)\nctest_test(BUILD \"${CTEST_BINARY_DIRECTORY}\" RETURN_VALUE res)\n# The following lines are used to associate a build id with this job.\nset(CTEST_DROP_SITE ${JOB_DROP_SITE})\nset(CTEST_DROP_LOCATION ${JOB_DROP_LOCATION})\nctest_submit(RETURN_VALUE res)\n\nmessage(\"DONE\")\n","MaxUploadQuota":"10"}}
As a "public" variable name was mentionned, I tried checking "Public dashboard" in the first tab when creating the project. This allowed me to create the project succesfully. Unchecking this box after the first save and clicking "Update project" also worked apparently.
If no further issue is encountered when we use the projects created, this workaround may be satisfying. However it would be nice to know what the root cause of the bug is, in order to prove that it is an isolated bug and not a symptom of some bigger problem.
Could you please tell me what kind of additional information I could provide to help determining the nature of the underlying problem?
I'm glad you found your way around this problem. Thanks for sharing the details.
On Mon, Jan 20, 2020 at 8:45 AM Yves Grasland [email protected] wrote:
SQL error in Project Create():Incorrect integer value: '' for column 'public'
This looks familiar. IIRC, it comes down to a MySQL setting on how uninitialized variables are treated. Nonetheless, it seems like a bug in CDash to me. I'll take a closer look and fix it if it still persists in master.
I have run into this issue also.... any updates?