ROSE Compiler Framework/Jenkins Failures
Misc. failures
editProblem Failure in astFileIOTests:
filename = /getcwd: : No such file or directory ... Error preDeleteTests(): classType->get_declaration() = 0x25492af0 = SgClassDeclaration make[5]: *** [test-read-medium] Aborted make[4]: *** [check-local] Error 2
Solution: This is usually due to a system error so the solution is to simply restart the failed job.
Problem Failure in git-clone:
ERROR: Error cloning remote repo 'origin' : Could not clone rose-dev@rosecompiler.llnl.gov:rose/edg4x/rose-sh.git hudson.plugins.git.GitException: Could not clone rose-dev@rosecompiler.llnl.gov:rose/edg4x/rose-sh.git at hudson.plugins.git.GitAPI.clone(GitAPI.java:271) at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1040) at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:982) at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2273) at hudson.remoting.UserRequest.perform(UserRequest.java:118) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:270) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) ...
Solution: This is usually due to a system error so the solution is to simply restart the failed job.
Problem Failure in git-clone or ssh:
ControlSocket /tmp/rose-dev@rosecompiler.llnl.gov:22 already exists fatal: The remote end hung up unexpectedly at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:863) at hudson.plugins.git.GitAPI.access$000(GitAPI.java:40) at hudson.plugins.git.GitAPI$1.invoke(GitAPI.java:267) at hudson.plugins.git.GitAPI$1.invoke(GitAPI.java:246) at hudson.FilePath.act(FilePath.java:852) at hudson.FilePath.act(FilePath.java:825) at hudson.plugins.git.GitAPI.clone(GitAPI.java:246) ... 12 more Trying next repository ERROR: Could not clone repository FATAL: Could not clone
Solution: The error here has to do with the SSH configuration (~/.ssh/config), specifically the ControlSocket setting. The solution could be to remove this optional (convenience) configuration.
Problem Failure in git-submodule-update:
Commencing build of Revision 1d4fd18f6d17dd66553a248496026ceb88773fac (detached) Merging Revision 1d4fd18f6d17dd66553a248496026ceb88773fac (detached) onto master FATAL: Command "git submodule update" returned status code 1: fatal: reference is not a tree: d19d03c5d63860f0e9cc1c35afc4f8b8ca682afd Unable to checkout 'd19d03c5d63860f0e9cc1c35afc4f8b8ca682afd' in submodule path 'src/frontend/CxxFrontend/EDG'
Solution: Ensure that you have pushed your accompanying submodule commits.
Problem Input/Output error while executing a script
/tmp/hudson2706138848682410422.sh: line 29: /home/hudson-rose/Applications/jenkins/scripts/tests/rose-test.sh: Input/output error Build step 'Execute shell' marked build as failure
Solution: Restart the job; this is an I/O error that could be related to NFS.
Problem' Problem fetching from origin / origin - could be unavailable. Continuing anyway.
Fetching upstream changes from rose-dev@rosecompiler.llnl.gov:rose/edg4x/rose-sh.git ERROR: Problem fetching from origin / origin - could be unavailable. Continuing anyway. hudson.plugins.git.GitException: Command "git fetch -t rose-dev@rosecompiler.llnl.gov:rose/edg4x/rose-sh.git +refs/heads/*:refs/remotes/origin/*" returned status code 128: stdout: stderr: ssh_exchange_identification: Connection closed by remote host fatal: The remote end hung up unexpectedly at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:863)
Solution: Restart the job; this is due to ?.
Problem' $ROSE_INSTALL does not exist
$ROSE_INSTALL does not exist: '/home/hudson-rose/opt/rose/edg4x//frontend/EDG_4_4/gcc/4.2.4' + exit 1
Solution: Ensure that the make-install job has completed first for the given GIT_COMMIT and GCC Version. Then, you may restart the job.
Problem rsync error: some files/attrs were not transferred
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]
Solution: Restarting the job could solve it. This is usually due to some NFS, SSH, or permission problem while a ROSE workspace is being copied.
Problem ../../scripts/dotgenLetterPDF inputCode_wholeAST_1_WholeAST.dot inputCode_ASTWholeGraphGenerator_small.pdf Can't find GraphViz dot program in user's path, ignoring conversion to postscript file (not a problem) ... if ! test -e inputCode_ASTWholeGraphGenerator_small.pdf; then exit 1; fi
C0-Start
edithttp://hudson-rose-30:8080/job/C0-Start/
1. Problem: can't merge your branch cleanly
Solution: Run git-merge on your local machine to resolve the merge conflicts with master.
For example,
2. Problem: FAILED Has new commits?
Solution: Make sure you've committed your changes and then push your changesets again. Otherwise, ignore the message, maybe your already-integrated branch simply got tested by mistake.
3. Problem: Errors detected by the no tab characters policy. Aborting now.
The following C/C++ source files contain TAB characters, which can be fixed in a variety of ways. Perhaps the easiest is to run this script again with the "--fix" switch (see "./scripts/policies/NoTabCharacters.pl --help" for details). src/midend/programAnalysis/genericDataflow/analysis/analysis.C src/midend/programAnalysis/genericDataflow/analysis/dataflow.C src/midend/programAnalysis/genericDataflow/simpleAnalyses/liveDeadVarAnalysis.C Errors detected by the no tab characters policy. Aborting now. Build step 'Execute shell' marked build as failure Project C0-Start still waiting for 12 builds to complete Notifying upstream projects of job completion Finished: FAILURE
Solution:
Follow the instructions to remove the TAB characters from your source files:
$ cd $ROSE_SOURCE $ ./scripts/policies/NoTabCharacters.pl --fix
And next time, please run the tests locally before you push! (The policy checks are a part of make all. You can also run ./scripts/policies-checker.sh separately from the top-level of the ROSE source tree.)
4. Problem: Errors detected by the unix line termination policy. Aborting now.
POLICY Checking unix line termination policy (./scripts/policies/UnixLineTermination.pl) ROSE developers predominantly use Unix-like systems for development. These systems use the ASCII LF (line feed, '\n') character for line termination. Some other operating systems insert a CR (carriage return, '\r') in front of the LF. Insertion of the extra CR causes problems for revision management software and some Unix-based text editors which developers then have to work around and/or correct. To convert a file from any mixture of CR+LF or LF-only line endings to LF-only line endings, use: * the unix command "dos2unix" * vim 7.0 and later commands ':update', ':setlocal ff=unix'. * in XEmacs use the "M-x set-buffer-file-coding-system RET" and enter "undecided-unix". The following source files have CR+LF line termination: 3 ( 100%) lines in ./tests/CompileTests/Fortran_tests/test2011_Rice_function-no-result-1.f90 6 ( 100%) lines in ./tests/CompileTests/Fortran_tests/test2011_Rice_function-no-result-2.f90 3 ( 100%) lines in ./tests/CompileTests/Fortran_tests/test2011_Rice_function-result-1.f90 Errors detected by the unix line termination policy. Aborting now. ... Finished: FAILURE
Solution:
Follow the instructions to remove the CR+LF line termination characters from your source files:
$ man dos2unix $ dos2unix ${ROSE_SOURCE}/path/to/culprit/file_1 $ dos2unix ${ROSE_SOURCE}/path/to/culprit/file_2 ... $ dos2unix ${ROSE_SOURCE}/path/to/culprit/file_N
And next time, please run the tests locally before you push! (The policy checks are a part of make all. You can also run ./scripts/policies-checker.sh separately from the top-level of the ROSE source tree.)
5. Problem: Errors detected by the unused sources policy. Aborting now.
Number of remaining unused source files: 1482. Errors detected by the unused sources policy. Aborting now. ... Finished: FAILURE
The "Unused Sources Policy" will pass with "Number of remaining unused source files: 1481.". Therefore, you will see at least 1481 lines of output source files. No, they are not your problem. Simply, when this policy was first put into place, there were culprit files already. The point of this policy is simply not to lower the bar, i.e. to not go above 1481 unused sources. (Maybe one day we'll actually fix this).
Solution:
Make sure your source file is mentioned in some sort of Makefile that matches this regular expression: /\/(Makefile\.am|Makefile_variables|CMakeList\.txt|make_rule\.inc|Makefile-.*\.inc)$/ (as of commit 213fd5d72, July 26, 2012).
And next time, please run the tests locally before you push! (The policy checks are a part of make all. You can also run ./scripts/policies-checker.sh separately from the top-level of the ROSE source tree.)
C6-ROSE-distcheck
edithttp://hudson-rose-30:8080/job/C6-ROSE-distcheck/
Problem:
make[3]: *** No rule to make target `README', needed by `distdir'. Stop. ... make: *** [distdir] Error 1 ******************************************************************************** *** FAILED make distcheck step ********************************************************************************
The problem is that some files are not automatically added into the software distribution during "make dist". For example, input test code files, README files, and configuration files.
Prognosis:
Overview of "make distcheck":
1. "make dist": ensure that you can successfully create a tarball distribution of the software package.
2. The tarball distribution is un-tarred (unpackaged) and the tests are then carried out on this distribution source tree.
3. "$ROSE/configure": configure the software package with GNU Autoconf.
4. "make all": build the software package GNU Automake.
5. "make check": execute the software package's regression tests using GNU Automake check-local rules.
Files are not always automatically added into the distribution tarball (during "make dist"). However, most source and header files will be automatically added if they are used to build libraries and executables (specified within Automake makefiles, Makefile.am).
Solution:
- Add the culprit files into the EXTRA_DIST Automake variable in the appropriate Makefile.am file.
EXTRA_DIST = README project.config
- Test "make distcheck" on your local machine before you push next time!
Reference:
- Basics of distribution: http://www.delorie.com/gnu/docs/automake/automake_91.html
Problem: cannot find input file Makefile.in
config.status: error: cannot find input file: projects/RTC/docs/Makefile.in make: *** [distcheck] Error 1
The problem is that the Makefile.am does not list all of the project's sub-directories. The result is that make dist is unable to create a complete distribution since it does not know to descend into the project's sub-directories since they are not listed.
The $ROSE/projects/RTC/Makefile.am looked like this:
SUBDIRS = src
However, there are more sub-directories than just src/:
$ ls projects/RTC/ docs/ include/ libs/ Makefile.am Makefile.in Makefile.in~ RTC.C src/ tests/
Solution:
Add ALL sub-directories to $ROSE/projects/RTC/Makefile.am:
SUBDIRS = \ docs \ include \ libs \ src \ tests
Problem:No rule for librose.la
make[4]: *** No rule to make target `../../../src/librose.la', needed by `vectorization'. Stop. make[4]: *** Waiting for unfinished jobs.... ... make: *** [distdir] Error 1 ******************************************************************************** *** FAILED make distcheck step ********************************************************************************
The following Makefile.am is used in the tests directory of a project. The translator simply takes the code in TESTCODES as input and performs the translation.
TESTCODES = \
simpleArithmetic.c \
simpleIntegerArithmetic.c \
multiDimensionArray.c
../src/vectorization:
$(MAKE) -C $(top_builddir)/projects/vectorization/src
...
$(TESTCODES): ../src/vectorization
../src/vectorization $(srcdir)/$@
check-local:
@$(MAKE) $(TESTCODES)
EXTRA_DIST = $(TESTCODES)
The problem is that TESTCODES is listed in EXTRA_DIST for distribution and also served as target rule in the Makefile. It's still unclear how Make distdir handles this case. But avoiding using the variable in EXTRA_DIST as Makefile rule can eliminate this issue.
Solution:
- Add another variable for the makefile rule.
TESTCODES = \
simpleArithmetic.c \
simpleIntegerArithmetic.c \
multiDimensionArray.c
+TEST_OUTPUTS = $(TESTCODES:.c=)
../src/vectorization:
$(MAKE) -C $(top_builddir)/projects/vectorization/src
...
$(TEST_OUTPUTS): ../src/vectorization
../src/vectorization $(srcdir)/$(@:=.c)
check-local:
@$(MAKE) $(TEST_OUTPUTS)
EXTRA_DIST = $(TESTCODES)
Problem Operation not permitted
C6-ROSE-distcheck
******************************************************************************** *** Starting ROSE-build setup step ******************************************************************************** chmod: changing permissions of `./ROSE-build/rose-0.9.5a': Operation not permitted chmod: changing permissions of `./ROSE-build/rose-0.9.5a/docs': Operation not permitted chmod: cannot read directory `./ROSE-build/rose-0.9.5a/docs': Permission denied chmod: changing permissions of `./ROSE-build/rose-0.9.5a/rose_config.h': Operation not permitted chmod: changing permissions of `./ROSE-build/rose-0.9.5a/rose_config.h.in': Operation not permitted chmod: changing permissions of `./ROSE-build/rose-0.9.5a/ROSE_ResearchPapers': Operation not permitted chmod: changing permissions of `./ROSE-build/rose-0.9.5a/ROSE_ResearchPapers/2008-09-SignatureVisualizationOfSoftwareBinaries-SoftVis.pdf': Operation not permitted chmod: changing permissions of `./ROSE-build/rose-0.9.5a/ROSE_ResearchPapers/2009-TechniquesForSoftwareQualityAnalysisOfBinaries-ISTA.pdf': Operation not permitted chmod: changing permissions of `./ROSE-build/rose-0.9.5a/ROSE_ResearchPapers/lcpc03_qsys_final.tgz': Operation not permitted chmod: changing permissions of `./ROSE-build/rose-0.9.5a/ROSE_ResearchPapers/2007-CommunicatingSoftwareArchitectureUsingAUnifiedSingle-ViewVisualization-ICECCS.pdf': Operation not permitted chmod: changing permissions of `./ROSE-build/rose-0.9.5a/ROSE_ResearchPapers/2003-ParallelObject-OrientedFrameworkOptimization-CPC.pdf': Operation not permitted chmod: changing permissions of `./ROSE-build/rose-0.9.5a/ROSE_ResearchPapers/2007-AnalyzingAndVisualizingWholeProgramArchitectures-Aerose-ICSE.pdf': Operation not permitted [many more similar lines omitted...]
C2-ROSE-language-matrix-linux
edithttp://hudson-rose-30:8080/job/C2-ROSE-language-matrix-linux/ http://hudson-rose-30:8080/job/C2-ROSE-language-matrix-osx/
Problem: ROSE has configuration options (e.g., --enable-only-java) to toggle (compiler frontend) language support (see $ROSE/configure --help for more information).
Many new developers are not aware of this so their work often fails on these tests due to invalid assumptions about which frontends are enabled, or disabled.
...: Assertion `! "[FATAL] [ROSE] [frontend] [C/C++] " "ROSE was not configured to support the C/C++ frontend."' failed.
Solution: To pass these tests, make sure you have conditional blocks in your GNU Automake Makefile.am to turn on (compiler frontend) language specific logic.
Example: In your Fortran-specific work, use the following conditional:
if ROSE_BUILD_FORTRAN_LANGUAGE_SUPPORT check-local: echo "Fortran (compiler frontend) language support is ENABLED!" else echo "Fortran (compiler frontend) language support is DISABLED!" endif
Language independent test codes can be found in ${ROSE}tests/input_codes/Makefile.for.input.codes:
A full example of these conditionals are given in this file:
# TODO: add CUDA and OpenCL ##------------------------------------------------------------------------------ ## Minimal input codes (just enough to be 'compiled') #ROSE_BUILD_C_LANGUAGE_SUPPORT and ROSE_BUILD_CXX_LANGUAGE_SUPPORT are equivalent in ROSE due to the same EDG C++ frontend used. if ROSE_BUILD_C_LANGUAGE_SUPPORT __minimal_input_code = $(top_srcdir)/tests/input_codes/minimal/minimal.cpp else if ROSE_BUILD_FORTRAN_LANGUAGE_SUPPORT __minimal_input_code = $(top_srcdir)/tests/input_codes/minimal/minimal.f90 else if ROSE_BUILD_JAVA_LANGUAGE_SUPPORT __minimal_input_code = $(top_srcdir)/tests/input_codes/minimal/minimal.java else if ROSE_BUILD_PHP_LANGUAGE_SUPPORT __minimal_input_code = $(top_srcdir)/tests/input_codes/minimal/minimal.php else if ROSE_BUILD_PYTHON_LANGUAGE_SUPPORT __minimal_input_code = $(top_srcdir)/tests/input_codes/minimal/minimal.py else if ROSE_BUILD_BINARY_ANALYSIS_SUPPORT __minimal_input_code = $(top_srcdir)/tests/input_codes/minimal/minimal.binary endif # Binary analysis endif # Python endif # PHP endif # Java endif # Fortran endif # C
Java unexpected error
edit../../testTranslator -rose:java:d javac-output-classes -rose:verbose 0 ../../../../tests/CompileTests/Java_tests/test2011_02.java # # An unexpected error has been detected by Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00002b2e79c63961, pid=24881, tid=47481965754688 # # Java VM: Java HotSpot(TM) 64-Bit Server VM (11.0-b16 mixed mode linux-amd64) # Problematic frame: # V [libjvm.so+0x484961] # # An error report file with more information is saved as: # /export/tmp.hudson-rose/hudson/workspace/C1-ROSE-from-scratch-linux/ROSE_TEST_BUILD_STYLE/make-check-install-minimal/ROSE_TEST_GCC_VERSION/4.0.4/label/amd64-linux/ROSE-build/tests/CompileTests/Java_tests/hs_err_pid24881.log # # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # make[5]: *** [test2011_02.o] Error 1 make[5]: *** Waiting for unfinished jobs.... Test using Java 1.4 version support.
../../testTranslator -rose:verbose 0 -rose:detect_dangling_pointers 2 -I../../../../tests/CompileTests/Fortran_tests -rose:f90 -c ../../../../tests/CompileTests/Fortran_tests/test2011_Rice_A-cant-assert-keyword-nonnull.f90
# # An unexpected error has been detected by Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00d38750, pid=12219, tid=3012402064 # # Java VM: Java HotSpot(TM) Server VM (11.0-b16 mixed mode linux-x86) # Problematic frame: # C [libstdc++.so.6+0xb5750] __dynamic_cast+0x20 # # An error report file with more information is saved as: # /export/tmp.hudson-rose/hudson/workspace/C1-ROSE-from-scratch-linux/ROSE_TEST_BUILD_STYLE/make-check-install-minimal/ROSE_TEST_GCC_VERSION/4.1.2/label/i686-linux/ROSE-build/tests/CompileTests/Fortran_tests/hs_err_pid12219.log # # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # Note: astNode = 0x98dc790 = SgBasicBlock parent = 0x98fdad8 Note: parentNode = 0x98dc790 = SgBasicBlock <font style="color:red">ERROR: <b>building test2011_Rice_A-cant-assert-keyword-nonnull.o</b></font> Hide Details make[6]: *** [test2011_Rice_A-cant-assert-keyword-nonnull.o] Aborted make[6]: *** Waiting for unfinished jobs....