<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace">Hello, Tim, thanks for trying it out again and thanks for your time</div><div class="gmail_default" style="font-family:monospace,monospace">in debugging this issue and providing logs.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">This problem is happening because we&#39;re not using fuego-host-scripts</div><div class="gmail_default" style="font-family:monospace,monospace">in the derived fuego-release-test, what ends up resulting in the</div><div class="gmail_default" style="font-family:monospace,monospace">jenkins&#39; user not being properly mapped to the host&#39;s user.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">That&#39;s my fault, I forgot that this would be required in the</div><div class="gmail_default" style="font-family:monospace,monospace">derivate image as well.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">I temporarily added that logic to build_and_run.sh (as a fixup commit)<br></div><div class="gmail_default" style="font-family:monospace,monospace">so that you&#39;re able to test it out, please see the patch below:</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace"><div class="gmail_default">diff --git a/build_and_run.sh b/build_and_run.sh</div><div class="gmail_default">index e448ddf..0134759 100755</div><div class="gmail_default">--- a/build_and_run.sh</div><div class="gmail_default">+++ b/build_and_run.sh</div><div class="gmail_default">@@ -50,6 +50,25 @@ fi</div><div class="gmail_default"> </div><div class="gmail_default"> if [ &quot;$1&quot; = &quot;up&quot; ]; then</div><div class="gmail_default">     if [ -v clean_start ]; then</div><div class="gmail_default">+        # FIXME: We should provide a simpler way of mapping jenkins uid with</div><div class="gmail_default">+        # hosts uid, that does not require the user (that&#39;s extending</div><div class="gmail_default">+        # fuego-base) to have this logic in his docker build.</div><div class="gmail_default">+        #</div><div class="gmail_default">+        # Jenkins&#39; uid/gid should probably be given as a docker-run variable</div><div class="gmail_default">+        # (as http_proxy/https_proxy, and set properly through fuego-base</div><div class="gmail_default">+        # entrypoint.)</div><div class="gmail_default">+        #</div><div class="gmail_default">+        if [ &quot;${UID}&quot; == &quot;0&quot; ]; then</div><div class="gmail_default">+            uid=$(id -u &quot;${SUDO_USER}&quot;)</div><div class="gmail_default">+            gid=$(id -g &quot;${SUDO_USER}&quot;)</div><div class="gmail_default">+        else</div><div class="gmail_default">+            uid=&quot;${UID}&quot;</div><div class="gmail_default">+            gid=$(id -g &quot;${USER}&quot;)</div><div class="gmail_default">+        fi</div><div class="gmail_default">+</div><div class="gmail_default">+        sed -i &quot;s/HOST_UID/${uid}/&quot; ./fuego-ro/conf/fuego.conf</div><div class="gmail_default">+        sed -i &quot;s/HOST_GID/${gid}/&quot; ./fuego-ro/conf/fuego.conf</div><div class="gmail_default">+</div><div class="gmail_default">         docker build -t &quot;${fuego_rt_image}&quot; .</div><div class="gmail_default">         docker rm -f &quot;${fuego_rt_container}&quot;</div><div class="gmail_default">         docker run -dit --name ${fuego_rt_container} \</div><div class="gmail_default">diff --git a/fuego-ro/conf/fuego.conf b/fuego-ro/conf/fuego.conf</div><div class="gmail_default">index 0c95eae..96cdcc9 100644</div><div class="gmail_default">--- a/fuego-ro/conf/fuego.conf</div><div class="gmail_default">+++ b/fuego-ro/conf/fuego.conf</div><div class="gmail_default">@@ -1,3 +1,3 @@</div><div class="gmail_default">-docker_jenkins_uid=1000</div><div class="gmail_default">-docker_jenkins_gid=987</div><div class="gmail_default">+docker_jenkins_uid=HOST_UID</div><div class="gmail_default">+docker_jenkins_gid=HOST_GID</div><div class="gmail_default"><br></div><div class="gmail_default">As I mentioned in my FIXME message, its undesirable to require a derivate</div><div class="gmail_default">image to contain specific build steps (as the one that&#39;s replacing the id into fuego.conf),</div><div class="gmail_default">so we might need to come up with a better approach to make this work.</div><div class="gmail_default"><br></div><div class="gmail_default">The patch has already been pushed to</div><div class="gmail_default"><a href="https://bitbucket.org/profusionmobi/fuego-release-test" rel="noreferrer" target="_blank" style="color:rgb(17,85,204);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)"><div class="gmail_default" style="font-family:monospace,monospace;display:inline">​</div>https://bitbucket.org/<wbr>profusionmobi/fuego-release-<wbr>test</a> (master).</div><div class="gmail_default">Can you please re-sync and test again?</div><div class="gmail_default"><br></div><div class="gmail_default"><br></div><div class="gmail_default">Thank you</div><div class="gmail_default"><br></div><div class="gmail_default">--</div><div class="gmail_default">Guilherme</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 21, 2018 at 11:48 AM,  <span dir="ltr">&lt;<a href="mailto:Tim.Bird@sony.com" target="_blank">Tim.Bird@sony.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">&gt; -----Original Message-----<br>
&gt; From: Guilherme Camargo<br>
&gt; ​Tim, please sync the repo again (​<br>
&gt; <a href="https://bitbucket.org/profusionmobi/fuego-release-test" rel="noreferrer" target="_blank"><div class="gmail_default" style="font-family:monospace,monospace;display:inline">​​</div>https://bitbucket.org/<wbr>profusionmobi/fuego-release-<wbr>test</a><br>
&gt; &lt;<a href="https://bitbucket.org/profusionmobi/fuego-release-test" rel="noreferrer" target="_blank">https://bitbucket.org/<wbr>profusionmobi/fuego-release-<wbr>test</a>&gt; ​).<br>
&gt; I&#39;ve force-pushed some changes.<br>
&gt;<br>
&gt; After that, you can just run `./build_and_run -c up`.<br>
<br>
My container doesn&#39;t start Jenkins.  I&#39;m not sure if this is<br>
a cascade error from some initial problem, but here is<br>
some information about my situation.<br>
<br>
I removed my repository, and did a new &#39;git clone&#39; of the<br>
fuego-release-test repository.  It doesn&#39;t appear to me to<br>
be updated recently:<br>
<br>
$ git branch -v<br>
* master 9d82c80 Initial commit<br>
$ git log<br>
commit 9d82c80d66a4de24ab97b38a16c853<wbr>6849fea5bc<br>
Author: Guilherme Campos Camargo &lt;<a href="mailto:guicc@profusion.mobi">guicc@profusion.mobi</a>&gt;<br>
Date:   Tue Feb 6 02:13:20 2018 -0200<br>
<br>
    Initial commit<br>
<br>
    This repository has been created to store the resources needed for the<br>
    generation of a Docker image, based on fuego-base, that has all the<br>
    tools needed for the automation of the tests that are required for<br>
    validating a new Fuego release with Fuego itself.<br>
...<br>
<br>
I see that there are other branches with more recent commits (the<br>
&#39;ppa&#39;, and the &#39;fuego-base&#39; branch.  Should I be using one of these?<br>
<br>
Here&#39;s the error I saw while trying build_and_run.sh:<br>
<br>
-----<br>
Downloading/unpacking pexpect<br>
Downloading/unpacking ptyprocess&gt;=0.5 (from pexpect)<br>
  Downloading ptyprocess-0.5.2-py2.py3-none-<wbr>any.whl<br>
Installing collected packages: pexpect, ptyprocess<br>
Successfully installed pexpect ptyprocess<br>
Cleaning up...<br>
 ---&gt; fd97e25fac02<br>
Removing intermediate container 5a3a3638cb21<br>
Step 4/7 : RUN echo &quot;jenkins ALL = (root) NOPASSWD: /usr/bin/docker, /bin/sh&quot; &gt;&gt; /etc/sudoers<br>
 ---&gt; Running in da0a1d824354<br>
 ---&gt; fb6468918ab5<br>
Removing intermediate container da0a1d824354<br>
Step 5/7 : COPY fuego-ro /fuego-ro<br>
 ---&gt; bbe089e90e5f<br>
Removing intermediate container 6a4b20b92a4e<br>
Step 6/7 : COPY tests /fuego-core/engine/tests<br>
 ---&gt; 57c7374dd097<br>
Removing intermediate container aa6b4c80255c<br>
Step 7/7 : COPY fuego-rt-entrypoint.sh /<br>
 ---&gt; 9ef063ab4a5b<br>
Removing intermediate container 32a90a4f3abb<br>
Successfully built 9ef063ab4a5b<br>
Successfully tagged fuego-rt:latest<br>
Error response from daemon: No such container: fuego-rt-container<br>
6f513d49f117300672e1ba8782f041<wbr>1448ffdf8e5258dd689797895cd79d<wbr>8068<br>
Waiting for Jenkins on <a href="http://localhost:8090/fuego/." rel="noreferrer" target="_blank">http://localhost:8090/fuego/.</a>.<wbr>.<br>
Creating job fuego-test.default.Functional.<wbr>fuegotest<br>
fuego-rt-container<br>
[FAIL] Starting Jenkins Continuous Integration Server: jenkins failed!<br>
[ ok ] Starting network benchmark server.<br>
root@6f513d49f117:/#<br>
<br>
-----<br>
<br>
And here is some investigation:<br>
-----<br>
root@6f513d49f117:/# tail -n 20 /var/log/jenkins/jenkins.log<br>
INFO: Winstone shutdown successfully<br>
Feb 21, 2018 2:13:22 PM winstone.Logger logInternal<br>
SEVERE: Container startup failed<br>
java.io.FileNotFoundException: /var/cache/jenkins/war/META-<wbr>INF/MANIFEST.MF (Permission denied)<br>
        at java.io.FileOutputStream.open(<wbr>Native Method)<br>
        at java.io.FileOutputStream.&lt;<wbr>init&gt;(FileOutputStream.java:<wbr>221)<br>
        at java.io.FileOutputStream.&lt;<wbr>init&gt;(FileOutputStream.java:<wbr>171)<br>
        at winstone.HostConfiguration.<wbr>getWebRoot(HostConfiguration.<wbr>java:280)<br>
        at winstone.HostConfiguration.&lt;<wbr>init&gt;(HostConfiguration.java:<wbr>83)<br>
        at winstone.HostGroup.initHost(<wbr>HostGroup.java:66)<br>
        at winstone.HostGroup.&lt;init&gt;(<wbr>HostGroup.java:45)<br>
        at winstone.Launcher.&lt;init&gt;(<wbr>Launcher.java:143)<br>
        at winstone.Launcher.main(<wbr>Launcher.java:352)<br>
        at sun.reflect.<wbr>NativeMethodAccessorImpl.<wbr>invoke0(Native Method)<br>
        at sun.reflect.<wbr>NativeMethodAccessorImpl.<wbr>invoke(<wbr>NativeMethodAccessorImpl.java:<wbr>57)<br>
        at sun.reflect.<wbr>DelegatingMethodAccessorImpl.<wbr>invoke(<wbr>DelegatingMethodAccessorImpl.<wbr>java:43)<br>
        at java.lang.reflect.Method.<wbr>invoke(Method.java:606)<br>
        at Main._main(Main.java:264)<br>
        at Main.main(Main.java:112)<br>
<br>
root@6f513d49f117:/# su - jenkins<br>
jenkins@6f513d49f117:~$ cat /var/cache/jenkins/war/META-<wbr>INF/MANIFEST.MF<br>
cat: /var/cache/jenkins/war/META-<wbr>INF/MANIFEST.MF: Permission denied<br>
jenkins@6f513d49f117:~$ ls -lad /var /var/cache /var/cache/jenkins /var/cache/jenkins/war /var/cache/jenkins/war/META-<wbr>INF /var/cache/jenkins/war/META-<wbr>INF/MANIFEST.MF<br>
ls: cannot access /var/cache/jenkins/war: Permission denied<br>
ls: cannot access /var/cache/jenkins/war/META-<wbr>INF: Permission denied<br>
ls: cannot access /var/cache/jenkins/war/META-<wbr>INF/MANIFEST.MF: Permission denied<br>
drwxr-xr-x 32 root    root    4096 Feb 21 07:12 /var<br>
drwxr-xr-x 17 root    root    4096 Feb 21 07:12 /var/cache<br>
drwxr-x---  4 jenkins jenkins 4096 Feb 21 07:12 /var/cache/jenkins<br>
jenkins@6f513d49f117:~$ exit<br>
logout<br>
root@6f513d49f117:/# ls -lad /var /var/cache /var/cache/jenkins /var/cache/jenkins/war /var/cache/jenkins/war/META-<wbr>INF /var/cache/jenkins/war/META-<wbr>INF/MANIFEST.MF<br>
drwxr-xr-x 32 root    root      4096 Feb 21 07:12 /var<br>
drwxr-xr-x 17 root    root      4096 Feb 21 07:12 /var/cache<br>
drwxr-x---  4 jenkins jenkins   4096 Feb 21 07:12 /var/cache/jenkins<br>
drwxr-xr-x 18 jenkins jenkins   4096 Feb 21 07:12 /var/cache/jenkins/war<br>
drwxr-xr-x  4 jenkins jenkins   4096 Feb 21 07:12 /var/cache/jenkins/war/META-<wbr>INF<br>
-rw-r--r--  1 jenkins jenkins 129535 Feb 15 18:56 /var/cache/jenkins/war/META-<wbr>INF/MANIFEST.MF<br>
root@6f513d49f117:/# su - jenkins<br>
jenkins@6f513d49f117:~$ id<br>
uid=1000(jenkins) gid=987(jenkins) groups=987(jenkins)<br>
jenkins@6f513d49f117:~$<br>
-----<br>
For reasons that escape me, it looks like these permissions are not<br>
allowing jenkins in the container to access the &#39;war&#39; directory:<br>
drwxr-x---  4 jenkins jenkins   4096 Feb 21 07:12 /var/cache/jenkins<br>
<br>
-----<br>
root@6f513d49f117:/var/cache/<wbr>jenkins# chmod o+rx .<br>
root@6f513d49f117:/var/cache/<wbr>jenkins# ls -la<br>
total 12<br>
drwxr-xr-x  4 jenkins jenkins 4096 Feb 21 07:12 .<br>
drwxr-xr-x 17 root    root    4096 Feb 21 07:12 ..<br>
drwxr-xr-x 18 jenkins jenkins 4096 Feb 21 07:12 war<br>
root@6f513d49f117:/var/cache/<wbr>jenkins# su - jenkins<br>
jenkins@6f513d49f117:~$ ls -lad /var /var/cache /var/cache/jenkins /var/cache/jenkins/war /var/cache/jenkins/war/META-<wbr>INF /var/cache/jenkins/war/META-<wbr>INF/MANIFEST.MF<br>
drwxr-xr-x 32 root    root      4096 Feb 21 07:12 /var<br>
drwxr-xr-x 17 root    root      4096 Feb 21 07:12 /var/cache<br>
drwxr-xr-x  4 jenkins jenkins   4096 Feb 21 07:12 /var/cache/jenkins<br>
drwxr-xr-x 18 jenkins jenkins   4096 Feb 21 07:12 /var/cache/jenkins/war<br>
drwxr-xr-x  4 jenkins jenkins   4096 Feb 21 07:12 /var/cache/jenkins/war/META-<wbr>INF<br>
-rw-r--r--  1 jenkins jenkins 129535 Feb 15 18:56 /var/cache/jenkins/war/META-<wbr>INF/MANIFEST.MF<br>
-----<br>
However, maybe it&#39;s not that simple:<br>
-----<br>
<br>
jenkins@6f513d49f117:~$ exit<br>
logout<br>
root@6f513d49f117:/var/cache/<wbr>jenkins# exit<br>
exit<br>
1000072457@tlinux:~/work/<wbr>fuego/release-test-2018-02-19/<wbr>fuego-release-test$ ./build_and_run.sh up<br>
[FAIL] Starting Jenkins Continuous Integration Server: jenkins failed!<br>
[ ok ] Starting network benchmark server.<br>
root@6f513d49f117:/# tail -n 20 /var/log/jenkins/jenkins.log<br>
INFO: Winstone shutdown successfully<br>
Feb 21, 2018 2:38:41 PM winstone.Logger logInternal<br>
SEVERE: Container startup failed<br>
java.io.FileNotFoundException: /var/cache/jenkins/war/META-<wbr>INF/MANIFEST.MF (Permission denied)<br>
        at java.io.FileOutputStream.open(<wbr>Native Method)<br>
        at java.io.FileOutputStream.&lt;<wbr>init&gt;(FileOutputStream.java:<wbr>221)<br>
        at java.io.FileOutputStream.&lt;<wbr>init&gt;(FileOutputStream.java:<wbr>171)<br>
        at winstone.HostConfiguration.<wbr>getWebRoot(HostConfiguration.<wbr>java:280)<br>
        at winstone.HostConfiguration.&lt;<wbr>init&gt;(HostConfiguration.java:<wbr>83)<br>
        at winstone.HostGroup.initHost(<wbr>HostGroup.java:66)<br>
        at winstone.HostGroup.&lt;init&gt;(<wbr>HostGroup.java:45)<br>
        at winstone.Launcher.&lt;init&gt;(<wbr>Launcher.java:143)<br>
        at winstone.Launcher.main(<wbr>Launcher.java:352)<br>
        at sun.reflect.<wbr>NativeMethodAccessorImpl.<wbr>invoke0(Native Method)<br>
        at sun.reflect.<wbr>NativeMethodAccessorImpl.<wbr>invoke(<wbr>NativeMethodAccessorImpl.java:<wbr>57)<br>
        at sun.reflect.<wbr>DelegatingMethodAccessorImpl.<wbr>invoke(<wbr>DelegatingMethodAccessorImpl.<wbr>java:43)<br>
        at java.lang.reflect.Method.<wbr>invoke(Method.java:606)<br>
        at Main._main(Main.java:264)<br>
        at Main.main(Main.java:112)<br>
<br>
root@6f513d49f117:/# su - jenkins<br>
jenkins@6f513d49f117:~$ ls -lad /var /var/cache /var/cache/jenkins /var/cache/jenkins/war /var/cache/jenkins/war/META-<wbr>INF /var/cache/jenkins/war/META-<wbr>INF/MANIFEST.MF<br>
ls: cannot access /var/cache/jenkins/war: Permission denied<br>
ls: cannot access /var/cache/jenkins/war/META-<wbr>INF: Permission denied<br>
ls: cannot access /var/cache/jenkins/war/META-<wbr>INF/MANIFEST.MF: Permission denied<br>
drwxr-xr-x 32 root    root    4096 Feb 21 07:12 /var<br>
drwxr-xr-x 17 root    root    4096 Feb 21 07:12 /var/cache<br>
drwxr-xr-x  4 jenkins jenkins 4096 Feb 21 07:12 /var/cache/jenkins<br>
<br>
I&#39;m running this on Ubuntu 14.04, with docker 17.05.0-ce<br>
<br>
-----<br>
OK - in summary:<br>
<br>
- I think I might be running the wrong branch of fuego-release-test<br>
- I have weird permission problems in my docker container, for the fuego user and group<br>
  that are preventing jenkins from starting<br>
- the jenkins user id and group id don&#39;t match my local user&#39;s user id and group id<br>
<br>
Any help would be appreciated.<br>
 -- Tim<br>
<br>
<br>
</blockquote></div><br></div></div>