[Bug 2114171] Re: AssertionError: cannot parse ProcMaps line: Error: [Errno 3] No such process: 'maps'

Anshul Singh 2114171 at bugs.launchpad.net
Fri Jun 27 08:11:48 UTC 2025


** Description changed:

  [ Original report ]
  
  ```
  Traceback (most recent call last):
    File "/usr/share/apport/whoopsie-upload-all", line 246, in <module>
      main()
    File "/usr/share/apport/whoopsie-upload-all", line 228, in main
      stamps = collect_info()
               ^^^^^^^^^^^^^^
    File "/usr/share/apport/whoopsie-upload-all", line 162, in collect_info
      res = process_report(r)
            ^^^^^^^^^^^^^^^^^
    File "/usr/share/apport/whoopsie-upload-all", line 112, in process_report
      r.add_gdb_info()
    File "/usr/lib/python3/dist-packages/apport/report.py", line 1022, in add_gdb_info
      addr_signature = self.crash_signature_addresses()
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/apport/report.py", line 1761, in crash_signature_addresses
      offset = self._address_to_offset(addr)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/apport/report.py", line 1969, in _address_to_offset
      self._build_proc_maps_cache()
    File "/usr/lib/python3/dist-packages/apport/report.py", line 2005, in _build_proc_maps_cache
      assert m, "cannot parse ProcMaps line: " + line
             ^
  AssertionError: cannot parse ProcMaps line: Error: [Errno 3] No such process: 'maps'
  ```
  
  The Ubuntu Error Tracker has been receiving reports about a problem regarding apport. This problem was most recently seen with package version 2.32.0-0ubuntu5.1, the problem page at https://errors.ubuntu.com/problem/472e8b056e334653c0eab820f0d83e22949fcbee contains more details, including versions of packages affected, stacktrace or traceback, and individual crash reports.
  If you do not have access to the Ubuntu Error Tracker and are a software developer, you can request it at http://forms.canonical.com/reports/.
  
  [ Impact ]
  
  * This error report is the equivalent for this bug in Noble: https://errors.ubuntu.com/problem/472e8b056e334653c0eab820f0d83e22949fcbee
  * AssertionError: cannot parse ProcMaps line: Error: [Errno 3] No such process: 'maps'
  
  ```
  Traceback (most recent call last):
    File "/usr/share/apport/whoopsie-upload-all", line 246, in <module>
      main()
    File "/usr/share/apport/whoopsie-upload-all", line 228, in main
      stamps = collect_info()
               ^^^^^^^^^^^^^^
    File "/usr/share/apport/whoopsie-upload-all", line 162, in collect_info
      res = process_report(r)
            ^^^^^^^^^^^^^^^^^
    File "/usr/share/apport/whoopsie-upload-all", line 112, in process_report
      r.add_gdb_info()
    File "/usr/lib/python3/dist-packages/apport/report.py", line 1022, in add_gdb_info
      addr_signature = self.crash_signature_addresses()
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/apport/report.py", line 1761, in crash_signature_addresses
      offset = self._address_to_offset(addr)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/apport/report.py", line 1969, in _address_to_offset
      self._build_proc_maps_cache()
    File "/usr/lib/python3/dist-packages/apport/report.py", line 2005, in _build_proc_maps_cache
      assert m, "cannot parse ProcMaps line: " + line
             ^
  AssertionError: cannot parse ProcMaps line: Error: [Errno 3] No such process: 'maps'
  ```
  
  * The upload fixes the bug as
  https://github.com/canonical/apport/pull/540 adds a fix to catch all
  error cases as the function _read_maps reads /proc/pid/maps but will
  return a string starting with Error:  in case of an OSError.
  
  [ Test Plan ]
  
   * This crash can be reproduced by having apport try to process a crash
- dump for a process that has already exited.
+ dump for a process that has already exited:
+ 
+ ```
+ FAKE_PID_DIR=$(mktemp -d)
+ FAKE_PID=99999
+ 
+ mkdir -p "$FAKE_PID_DIR/fd"
+ 
+ mount --bind '$FAKE_PID_DIR' /proc/$FAKE_PID 2>/dev/null || true
+ apport -p $FAKE_PID 2>&1 || true
+ ```
  
   * https://github.com/canonical/apport/pull/540 also introduced a unit
  test for this.
  
  [ Where problems could occur ]
  
   * We are adding an error case to the error handler so a syntax error
  might lead to incorrect error message or failure to build.
  
   * Since apport is primarily for crash reports, user experience is
  unlikely to be affected much.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to apport in Ubuntu.
https://bugs.launchpad.net/bugs/2114171

Title:
  AssertionError: cannot parse ProcMaps line: Error: [Errno 3] No such
  process: 'maps'

Status in Apport:
  Fix Committed
Status in apport package in Ubuntu:
  In Progress
Status in apport source package in Jammy:
  New
Status in apport source package in Noble:
  New

Bug description:
  [ Original report ]

  ```
  Traceback (most recent call last):
    File "/usr/share/apport/whoopsie-upload-all", line 246, in <module>
      main()
    File "/usr/share/apport/whoopsie-upload-all", line 228, in main
      stamps = collect_info()
               ^^^^^^^^^^^^^^
    File "/usr/share/apport/whoopsie-upload-all", line 162, in collect_info
      res = process_report(r)
            ^^^^^^^^^^^^^^^^^
    File "/usr/share/apport/whoopsie-upload-all", line 112, in process_report
      r.add_gdb_info()
    File "/usr/lib/python3/dist-packages/apport/report.py", line 1022, in add_gdb_info
      addr_signature = self.crash_signature_addresses()
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/apport/report.py", line 1761, in crash_signature_addresses
      offset = self._address_to_offset(addr)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/apport/report.py", line 1969, in _address_to_offset
      self._build_proc_maps_cache()
    File "/usr/lib/python3/dist-packages/apport/report.py", line 2005, in _build_proc_maps_cache
      assert m, "cannot parse ProcMaps line: " + line
             ^
  AssertionError: cannot parse ProcMaps line: Error: [Errno 3] No such process: 'maps'
  ```

  The Ubuntu Error Tracker has been receiving reports about a problem regarding apport. This problem was most recently seen with package version 2.32.0-0ubuntu5.1, the problem page at https://errors.ubuntu.com/problem/472e8b056e334653c0eab820f0d83e22949fcbee contains more details, including versions of packages affected, stacktrace or traceback, and individual crash reports.
  If you do not have access to the Ubuntu Error Tracker and are a software developer, you can request it at http://forms.canonical.com/reports/.

  [ Impact ]

  * This error report is the equivalent for this bug in Noble: https://errors.ubuntu.com/problem/472e8b056e334653c0eab820f0d83e22949fcbee
  * AssertionError: cannot parse ProcMaps line: Error: [Errno 3] No such process: 'maps'

  ```
  Traceback (most recent call last):
    File "/usr/share/apport/whoopsie-upload-all", line 246, in <module>
      main()
    File "/usr/share/apport/whoopsie-upload-all", line 228, in main
      stamps = collect_info()
               ^^^^^^^^^^^^^^
    File "/usr/share/apport/whoopsie-upload-all", line 162, in collect_info
      res = process_report(r)
            ^^^^^^^^^^^^^^^^^
    File "/usr/share/apport/whoopsie-upload-all", line 112, in process_report
      r.add_gdb_info()
    File "/usr/lib/python3/dist-packages/apport/report.py", line 1022, in add_gdb_info
      addr_signature = self.crash_signature_addresses()
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/apport/report.py", line 1761, in crash_signature_addresses
      offset = self._address_to_offset(addr)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/apport/report.py", line 1969, in _address_to_offset
      self._build_proc_maps_cache()
    File "/usr/lib/python3/dist-packages/apport/report.py", line 2005, in _build_proc_maps_cache
      assert m, "cannot parse ProcMaps line: " + line
             ^
  AssertionError: cannot parse ProcMaps line: Error: [Errno 3] No such process: 'maps'
  ```

  * The upload fixes the bug as
  https://github.com/canonical/apport/pull/540 adds a fix to catch all
  error cases as the function _read_maps reads /proc/pid/maps but will
  return a string starting with Error:  in case of an OSError.

  [ Test Plan ]

   * This crash can be reproduced by having apport try to process a
  crash dump for a process that has already exited:

  ```
  FAKE_PID_DIR=$(mktemp -d)
  FAKE_PID=99999

  mkdir -p "$FAKE_PID_DIR/fd"

  mount --bind '$FAKE_PID_DIR' /proc/$FAKE_PID 2>/dev/null || true
  apport -p $FAKE_PID 2>&1 || true
  ```

   * https://github.com/canonical/apport/pull/540 also introduced a unit
  test for this.

  [ Where problems could occur ]

   * We are adding an error case to the error handler so a syntax error
  might lead to incorrect error message or failure to build.

   * Since apport is primarily for crash reports, user experience is
  unlikely to be affected much.

To manage notifications about this bug go to:
https://bugs.launchpad.net/apport/+bug/2114171/+subscriptions




More information about the foundations-bugs mailing list