Public bug reported:

[Impact]

Apport will fail for processes with dump mode 2 inside of containers.

[Test plan]

Run following testcase script inside a LXC container:

```
#!/bin/sh
sudo rm -rf /var/crash/* /var/log/apport.log

sudo -u mail sh -c "ping 127.0.0.1 > /dev/null" &
sleep 0.3
killall -11 ping

sleep 0.3
cat /var/log/apport.log
```

apport.log for the affected version:

```
ERROR: apport (pid 6452) Thu Jul 21 12:59:45 2022: called for pid 6449, signal 
11, core limit 0, dump mode 2
ERROR: apport (pid 6452) Thu Jul 21 12:59:45 2022: not creating core for pid 
with dump mode of 2
ERROR: apport (pid 6452) Thu Jul 21 12:59:45 2022: Unhandled exception:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport/report.py", line 681, in 
add_proc_info
    self["ExecutablePath"] = _read_proc_link(
  File "/usr/lib/python3/dist-packages/apport/report.py", line 92, in 
_read_proc_link
    return os.readlink(path, dir_fd=dir_fd)
PermissionError: [Errno 13] Permission denied: 'exe'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/share/apport/apport", line 862, in <module>
    info.add_proc_info(proc_pid_fd=proc_pid_fd)
  File "/usr/lib/python3/dist-packages/apport/report.py", line 686, in 
add_proc_info
    raise ValueError("not accessible")
ValueError: not accessible
ERROR: apport (pid 6452) Thu Jul 21 12:59:45 2022: pid: 6452, uid: 0, gid: 0, 
euid: 8, egid: 8
ERROR: apport (pid 6452) Thu Jul 21 12:59:45 2022: environment: 
environ({'LANG': 'C.UTF-8', 'PATH': 
'/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin', 
'LISTEN_PID': '6452', 'LISTEN_FDS': '1', 'LISTEN_FDNAMES': 'connection', 
'INVOCATION_ID': '1352c67b4a21480a9b35db8012dafb42', 'JOURNAL_STREAM': 
'8:29587491', 'SYSTEMD_EXEC_PID': '6452'})
```

The apport log should not show a Traceback.

[Other Info]

The autopkgtest for armhf are run inside a LXC container and some test
cases like test_crash_setuid_drop trigger this bug.

** Affects: apport
     Importance: Undecided
         Status: Triaged

** Affects: apport (Ubuntu)
     Importance: Undecided
         Status: Triaged

** Also affects: apport
   Importance: Undecided
       Status: New

** Changed in: apport
    Milestone: None => 2.23.0

** Description changed:

  [Impact]
  
  Apport will fail for processes with dump mode 2 inside of containers.
  
  [Test plan]
  
  Run following testcase script inside a LXC container:
  
  ```
  #!/bin/sh
  sudo rm -rf /var/crash/* /var/log/apport.log
  
  sudo -u mail sh -c "ping 127.0.0.1 > /dev/null" &
  sleep 0.3
  killall -11 ping
  
  sleep 0.3
  cat /var/log/apport.log
  ```
  
  apport.log for the affected version:
  
  ```
  ERROR: apport (pid 6452) Thu Jul 21 12:59:45 2022: called for pid 6449, 
signal 11, core limit 0, dump mode 2
  ERROR: apport (pid 6452) Thu Jul 21 12:59:45 2022: not creating core for pid 
with dump mode of 2
  ERROR: apport (pid 6452) Thu Jul 21 12:59:45 2022: Unhandled exception:
  Traceback (most recent call last):
-   File "/usr/lib/python3/dist-packages/apport/report.py", line 681, in 
add_proc_info
-     self["ExecutablePath"] = _read_proc_link(
-   File "/usr/lib/python3/dist-packages/apport/report.py", line 92, in 
_read_proc_link
-     return os.readlink(path, dir_fd=dir_fd)
+   File "/usr/lib/python3/dist-packages/apport/report.py", line 681, in 
add_proc_info
+     self["ExecutablePath"] = _read_proc_link(
+   File "/usr/lib/python3/dist-packages/apport/report.py", line 92, in 
_read_proc_link
+     return os.readlink(path, dir_fd=dir_fd)
  PermissionError: [Errno 13] Permission denied: 'exe'
  
  During handling of the above exception, another exception occurred:
  
  Traceback (most recent call last):
-   File "/usr/share/apport/apport", line 862, in <module>
-     info.add_proc_info(proc_pid_fd=proc_pid_fd)
-   File "/usr/lib/python3/dist-packages/apport/report.py", line 686, in 
add_proc_info
-     raise ValueError("not accessible")
+   File "/usr/share/apport/apport", line 862, in <module>
+     info.add_proc_info(proc_pid_fd=proc_pid_fd)
+   File "/usr/lib/python3/dist-packages/apport/report.py", line 686, in 
add_proc_info
+     raise ValueError("not accessible")
  ValueError: not accessible
  ERROR: apport (pid 6452) Thu Jul 21 12:59:45 2022: pid: 6452, uid: 0, gid: 0, 
euid: 8, egid: 8
  ERROR: apport (pid 6452) Thu Jul 21 12:59:45 2022: environment: 
environ({'LANG': 'C.UTF-8', 'PATH': 
'/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin', 
'LISTEN_PID': '6452', 'LISTEN_FDS': '1', 'LISTEN_FDNAMES': 'connection', 
'INVOCATION_ID': '1352c67b4a21480a9b35db8012dafb42', 'JOURNAL_STREAM': 
'8:29587491', 'SYSTEMD_EXEC_PID': '6452'})
  ```
  
  The apport log should not show a Traceback.
+ 
+ [Other Info]
+ 
+ The autopkgtest for armhf are run inside a LXC container and some test
+ cases like test_crash_setuid_drop trigger this bug.

** Changed in: apport (Ubuntu)
       Status: New => Triaged

** Changed in: apport
       Status: New => Triaged

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

Title:
  apport fails with PermissionError for dump mode 2 in containers

Status in Apport:
  Triaged
Status in apport package in Ubuntu:
  Triaged

Bug description:
  [Impact]

  Apport will fail for processes with dump mode 2 inside of containers.

  [Test plan]

  Run following testcase script inside a LXC container:

  ```
  #!/bin/sh
  sudo rm -rf /var/crash/* /var/log/apport.log

  sudo -u mail sh -c "ping 127.0.0.1 > /dev/null" &
  sleep 0.3
  killall -11 ping

  sleep 0.3
  cat /var/log/apport.log
  ```

  apport.log for the affected version:

  ```
  ERROR: apport (pid 6452) Thu Jul 21 12:59:45 2022: called for pid 6449, 
signal 11, core limit 0, dump mode 2
  ERROR: apport (pid 6452) Thu Jul 21 12:59:45 2022: not creating core for pid 
with dump mode of 2
  ERROR: apport (pid 6452) Thu Jul 21 12:59:45 2022: Unhandled exception:
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/apport/report.py", line 681, in 
add_proc_info
      self["ExecutablePath"] = _read_proc_link(
    File "/usr/lib/python3/dist-packages/apport/report.py", line 92, in 
_read_proc_link
      return os.readlink(path, dir_fd=dir_fd)
  PermissionError: [Errno 13] Permission denied: 'exe'

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/usr/share/apport/apport", line 862, in <module>
      info.add_proc_info(proc_pid_fd=proc_pid_fd)
    File "/usr/lib/python3/dist-packages/apport/report.py", line 686, in 
add_proc_info
      raise ValueError("not accessible")
  ValueError: not accessible
  ERROR: apport (pid 6452) Thu Jul 21 12:59:45 2022: pid: 6452, uid: 0, gid: 0, 
euid: 8, egid: 8
  ERROR: apport (pid 6452) Thu Jul 21 12:59:45 2022: environment: 
environ({'LANG': 'C.UTF-8', 'PATH': 
'/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin', 
'LISTEN_PID': '6452', 'LISTEN_FDS': '1', 'LISTEN_FDNAMES': 'connection', 
'INVOCATION_ID': '1352c67b4a21480a9b35db8012dafb42', 'JOURNAL_STREAM': 
'8:29587491', 'SYSTEMD_EXEC_PID': '6452'})
  ```

  The apport log should not show a Traceback.

  [Other Info]

  The autopkgtest for armhf are run inside a LXC container and some test
  cases like test_crash_setuid_drop trigger this bug.

To manage notifications about this bug go to:
https://bugs.launchpad.net/apport/+bug/1982487/+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