Comment 0 for bug 984256

Revision history for this message
Jeff Lane  (bladernr) wrote : Apport has a huge memory leak causing system problems

At some point, an apparent memory leak has been introduced into apport making it bring systems to a grinding halt while it tries to run.

I've noticed this over the last few days, so I suspect it's a fairly recent change. Today, I've tried filing a bug twice using apport, however, each time, the apport process chews through up to 3.5GB of RAM before it finally crashes. Here's the python trace generated after it finally runs out of memory:

bladernr@klaatu:~$ ubuntu-bug linux
ERROR: hook /usr/share/apport/package-hooks//source_linux.py crashed:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/apport/report.py", line 768, in add_hooks_info
    symb['add_info'](self, ui)
  File "/usr/share/apport/package-hooks//source_linux.py", line 46, in add_info
    report['AcpiTables'] = root_command_output(['/usr/share/apport/dump_acpi_tables.py'])
  File "/usr/lib/python2.7/dist-packages/apport/hookutils.py", line 365, in root_command_output
    return command_output(_root_command_prefix() + command, input, stderr,
  File "/usr/lib/python2.7/dist-packages/apport/hookutils.py", line 340, in _root_command_prefix
    stderr=subprocess.PIPE) == 0 and \
  File "/usr/lib/python2.7/subprocess.py", line 493, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1143, in _execute_child
    self.pid = os.fork()
OSError: [Errno 12] Cannot allocate memory
Traceback (most recent call last):
  File "/usr/share/apport/apport-gtk", line 507, in <module>
    app.run_argv()
  File "/usr/lib/python2.7/dist-packages/apport/ui.py", line 543, in run_argv
    return self.run_report_bug()
  File "/usr/lib/python2.7/dist-packages/apport/ui.py", line 348, in run_report_bug
    self.collect_info(symptom_script)
  File "/usr/lib/python2.7/dist-packages/apport/ui.py", line 861, in collect_info
    icthread.exc_raise()
  File "/usr/lib/python2.7/dist-packages/apport/REThread.py", line 34, in run
    self._retval = self.__target(*self.__args, **self.__kwargs)
  File "/usr/lib/python2.7/dist-packages/apport/ui.py", line 93, in thread_collect_info
    elif not apport.packaging.is_distro_package(report['Package'].split()[0]):
  File "/usr/lib/python2.7/dist-packages/apport/packaging_impl.py", line 144, in is_distro_package
    stdout=subprocess.PIPE)
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1143, in _execute_child
    self.pid = os.fork()
OSError: [Errno 12] Cannot allocate memory