Duplicate hashes can become too long

Bug #968070 reported by Martin Pitt on 2012-03-29
This bug affects 1 person
Affects Status Importance Assigned to Milestone
apport (Ubuntu)
Martin Pitt
Martin Pitt

Bug Description

Retracer crashed with

Traceback (most recent call last):
  File "bin/dupdb-admin", line 87, in <module>
    command(crashdb, options, args)
  File "bin/dupdb-admin", line 54, in command_publish
  File "/home/ubuntu-archive/apport/apport/crashdb.py", line 394, in duplicate_db_publish
    cur_file = open(os.path.join(sig_base, cur_hash), 'wb')
IOError: [Errno 36] File name too long: '/home/ubuntu-archive/apport-duplicates.new/sig/_usr_share_hplip_toolbox.py_%27%5Cx16%5Cx96%5Cxa1%5Cx94%2AT%5Cxaf%5Cx82%7BD%5Cx9cK%5Cxfb%5Cxbax%5Cx19%5Cxc9%5Cxde%5Cxf0%5Cxfd%5Cxdb%2C%3E.%5Cx8a%5Cxe0%5Cxcfde%5Cxd15%5Cxf0%5Cx91-%5Cxfd%5Cxac%5Cxbb%5Cxf3%40%5Cx17x%3E%5Cxe3%2A%21N%5Cxf7%5Cxcd%5Cxc7%5Cxf2%5Cxc4%5Cx96V%5Cx8a%5Cx1f%5Cxc2%5Cx86%5Cxb'

Apparently we need to shorten the maximum hash length, and then also roll this out to clients so that they can still find the file.

Martin Pitt (pitti) on 2012-03-29
Changed in apport (Ubuntu):
status: New → In Progress
importance: Undecided → High
assignee: nobody → Martin Pitt (pitti)
Martin Pitt (pitti) wrote :

Fixed in trunk, rolled out to DC. Now we need this on the client side as well to find the new file names.

Changed in apport (Ubuntu Precise):
status: In Progress → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package apport - 2.0-0ubuntu1

apport (2.0-0ubuntu1) precise; urgency=low

  * New upstream release: This is the final 2.0 release, featuring the
    overhauled and simplified GUI, support for whoopsie-daemon, and
    client-side duplicate checking.
    - report.py, anonymize(): Only replace whole words, not substrings.
      (LP: #966562)
    - apport_python_hook.py: Fix filtering of
      org.freedesktop.DBus.Error.NoReply exceptions. (LP: #958575)
    - crashdb.py: When publishing the crash database, cut hash file names
      after quoting, to avoid that the quoting causes them to become too long.
      (LP: #968070) This also uncovered that known() did not actually find any
      signature which contained an URL-quoted character, therefore breaking
      client-side duplicate checking in a lot of cases. Double-quote the file
      name now, as urlopen() unquotes it.
    - Add a new crash database option "problem_types" and a CrashDatabase
      method "accepts(report)". This can be used to stop uploading particular
      problem report types to that database. E. g. a distribution might decide
      to not get "Crash" reports any more after release. Document the new
      option in doc/crashdb-conf.txt.
    - ui.py: Do not upload a report if the crash database does not accept the
      report's type. This behaviour is not really correct, but necessary as
      long as we only support a single crashdb and have whoopsie hardcoded.
      Once we have multiple crash dbs, we need to not even present the data if
      none of the DBs wants the report. See LP #957177 for details.
      (LP: #968121)
    - ui.py: Do not short-circuit information collection if report already has
      a "DistroRelease" field, as the GUIs add that in some cases. Check for
      "Dependencies" instead. This fixes information collection for kernel
      problems (which now has a full GTK GUI test case). (LP: #968488)
  * Merge from trunk:
    - test_ui_gtk.py: Disable package hooks for the tests, as they might ask
      for sudo passwords and other interactive bits, and thus make the tests
 -- Martin Pitt <email address hidden> Fri, 30 Mar 2012 12:38:02 +0200

Changed in apport (Ubuntu Precise):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers