lp:ubuntu/edgy/apport
- Get this branch:
- bzr branch lp:ubuntu/edgy/apport
Branch information
Recent revisions
- 28. By Martin Pitt
-
"No coreignore!"
apport: Do not create a report for crashes which we do not get a core dump
for. The reports are useless and only clutter our bug tracker. - 27. By Martin Pitt
-
* apport: Ignore SIGABRT for now; it's usually signalled from abort() or
assertion failures and we only get reports with unusable stack traces for
it (see #61938).
* gtk/apport-gtk: If gnome-open is not available, fall back to x-www-browser
instead of using webbrowser.py, to respect default browser in XFCE.
Closes: LP#64209
* apport: use os.nice() instead of executing 'renice'. Thanks to Benoit
Boissinot for noticing.
* apport_utils.py, find_file_package( ): Lower() both strings in the speedup
heuristics to match e. g. /usr/bin/Xorg -> xserver-xorg. Thanks to Kees
Cook!
* apport_utils.py, report_add_package_ info(): Do not crash if we encounter a
'None' current version, which can happen with uninstalled alternative
dependencies. Thanks to Kees Cook for tracking this down! - 26. By Martin Pitt
-
* apport-retrace: Clean up code a bit:
- Move option parsing to separate function.
- Use apport_utils' report_add_gdb_ info() instead of duplicating the gdb
code.
* apport_utils.py, report_add_gdb_ info(): Add optional parameter 'debugdir'
to specify an alternate debug file symbol root directory.
* apport-retrace: Add option -d/--download-debug to automatically download
available ddebs, create a temporary debug symbol directory from already
installed and downloaded ddebs, and point gdb to use that. Also add option
-C/--cache-dir to specify a permanent ddeb cache directory (by default, a
temporary one is used). Update the manpage accordingly.
* apport-retrace: Make the best out of a report without packaging
information (which can happen if the user does not click on 'report bug'
in apport-gtk).
* apport_utils, report_add_proc_ info():
- Move heuristics for detecting interpreted scripts to a separate function
to be able to provide separate test cases for it. Check a few more
special cases for mono programs.
- Make interpreter heuristics even scarier to detect some more mono corner
cases (like banshee and beagled-helper). Closes: LP#58859 - 25. By Martin Pitt
-
* Drop apport-gtk's update-notifier dependency to a Recommends:.
* apport_utils.py, report_add_gdb_ info(): Add register dump and disassembly
of the last 32 bytes, they might be useful to see what's going on
sometimes. Thanks to Kees Cook for the idea and the patch.
* test-apport, check_crash(): Verify that a crash does not leave a core file
behind. (Test for LP#62972)
* preloadlib/libapport. c: Do not unlink the core file after calling apport,
but set REMOVE_CORE=1 environment instead. This matches the current
kernel behaviour.
* apport: Register an atexit handler as early as possible for unlinking the
core dump if REMOVE_CORE environment is set. Closes: LP#62972
* apport: Set nice level 10 instead of 5. Closes: LP#63099 - 24. By Martin Pitt
-
The "Need for speed" release -- rrrroarrr!
* apport: Remove _copy_shrink_
corefile( ): While this has an enormous impact
on the size of an uncompressed core dump, it only causes a negligible size
reduction of the bzip2'ed core, but it needs a lot of I/O resources for
large core dumps.
* problem_report.py:
- Use zlib instead of bzip2 for compressing the binary data (in
particular, core dumps). This results in slightly bigger files, but speeds
up compression a lot (30 seconds vs. ~2:45 minutes for a Firefox core dump
on my slow iBook). Closes: LP#61538
- ProblemReport.read(): Support both bzip2 and zlib compression to be able
to read existing reports, too.
- Add/Adapt test cases.
* Move InformationCollector._ get_gdb( ) from apport to apport_utils.py
report_add_gdb_ info(), and add a test case for it.
* apport_utils.py, report_add_package_ info(): Support calling without a
package name, then it will be figured out from ExecutableName. Extend test
case accordingly.
* test-apport: Do not require apport reports to contain gdb, packaging, and
OS information, since we are going to move them out of apport.
* apport: Do not collect static information. It requires a lot of CPU and
I/O resources and slows down the machine a lot, and it can be added to
the report later in the frontend. This also gets rid of the entire
InformationCollector class, since everything has been moved to
apport_utils.py now. Closes: LP#62542
* apport: Do not intercept KeyboardInterrupt as unhandled exception (only
useful for command line debugging, though).
* problem_report.py: Add test case for appending new data to an existing
report, fix write() function to not rely on an existing ProblemType key.
* problem_report.py: Add new method ProblemReport.add_to_ existing( ) to
update an already existing problem report with new data. Add test case.
* apport_utils.py, mark_report_seen(): Use os.utime() instead of
open()/read() and a timeout for simpler and faster operation.
* gtk/apport-gtk:
- Collect gdb/packaging/operating system information when the user chooses
to file a bug and update the apport report.
- Change the 'Downloading bug patterns...' progress dialog to 'Collecting
information about the crash...'.
* debian/control: Bumped library dependencies of apport-gtk, added
update-notifer dependency. - 23. By Martin Pitt
-
* apport: Reset signal handler to SIG_IGN in the crash signal handler, to
avoid an endless crash/handler loop (noticed during debugging LP#61708).
* debian/apport.init: Do not let the script run with set -e, so that
do_{start,stop} can deliver their return codes for proper evaluation,
instead of immediately existing. Closes: LP#61796
* test-apport: Check that SIGQUIT does not generate a report. (Check for
bug #62511).
* apport: Ignore SIGQUIT. Closes: LP#62511 - 22. By Martin Pitt
-
* apport_utils.py, report_
add_proc_ info(): Make 'interpreted script'
detection more general to also work for mono programs.
* test-apport: Check that non-packaged scripts do not generate a report.
* apport: Call ic.collect_runtime_ information( ) earlier and drop the local
/proc/pid/exe examination, so that we get proper script detection. This
avoids getting crash reports for non-packaged scripts (see test case
change from above).
* apport: Do not try to chmod the report file if we could not create it and
output to stderr instead (this mainly affects local testing only).
* apport_utils.py, find_file_package( ): First grep the package lists whose
names are a substring of the crashed binary name (or vice versa), to
immensely speed up the package name determination in many cases.
* apport: Drop the maximum number of consecutive crashes per executable
from 5 to 2. 5 creates a too bad user experience and creates the
impression that it will never stop. Closes: LP#61078 - 21. By Martin Pitt
-
* apport: Keep a partially written report with '000' permissions, and only
chmod it to 0600 when it is fully written. This stops update-notifier from
picking up half-written reports and get activated several times.
Closes: LP#59988
* apport: Add the executable path to the first line of logging.
* apport: Run the complete code under control of the general exception
fallback handler.
* debian/apport. default: Increase maximum core size to 200 MB, to also catch
Firefox and Evolution core dumps.
* apport_utils.py, find_file_package( ): Before searching the dpkg database
(which is expensive), check if the executable path matches a whitelist of
path prefixes. This replaces the weaker blacklist (/tmp and /home) in
apport itself.
* gtk/apport-gtk: Show a progress dialog while checking for bug patterns and
execute report_search_ bug_patterns( ) in a separate thread, so that the UI
is not potentially blocked for a long time.
* apport: Gracefully abort if we cannot readlink /proc/pid/exe, instead of
falling over with an exception. Closes: LP#59993
* debian/rules: Use 'multiuser' instead of 'defaults' for dh_installinit.
Clean up the unnecessary rc symlinks in postinst and add appropriate
sysv-rc dependency. - 20. By Martin Pitt
-
* apport: Renice ourself to priority 5 to not slow down the user's processes
so heavily.
* Add manpages for apport-retrace(1) and apport-unpack(1) and install them
into apport. Closes: LP#58463
* problem_report.py: Test attaching two files instead of one in the
test_write_file() regression check to assert correct key sorting.
* problem_report.py: Alter write() method to sort binary data to the end of
the report. This makes reports easier to read, and also shows relevant
information more quickly when progressively loading them in a web browser.
Adapt regression tests accordingly.
* Move setting of ExecutablePath from apport's InformationCollector ctor to
apport_utils' report_add_proc_ info(), where it belongs to. Check
ExecutablePath in apport_utils' regression tests.
* apport-unpack: Support '-' as report argument to read from stdin.
* apport_utils.py, report_add_proc_ info():
- Apply some heuristics to determine whether the crashed process is an
interpreted script (check if the Name in /proc/pid/status matches
the second /proc/pid/cmdline part, and if that command line argument is
an existing executable file). In the case of an interpreted script, set
ExecutablePath to the script and InterpreterPath to the actually crashed
ELF binary.
- Test this with a shell (/bin/zgrep) and a Python (./apport-unpack)
script in the test suite.
- Closes: LP#58859
* Add debian/apport. logrotate to add a daily 7-step /var/log/apport
log rotation.
* test-apport: Fix WCOREDUMP() and pidof checks in check_crash().
* apport: Install a signal handler for all 'crashy' signals, which just logs
the signal and stack info and exits. This should avoid a crashing apport
examining itself, possibly in an endless loop. Closes: LP#58873 - 19. By Martin Pitt
-
* apport_utils.py: Add function report_
search_ bug_patterns( ): Try to
download a package specific bug pattern XML file from a given URL base
directory and return the bug URL in case of a match. Also add extensive
test suite check.
* test-apport: Fix help message.
* apport-gtk: Make use of the new report_search_ bug_patterns( ) function and
display appropriate instructions on match. Bump python-apport-utils dependency.
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)
- Stacked on:
- lp:ubuntu/quantal/apport