** Description changed:

  When running Ubuntu Noble in an arm32 Docker container, on certain hosts
  (Azure VM CI agents), tar fails to extract certain archives that include
  folders with specific permissions set.
  
  Here's a concise repro. The error occurs in when building the
  Dockerfile. I can only get this to work on Azure VMs, but can't find out
  why.
  
  ```Dockerfile
  FROM ubuntu.azurecr.io/ubuntu:noble
  
  # Create the problematic archive
  RUN mkdir /test \
-     && chmod 775 /test \
-     && cd /test \
-     && mkdir 775 \
-     && chmod 775 775 \
-     && touch 775/test.txt \
-     && chmod 644 775/test.txt \
-     && tar -czvf /test.tar.gz .
+     && chmod 775 /test \
+     && cd /test \
+     && mkdir 775 \
+     && chmod 775 775 \
+     && touch 775/test.txt \
+     && chmod 644 775/test.txt \
+     && tar -czvf /test.tar.gz .
  
  # Extracting it gives an error
  RUN mkdir -p /test2 \
-     && tar -tzvf /test.tar.gz \
-     && tar -oxzf /test.tar.gz -C /test2
+     && tar -tzvf /test.tar.gz \
+     && tar -oxzf /test.tar.gz -C /test2
  ```
  
  What I expected to happen: The test.tar.gz archive should be
  successfully extracted to the /test2 directory.
  
  What happened instead: Tar throws the following error:
  ```
  tar: ./775: Cannot change mode to rwxrwxr-x: Operation not permitted
  tar: Exiting with failure status due to previous errors
  ```
  
  The Ubuntu container is running as root so there shouldn't be any
  permission errors.
  
  Since this is running in a container, I observed this happening on the 
following kernel:
- `Linux version 5.15.148.2-2.cm2 (root@CBL-Mariner) (gcc (GCC) 11.2.0, GNU ld 
(GNU Binutils) 2.37) #1 SMP Fri Feb 23 23:38:33 UTC 2024`.
+ `Linux version 5.15.148.2-2.cm2 (root@CBL-Mariner) (gcc (GCC) 11.2.0, GNU ld 
(GNU Binutils) 2.37) #1 SMP Fri Feb 23 23:38:33 UTC 2024`
+ As well as 
+ `Linux <hostname> 6.5.0-1017-azure #17~22.04.1-Ubuntu SMP Sat Mar  9 10:04:07 
UTC 2024 aarch64 aarch64 aarch64 GNU/Linux`
  
  I was not able to reproduce it using Ubuntu 22.04 Jammy
  (ubuntu.azurecr.io/ubuntu:jammy), using the same kernel as above.
  
  Additionally I was not able to reproduce this on the kernel `Linux
  cb0507859b24 5.15.146.1-microsoft-standard-WSL2 #1 SMP Thu Jan 11
  04:09:03 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux`, which is running on
- my work machine, using Docker qemu emulation for the arm32 image (I do
- not have access to an arm32 native machine).
+ my work machine, using Docker qemu emulation for the arm32 image.
  
  Ubuntu version: Ubuntu Noble Numbat (development branch) 24.04 (from 
ubuntu.azurecr.io/ubuntu:noble)
  tar version: `1.35+dfsg-3`

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to tar in Ubuntu.
https://bugs.launchpad.net/bugs/2059734

Title:
  Tar fails to extract archives that include folders with certain
  permissions on armhf

Status in tar package in Ubuntu:
  New

Bug description:
  When running Ubuntu Noble in an arm32 Docker container, on certain
  hosts (Azure VM CI agents), tar fails to extract certain archives that
  include folders with specific permissions set.

  Here's a concise repro. The error occurs in when building the
  Dockerfile. I can only get this to work on Azure VMs, but can't find
  out why.

  ```Dockerfile
  FROM ubuntu.azurecr.io/ubuntu:noble

  # Create the problematic archive
  RUN mkdir /test \
      && chmod 775 /test \
      && cd /test \
      && mkdir 775 \
      && chmod 775 775 \
      && touch 775/test.txt \
      && chmod 644 775/test.txt \
      && tar -czvf /test.tar.gz .

  # Extracting it gives an error
  RUN mkdir -p /test2 \
      && tar -tzvf /test.tar.gz \
      && tar -oxzf /test.tar.gz -C /test2
  ```

  What I expected to happen: The test.tar.gz archive should be
  successfully extracted to the /test2 directory.

  What happened instead: Tar throws the following error:
  ```
  tar: ./775: Cannot change mode to rwxrwxr-x: Operation not permitted
  tar: Exiting with failure status due to previous errors
  ```

  The Ubuntu container is running as root so there shouldn't be any
  permission errors.

  Since this is running in a container, I observed this happening on the 
following kernel:
  `Linux version 5.15.148.2-2.cm2 (root@CBL-Mariner) (gcc (GCC) 11.2.0, GNU ld 
(GNU Binutils) 2.37) #1 SMP Fri Feb 23 23:38:33 UTC 2024`
  As well as 
  `Linux <hostname> 6.5.0-1017-azure #17~22.04.1-Ubuntu SMP Sat Mar  9 10:04:07 
UTC 2024 aarch64 aarch64 aarch64 GNU/Linux`

  I was not able to reproduce it using Ubuntu 22.04 Jammy
  (ubuntu.azurecr.io/ubuntu:jammy), using the same kernel as above.

  Additionally I was not able to reproduce this on the kernel `Linux
  cb0507859b24 5.15.146.1-microsoft-standard-WSL2 #1 SMP Thu Jan 11
  04:09:03 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux`, which is running on
  my work machine, using Docker qemu emulation for the arm32 image.

  Ubuntu version: Ubuntu Noble Numbat (development branch) 24.04 (from 
ubuntu.azurecr.io/ubuntu:noble)
  tar version: `1.35+dfsg-3`

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/tar/+bug/2059734/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to