[ 
https://issues.jenkins-ci.org/browse/JENKINS-14064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=163730#comment-163730
 ] 

Ulli Hafner commented on JENKINS-14064:
---------------------------------------

A simple workaround would be to pipe the output through a script that replaces 
the "../../sli" references with "sli". 

Do you have an idea on how to resolve that directly in the plug-in?


                
> Copying the source file on the Hudson master failed / Clang / autotools VPATH
> -----------------------------------------------------------------------------
>
>                 Key: JENKINS-14064
>                 URL: https://issues.jenkins-ci.org/browse/JENKINS-14064
>             Project: Jenkins
>          Issue Type: Bug
>          Components: warnings
>         Environment: Master: RHEL 6.2, Jenkins LTS, Warnings 4.5; Slave: 
> Fedora Core 16
>            Reporter: Yury Zaytsev
>            Assignee: Ulli Hafner
>            Priority: Minor
>         Attachments: consoleText.log.zip
>
>
> Hi,
> I set up a VPATH build of an autotools-based software in a custom workspace 
> (set per node) in "build" directory:
> /mnt/ram/workspace/[job-id]/build
> Therefore generally files are referenced in the log as ../../folder/file.cpp, 
> because the build directory only contains Makefiles and other temporarily 
> generated data. E.g. when files from nestkernel are compiled through the 
> Makefiles in 
> /mnt/ram/workspace/[job-id]/build/nestkernel
> the source files are referenced as ../../nestkernel/file.cpp so that it 
> resolves as
> /mnt/ram/workspace/[job-id]/nestkernel/file.cpp
> I'm afraid this can't be possibly changed. Now because of that LLVM parser 
> extracts warnings as belonging e.g. to "../../nestkernel", so apparently the 
> file references are later resolved as
> /mnt/nestkernel/file.cpp
> relative to
> /mnt/ram/workspace/[job-id]/
> and not to
> /mnt/ram/workspace/[job-id]/build/nestkernel
> which of course doesn't exist so I'm getting the following kind of errors 
> when I try to see the file:
> {code}
> Content of file connection_manager.cpp
> 01 Copying the source file '../../nestkernel/connection_manager.cpp' from the 
> workspace to the build folder 
> '/var/lib/jenkins/jobs/nest-clang-test/builds/2012-06-08_17-46-33/workspace-files/7976711b.tmp'
>  on the Hudson master failed.
> 02 Seems that the path is relative, however an absolute path is required when 
> copying the sources.%nIs the file 'connection_manager.cpp' contained more 
> than once in your workspace?
> 03 Is the file '../../nestkernel/connection_manager.cpp' a valid filename?
> 04 If you are building on a slave: please check if the file is accessible 
> under '$HUDSON_HOME/[job-name]/../../nestkernel/connection_manager.cpp'
> 05 If you are building on the master: please check if the file is accessible 
> under 
> '$HUDSON_HOME/[job-name]/workspace/../../nestkernel/connection_manager.cpp'
> 06 hudson.util.IOException2: remote file operation failed: 
> ../../nestkernel/connection_manager.cpp at 
> hudson.remoting.Channel@68b7cdc6:fc-16-i386-2
> 07   at hudson.FilePath.act(FilePath.java:780)
> 08   at hudson.FilePath.act(FilePath.java:766)
> 09   at hudson.FilePath.copyTo(FilePath.java:1460)
> 10   at 
> hudson.plugins.analysis.core.HealthAwarePublisher.copyFilesWithAnnotationsToBuildFolder(HealthAwarePublisher.java:398)
> 11   at 
> hudson.plugins.analysis.core.HealthAwarePublisher.perform(HealthAwarePublisher.java:355)
> 12   at hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:27)
> 13   at 
> hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:697)
> 14   at 
> hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:672)
> 15   at 
> hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:650)
> 16   at hudson.model.Build$RunnerImpl.post2(Build.java:162)
> 17   at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:619)
> 18   at hudson.model.Run.run(Run.java:1429)
> 19   at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
> 20   at hudson.model.ResourceController.execute(ResourceController.java:88)
> 21   at hudson.model.Executor.run(Executor.java:238)
> 22 Caused by: java.io.FileNotFoundException: 
> ../../nestkernel/connection_manager.cpp (No such file or directory)
> 23   at java.io.FileInputStream.open(Native Method)
> 24   at java.io.FileInputStream.<init>(FileInputStream.java:137)
> 25   at hudson.FilePath$31.invoke(FilePath.java:1465)
> 26   at hudson.FilePath$31.invoke(FilePath.java:1460)
> 27   at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2045)
> 28   at hudson.remoting.UserRequest.perform(UserRequest.java:118)
> 29   at hudson.remoting.UserRequest.perform(UserRequest.java:48)
> 30   at hudson.remoting.Request$2.run(Request.java:287)
> 31   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> 32   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> 33   at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> 34   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> 35   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> 36   at java.lang.Thread.run(Thread.java:679)
> {code}
> A typical log snippet looks like this:
> {code}
> mv -f .deps/libdevelopermodule_la-maturing_connector_fr.Tpo 
> .deps/libdevelopermodule_la-maturing_connector_fr.Plo
> /bin/sh ../libtool  --tag=CXX   --mode=compile clang++ -DHAVE_CONFIG_H -I. 
> -I../../developer -I../libnestutil  -I../../libnestutil -I../../librandom 
> -I../../sli -I../../nestkernel -I../../models -I../../libltdl -I/usr/include  
>   -W -Wall -pedantic -Wno-long-long  -O2   -MT 
> libdevelopermodule_la-stdp_triplet_connection.lo -MD -MP -MF 
> .deps/libdevelopermodule_la-stdp_triplet_connection.Tpo -c -o 
> libdevelopermodule_la-stdp_triplet_connection.lo `test -f 
> 'stdp_triplet_connection.cpp' || echo 
> '../../developer/'`stdp_triplet_connection.cpp
> libtool: compile:  clang++ -DHAVE_CONFIG_H -I. -I../../developer 
> -I../libnestutil -I../../libnestutil -I../../librandom -I../../sli 
> -I../../nestkernel -I../../models -I../../libltdl -I/usr/include -W -Wall 
> -pedantic -Wno-long-long -O2 -MT 
> libdevelopermodule_la-stdp_triplet_connection.lo -MD -MP -MF 
> .deps/libdevelopermodule_la-stdp_triplet_connection.Tpo -c 
> ../../developer/stdp_triplet_connection.cpp  -fPIC -DPIC -o 
> .libs/libdevelopermodule_la-stdp_triplet_connection.o
> In file included from ../../developer/stdp_triplet_connection.cpp:19:
> In file included from ../../nestkernel/network.h:24:
> In file included from ../../nestkernel/model.h:23:
> In file included from ../../nestkernel/node.h:28:
> In file included from ../../sli/dictdatum.h:22:
> In file included from ../../sli/interpret.h:28:
> In file included from ../../sli/tokenstack.h:25:
> ../../sli/tokenarray.h:422:19: warning: operands of ? are integers of 
> different signs: 'unsigned long' and 'long' [-Wsign-compare]
>   rot = (rot < 0) ? rot+size() : rot;
>                   ^ ~~~~~~~~~~   ~~~
> {code}
> Apparently this problem is not specific to Clang, but probably is also valid 
> for GCC (but I don't seem to remember anything like that, can it be that 
> workspace scan is not working for LLVM?!), so as long as VPATH (out of source 
> tree) builds are involved this problem manifests itself.
> Is there any way in which this can be disambiguated?
> Thanks!

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to