Description of problem: I was building Fedora's inkscape packages with inkscape from bzr trunk Version-Release number of selected component: dwz-0.7-1.fc18 Additional info: backtrace_rating: 4 cmdline: dwz -h -q -r -m .dwz/inkscape-0.48.3.1-2.20121127.fc18.x86_64 -l 10000000 -L 110000000 ./usr/bin/inkview.debug ./usr/bin/inkscape.debug crash_function: update_new_die_offsets executable: /usr/bin/dwz kernel: 3.6.7-5.fc18.x86_64 uid: 1000 Truncated backtrace: Thread no. 1 (4 frames) #4 update_new_die_offsets at dwz.c:7812 #12 recompute_abbrevs at dwz.c:9143 #13 write_info at dwz.c:9200 #14 dwz at dwz.c:11014
Created attachment 652699 [details] File: backtrace
Created attachment 652700 [details] File: cgroup
Created attachment 652701 [details] File: core_backtrace
Created attachment 652702 [details] File: dso_list
Created attachment 652703 [details] File: environ
Created attachment 652705 [details] File: limits
Created attachment 652706 [details] File: maps
Created attachment 652707 [details] File: open_fds
Created attachment 652708 [details] File: proc_pid_status
Created attachment 652709 [details] File: smolt_data
Please disable dwz, e.g. %global _find_debuginfo_dwz_opts %{nil} in the spec file should do, rebuild and attach ./usr/bin/inkview.debug ./usr/bin/inkscape.debug files (from the debuginfo rpm). Thanks.
Created attachment 653076 [details] debug files (compressed with tar.xz, uncompressed size 364MB)
diff --git a/dwz.c b/dwz.c index 8e21bd2..f893d8b 100644 --- a/dwz.c +++ b/dwz.c @@ -9216,7 +9216,14 @@ recompute_abbrevs (dw_cu_ref cu, unsigned int cu_size) } else { - intracusize = size_of_uleb128 (cu_size); + /* Need to be conservatively high estimate, as update_new_die_offsets + relies on the offsets always increasing. cu_size at this point is + the size we will end up in the end, but if cu_size is sufficiently + close (from bottom) to some uleb128 boundary, init_new_die_offsets + might return off above that boundaryand then update_new_die_offsets + might fail its assertions on reference to DIEs that crossed the + uleb128 boundary. */ + intracusize = size_of_uleb128 (2 * cu_size); off = init_new_die_offsets (cu->cu_die, headersz, intracusize); do should fix this IMHO.
dwz-0.8-1.fc18 has been submitted as an update for Fedora 18. https://admin.fedoraproject.org/updates/dwz-0.8-1.fc18
Package dwz-0.8-1.fc18: * should fix your issue, * was pushed to the Fedora 18 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing dwz-0.8-1.fc18' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2012-19433/dwz-0.8-1.fc18 then log in and leave karma (feedback).
dwz-0.8-1.fc18 has been pushed to the Fedora 18 stable repository. If problems still persist, please make note of it in this bug report.