Bug 248700 - gc 7.0 breaks ABI compatibility
Summary: gc 7.0 breaks ABI compatibility
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: gc
Version: 7
Hardware: x86_64
OS: Linux
high
high
Target Milestone: ---
Assignee: Rex Dieter
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-07-18 11:36 UTC by Richard W.M. Jones
Modified: 2007-12-12 15:37 UTC (History)
2 users (show)

Fixed In Version: 7.0-6.fc7
Clone Of:
Environment:
Last Closed: 2007-10-24 07:06:28 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Fixes 7.0 abi break (682 bytes, patch)
2007-07-24 11:16 UTC, Denis Leroy
no flags Details | Diff

Description Richard W.M. Jones 2007-07-18 11:36:37 UTC
Description of problem:

Running 'inkscape' causes immediate segfault.  Judging by feedback
I received on fedora-devel-list this would appear to only happen
on x86-64, not i386.

Version-Release number of selected component (if applicable):

$ rpm -qf /usr/bin/inkscape
inkscape-0.45.1-1.fc7

$ rpm -q glibc
glibc-2.6-4
glibc-2.6-4
$ rpm -q glibmm24
glibmm24-2.13.6-3.fc8

(all other components are up to date)

How reproducible:

100%, on 2 different x86-64 machines.

Steps to Reproduce:
1. yum update; yum install inkscape
2. inkscape
3.
  
Actual results:

Immediate segmentation fault.

Expected results:

Run inkscape.

Additional info:

$ strace inkscape
[...]
open("/etc/selinux/config", O_RDONLY)   = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=512, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2aaaaaac6000
read(3, "# This file controls the state o"..., 4096) = 512
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x2aaaaaac6000, 4096)            = 0
statfs("/selinux", {f_type=0xf97cff8c, f_bsize=4096, f_blocks=0, f_bfree=0,
f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
stat("/selinux/class", 0x7fffb5522ae0)  = -1 ENOENT (No such file or directory)
open("/selinux/mls", O_RDONLY)          = 3
read(3, "1", 19)                        = 1
close(3)                                = 0
futex(0x2aaaac590b40, FUTEX_WAKE, 2147483647) = 0
brk(0xdb9000)                           = 0xdb9000
brk(0xdda000)                           = 0xdda000
gettimeofday({1184683408, 102077}, NULL) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++

$ gdb /usr/bin/inkscape
[...]
0x00002aaab118aec9 in GC_malloc () from /usr/lib64/libgc.so.1
(gdb) bt
#0  0x00002aaab118aec9 in GC_malloc () from /usr/lib64/libgc.so.1
#1  0x0000000000976628 in sp_repr_new (name=<value optimized out>)
    at ./gc-core.h:74
#2  0x0000000000972a4c in sp_repr_svg_read_node (node=0xd8f160,
    default_ns=0x0, prefix_map=0xd8e400) at xml/repr-io.cpp:472
#3  0x0000000000974150 in sp_repr_do_read (doc=<value optimized out>,
    default_ns=0x0) at xml/repr-io.cpp:382
#4  0x0000000000974272 in sp_repr_read_mem (buffer=<value optimized out>,
    length=10198, default_ns=0x0) at xml/repr-io.cpp:306
#5  0x00000000005a9b25 in Inkscape::Preferences::loadSkeleton ()
    at preferences.cpp:34
#6  0x000000000068f1d5 in Application (this=0x2aaab13930b0, argc=14215168,
    argv=0x7fff4c3ecbc8, use_gui=11, new_gui=208)
    at application/application.cpp:45
#7  0x0000000000598976 in main (argc=1, argv=0x7fff4c3ecbc8) at main.cpp:489

Comment 1 Denis Leroy 2007-07-24 06:50:54 UTC
Please pull gc 7.0 from updates-testing

Comment 2 Denis Leroy 2007-07-24 11:16:08 UTC
Created attachment 159844 [details]
Fixes 7.0 abi break

The problem stems from a missing call to GC_init() (because the GC_INIT macro
is different). This is a textbook example of how the abuse of macros is just
terrible programming. Anyways, here's a simple patch that seems to be good
enough to fix inkscape and w3m.

Comment 3 Rex Dieter 2007-07-24 12:55:34 UTC
Thanks, will take a look today.

Comment 4 Rex Dieter 2007-07-24 22:28:46 UTC
%changelog
* Tue Jul 24 2007 Rex Dieter <rdieter[AT]fedoraproject.org> 7.0-2
- gcinit patch, ABI compatibility (#248700)


Comment 5 Fedora Update System 2007-07-25 05:13:34 UTC
gc-7.0-2.fc7 has been pushed to the Fedora 7 testing repository.  If problems still persist, please make note of it in this bug report.

Comment 6 Fedora Update System 2007-08-30 12:30:37 UTC
gc-7.0-6.fc7 has been pushed to the Fedora 7 testing repository.  If problems still persist, please make note of it in this bug report.

Comment 7 Fedora Update System 2007-10-24 07:06:27 UTC
gc-7.0-6.fc7 has been pushed to the Fedora 7 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 8 Dominik 'Rathann' Mierzejewski 2007-12-12 13:33:34 UTC
FYI, this affects inkscape on EL-5 (which I've just built from FC6 SRPMs), where
gc is still at version 6.8:
% rpm -q gc
gc-6.8-3.el5.x86_64

However, installing gc-7.0-6 doesn't fix the crash, so it might be another problem.

And by the way, rpmlint finds some problems with the latest version:
% rpmlint .
gc.src: W: mixed-use-of-spaces-and-tabs (spaces: line 3, tab: line 64)
gc.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/libcord.so.1.0.3
['/usr/lib64']
gc.x86_64: E: binary-or-shlib-defines-rpath /usr/lib64/libgccpp.so.1.0.3
['/usr/lib64']
gc-debuginfo.x86_64: W: spurious-executable-perm /usr/src/debug/gc-7.0/misc.c


Comment 9 Denis Leroy 2007-12-12 14:00:53 UTC
Package Change Request
======================
Package Name: inkscape
New Branches: EL-4 EL-5


Comment 10 Denis Leroy 2007-12-12 15:37:46 UTC
nevermind



Note You need to log in before you can comment on or make changes to this bug.