smengcl commented on pull request #10:
URL: 
https://github.com/apache/ozone-docker-runner/pull/10#issuecomment-1030783159


   With the patch above, there is seemingly only one issue remaining (all 
acceptance test suites up to `compose/upgrade` test have passed locally on my 
Intel Mac) that might need to be fixed in ozone repo:
   
   Can be reproduced by running `compose/xcompat/test.sh` solely:
   
   ```
   
==============================================================================
   xcompat-cluster-1.1.0-client-1.0.0-read-1.0.0 :: Read Compatibility
   
==============================================================================
   Key Can Be Read                                                       | PASS 
|
   
------------------------------------------------------------------------------
   Dir Can Be Listed                                                     | PASS 
|
   
------------------------------------------------------------------------------
   File Can Be Get                                                       | PASS 
|
   
------------------------------------------------------------------------------
   xcompat-cluster-1.1.0-client-1.0.0-read-1.0.0 :: Read Compatibility   | PASS 
|
   3 critical tests, 3 passed, 0 failed
   3 tests total, 3 passed, 0 failed
   
==============================================================================
   Output:  
/tmp/smoketest/xcompat/result/robot-xcompat-xcompat-write-new_client-3.xml
   
==============================================================================
   xcompat-cluster-1.1.0-client-1.0.0-read-1.1.0 :: Read Compatibility
   
==============================================================================
   Key Can Be Read                                                       | FAIL 
|
   'False' should be true.
   
------------------------------------------------------------------------------
   Dir Can Be Listed                                                     | PASS 
|
   
------------------------------------------------------------------------------
   File Can Be Get                                                       | PASS 
|
   
------------------------------------------------------------------------------
   xcompat-cluster-1.1.0-client-1.0.0-read-1.1.0 :: Read Compatibility   | FAIL 
|
   3 critical tests, 2 passed, 1 failed
   3 tests total, 2 passed, 1 failed
   
==============================================================================
   Output:  
/tmp/smoketest/xcompat/result/robot-xcompat-xcompat-write-new_client-4.xml
   Log:     
/Users/smeng/repo/ozone/hadoop-ozone/dist/target/ozone-1.3.0-SNAPSHOT/compose/xcompat/result/log.html
   Report:  
/Users/smeng/repo/ozone/hadoop-ozone/dist/target/ozone-1.3.0-SNAPSHOT/compose/xcompat/result/report.html
   ```
   
   Note that I have modded `compose/testlib.sh` to generate report even when 
some test fails. And as a (good) side effect the cluster stays up so I can poke 
around. Simply add this line:
   
   ```diff
   diff --git a/hadoop-ozone/dist/src/main/compose/testlib.sh 
b/hadoop-ozone/dist/src/main/compose/testlib.sh
   index 9c3d6c49c1..abad8c03dd 100755
   --- a/hadoop-ozone/dist/src/main/compose/testlib.sh
   +++ b/hadoop-ozone/dist/src/main/compose/testlib.sh
   @@ -204,6 +204,7 @@ execute_robot_test(){
      set -e
    
      if [[ ${rc} -gt 0 ]]; then
   +    generate_report
        stop_docker_env
      fi
   ```
   
   Back to the problem analysis, the test [`Key Can Be 
Read`](https://github.com/apache/ozone/blob/2c53c821c25/hadoop-ozone/dist/src/main/smoketest/compatibility/read.robot#L25-L26)
 seemingly assumed that the file `/etc/passwd` in container ozone-1.0.0 doesn't 
change with switching to the new client version, which is no longer the case 
(centos 8.4 based runner image has a different `/etc/passwd` than the previous 
centos 7.6 based one):
   
   New client (centos 8.4):
   
   ```
   $ docker exec -it xcompat_new_client_1 bash
   
   bash-4.4$ ozone fs -ls ofs://om/vol1/bucket1/
   Found 5 items
   drwxrwxrwx   - hadoop hadoop          0 2022-02-06 07:52 
ofs://om/vol1/bucket1/dir-1.0.0
   drwxrwxrwx   - hadoop hadoop          0 2022-02-06 07:51 
ofs://om/vol1/bucket1/dir-1.1.0
   -rw-rw-rw-   3 hadoop hadoop        671 2022-02-06 07:52 
ofs://om/vol1/bucket1/key-1.0.0
   -rw-rw-rw-   3 hadoop hadoop        744 2022-02-06 07:51 
ofs://om/vol1/bucket1/key-1.1.0
   drwxrwxrwx   - hadoop hadoop          0 2022-02-06 07:51 
ofs://om/vol1/bucket1/warmup
   
   bash-4.4$ ls -l /etc/passwd
   -rw-r--r-- 1 root root 744 Feb  6 03:22 /etc/passwd
   
   bash-4.4$ cat /etc/*release
   CentOS Linux release 8.4.2105
   ...
   ```
   
   ```
   bash-4.4$ cat /etc/passwd
   root:x:0:0:root:/root:/bin/bash
   bin:x:1:1:bin:/bin:/sbin/nologin
   daemon:x:2:2:daemon:/sbin:/sbin/nologin
   adm:x:3:4:adm:/var/adm:/sbin/nologin
   lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
   sync:x:5:0:sync:/sbin:/bin/sync
   shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
   halt:x:7:0:halt:/sbin:/sbin/halt
   mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
   operator:x:11:0:operator:/root:/sbin/nologin
   games:x:12:100:games:/usr/games:/sbin/nologin
   ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
   nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
   dbus:x:81:81:System message bus:/:/sbin/nologin
   systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
   systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin
   hadoop:x:1000:100::/opt/hadoop:/bin/bash
   ```
   
   Old client 1.0.0 (centos 7.6):
   
   ```
   $ docker exec -it xcompat_old_client_1_0_0_1 bash
   bash-4.2$ ls -l /etc/passwd
   -rw-r--r-- 1 root root 671 Nov  7  2019 /etc/passwd
   bash-4.2$ cat /etc/*release
   CentOS Linux release 7.6.1810 (Core)
   ...
   ```
   
   ```
   bash-4.2$ cat /etc/passwd
   root:x:0:0:root:/root:/bin/bash
   bin:x:1:1:bin:/bin:/sbin/nologin
   daemon:x:2:2:daemon:/sbin:/sbin/nologin
   adm:x:3:4:adm:/var/adm:/sbin/nologin
   lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
   sync:x:5:0:sync:/sbin:/bin/sync
   shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
   halt:x:7:0:halt:/sbin:/sbin/halt
   mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
   operator:x:11:0:operator:/root:/sbin/nologin
   games:x:12:100:games:/usr/games:/sbin/nologin
   ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
   nobody:x:99:99:Nobody:/:/sbin/nologin
   systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
   dbus:x:81:81:System message bus:/:/sbin/nologin
   hadoop:x:1000:100::/opt/hadoop:/bin/bash
   ```
   
   Let's just say the test case assumption (that `/etc/passwd` doesn't change 
between old and new ozone client images) is not ideal.
   
   One hacky solution (without touching the ozone repo) might be to 
intentionally overwrite the /etc/passwd in the new image. And I'm not sure 
centos 8.4 image would work with 
   
   Proper solution:
   1. Rebuild ozone-1.0.0 client image and push a centos 8.4 based one to 
Docker Hub, which should be done at some point as well; or
   2. Use another file rather than `/etc/passwd` for the testing (e.g. `echo 
testing > /tmp/testkey` then upload this instead) -- need to be done in ozone 
repo.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@ozone.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@ozone.apache.org
For additional commands, e-mail: issues-h...@ozone.apache.org

Reply via email to