Your message dated Tue, 13 Jun 2006 23:40:03 -0700
with message-id <[EMAIL PROTECTED]>
and subject line fixed in 1:6.7-2
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: inkscape
Version: 0.43-5
Severity: grave
Justification: renders package unusable

Steps to reproduce (/tmp/home used to make sure nothing in $HOME can affect 
this):
1) mkdir /tmp/home
2) cp ~/.Xauthority /tmp/home
3) HOME=/tmp/home strace -o inkscape.strace -f -s4096 inkscape

Expected results:
3) inkscape should start and show a window.

Actual results:
3) Inkscape prints the following error message and neither exits nor
opens a window.

Entity: line 3: parser error : Input is not proper UTF-8, indicate encoding !
Bytes: 0x90 0xE7 0x65 0x08
<id>org.inkscape.input.gdkpixbuf.ion>.         ^
Entity: line 8: parser error : PCDATA invalid Char value 8
<filetypetooltip>t</filetypetooltip>
                    ^


More info:
1) inkscape.strace ends with the following lines:

28233 write(2, "Entity: line 3: ", 16)  = 16
28233 write(2, "parser ", 7)            = 7
28233 write(2, "error : ", 8)           = 8
28233 write(2, "Input is not proper UTF-8, indicate encoding !\nBytes: 0x90 
0xE7 0x65 0x08\n", 74) = 74
28233 write(2, "<id>org.inkscape.input.gdkpixbuf.\220\347e\10</id>\n", 43) = 43
28233 write(2, "                                 ^\n", 35) = 35
28233 write(2, "Entity: line 3: ", 16)  = 16
28233 write(2, "parser ", 7)            = 7
28233 write(2, "error : ", 8)           = 8
28233 write(2, "PCDATA invalid Char value 8\n", 28) = 28
28233 write(2, "<id>org.inkscape.input.gdkpixbuf.\220\347e\10</id>\n", 43) = 43
28233 write(2, "                                    ^\n", 38) = 38
28233 write(2, "Entity: line 5: ", 16)  = 16
28233 write(2, "parser ", 7)            = 7
28233 write(2, "error : ", 8)           = 8
28233 write(2, "PCDATA invalid Char value 8\n", 28) = 28
28233 write(2, "<extension>.\220\347e\10</extension>\n", 29) = 29
28233 write(2, "               ^\n", 17) = 17
28233 write(2, "Entity: line 6: ", 16)  = 16
28233 write(2, "parser ", 7)            = 7
28233 write(2, "error : ", 8)           = 8
28233 write(2, "PCDATA invalid Char value 8\n", 28) = 28
28233 write(2, "<mimetype>\260\347e\10</mimetype>\n", 26) = 26
28233 write(2, "             ^\n", 15)  = 15
28233 write(2, "Entity: line 7: ", 16)  = 16
28233 write(2, "parser ", 7)            = 7
28233 write(2, "error : ", 8)           = 8
28233 write(2, "PCDATA invalid Char value 8\n", 28) = 28
28233 write(2, "<filetypename>gif (*.\220\347e\10)</filetypename>\n", 42) = 42
28233 write(2, "                        ^\n", 26) = 26
28233 write(2, "Entity: line 8: ", 16)  = 16
28233 write(2, "parser ", 7)            = 7
28233 write(2, "error : ", 8)           = 8
28233 write(2, "PCDATA invalid Char value 8\n", 28) = 28
28233 write(2, "<filetypetooltip>\230te\10</filetypetooltip>\n", 40) = 40
28233 write(2, "                    ^\n", 22) = 22
28233 --- SIGINT (Interrupt) @ 0 (0) ---
28233 +++ killed by SIGINT +++

2) The erroneous XML fragment is probably generated in
../src/extension/internal/gdkpixbuf-input.cpp line 134

gchar *xmlString = g_strdup_printf(
    "<inkscape-extension>\n"
        "<name>%s GDK pixbuf Input</name>\n"
        "<id>org.inkscape.input.gdkpixbuf.%s</id>\n"
        "<input>\n"
            "<extension>.%s</extension>\n"
            "<mimetype>%s</mimetype>\n"
            "<filetypename>%s (*.%s)</filetypename>\n"
            "<filetypetooltip>%s</filetypetooltip>\n"
        "</input>\n"
    "</inkscape-extension>",
    name,
    extensions[i],
    extensions[i],
    mimetypes[j],
    name,
    extensions[i],
    description
    );

where apparently
 extensions[i] = "\220\347e\10"
 mimetypes[j]  = "\260\347e\10"
 name          = "gif"
 description   = "\230te\10"

3) I copied the function in gdkpixbuf-input.cpp to a standalone
program (attached as gdkpixbuf-input.cpp) but does not seem to
reproduce the problem:

$ g++ -o gdkpixbuf-input gdkpixbuf-input.cpp `pkg-config gdk-2.0 --cflags 
--libs`
$ ./gdkpixbuf-input | grep gif
<name>gif GDK pixbuf Input</name>
<id>org.inkscape.input.gdkpixbuf.gif</id>
<extension>.gif</extension>
<mimetype>image/gif</mimetype>
<filetypename>gif (*.gif)</filetypename>

4) I built inkscape with debugging symbols using

$ time DEB_BUILD_OPTIONS="nostrip debug noopt" fakeroot apt-get --build source 
inkscape
$ sudo dpkg -i inkscape*.deb

and now inkscape fails differently!

$ HOME=/tmp/home inkscape
inkscape: gconv_dl.c:166: do_release_shlib: Assertion `obj->counter > 0' failed.

Emergency save activated!

** (process:22423): ERROR (recursed) **: file inkscape.cpp: line 781 
(Inkscape::XML::Node* inkscape_get_repr(Inkscape::Application*, const gchar*)): 
assertion failed: (!(strcmp (repr->name(), "inkscape")))
aborting...
Aborted (core dumped)

5) GDB suggests that the problematic code in gdkpixbuf-input.cpp is
never reached with the debugging build:

$ HOME=/tmp/home gdb inkscape
GNU gdb 6.4-debian
Copyright 2005 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...Using host libthread_db library 
"/lib/libthread_db.so.1".

(gdb) b gdkpixbuf-input.cpp:134
Breakpoint 1 at 0x85a23ab: file extension/internal/gdkpixbuf-input.cpp, line 
134.
(gdb) r
Starting program: /usr/bin/inkscape
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 22434)]
inkscape: gconv_dl.c:166: do_release_shlib: Assertion `obj->counter > 0' failed.

Program received signal SIGABRT, Aborted.
[Switching to Thread 16384 (LWP 22434)]
0x4107d701 in kill () from /lib/libc.so.6
(gdb) bt
#0  0x4107d701 in kill () from /lib/libc.so.6
#1  0x40ece030 in pthread_kill () from /lib/libpthread.so.0
#2  0x40ece3fb in raise () from /lib/libpthread.so.0
#3  0x4107d474 in raise () from /lib/libc.so.6
#4  0x4107e9e8 in abort () from /lib/libc.so.6
#5  0x41076495 in __assert_fail () from /lib/libc.so.6
#6  0x41072cc0 in __gconv_get_cache () from /lib/libc.so.6
#7  0x41164860 in in6addr_any () from /lib/libc.so.6
#8  0x41164855 in in6addr_any () from /lib/libc.so.6
#9  0x000000a6 in ~ElementNode (this=0x8868f90) at gc-core.h:161
#10 0x41112981 in tdelete () from /lib/libc.so.6
#11 0x41072cf0 in __gconv_get_cache () from /lib/libc.so.6
#12 0x08868f90 in ?? ()
#13 0x41072c10 in __gconv_get_cache () from /lib/libc.so.6
#14 0x41171ff4 in ?? () from /lib/libc.so.6
#15 0xbfffe7e4 in ?? ()
#16 0x4106aae5 in __gconv_get_alias_db () from /lib/libc.so.6
#17 0x41171ff4 in ?? () from /lib/libc.so.6
#18 0x41171ff4 in ?? () from /lib/libc.so.6
#19 0x08824ebc in ?? ()
#20 0xbfffe804 in ?? ()
#21 0x4106b798 in __gconv_get_alias_db () from /lib/libc.so.6
#22 0x4117586c in _dl_open_hook () from /lib/libc.so.6
#23 0x00000002 in ?? ()
#24 0x41171ff4 in ?? () from /lib/libc.so.6
#25 0x08866f94 in ?? ()
#26 0x088b0f20 in ?? ()
#27 0xbfffe82c in ?? ()
#28 0x4106a9af in iconv_close () from /lib/libc.so.6
Previous frame inner to this frame (corrupt stack?)
(gdb) b inkscape.cpp:781
Breakpoint 2 at 0x823fce1: file inkscape.cpp, line 781.
(gdb) condition 2 (repr->name()[0] != 'i')
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /usr/bin/inkscape
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 22600)]

Breakpoint 2, inkscape_get_repr (inkscape=0x87fb860, key=0x86f7dfe 
"extensions") at inkscape.cpp:781
781         g_assert (!(strcmp (repr->name(), "inkscape")));
(gdb) call repr->name()
$1 = (const gchar *) 0x88906b0 " \006\211\b"
(gdb) print inkscape->preferences->root()->name()
$6 = (const gchar *) 0x88906b0 " \006\211\b"



-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.4.29sauna
Locale: LANG=C, LC_CTYPE=fi_FI (charmap=ISO-8859-1)

Versions of packages inkscape depends on:
ii  libatk1.0-0                1.11.4-2      The ATK accessibility toolkit
ii  libbonobo2-0               2.14.0-1      Bonobo CORBA interfaces library
ii  libc6                      2.3.6-11      GNU C Library: Shared libraries
ii  libcairo2                  1.0.4-2       The Cairo 2D vector graphics libra
ii  libfontconfig1             2.3.2-5.1     generic font configuration library
ii  libfreetype6               2.2.1-2       FreeType 2 font engine, shared lib
ii  libgc1c2                   1:6.7-1       conservative garbage collector for
ii  libgcc1                    1:4.1.0-4     GCC support library
ii  libgconf2-4                2.14.0-1      GNOME configuration database syste
ii  libglib2.0-0               2.10.3-1      The GLib library of C routines
ii  libglibmm-2.4-1c2a         2.8.2-2.1     C++ wrapper for the GLib toolkit (
ii  libgnomevfs2-0             2.14.1-2      GNOME virtual file-system (runtime
ii  libgtk2.0-0                2.8.17-2      The GTK+ graphical user interface 
ii  libgtkmm-2.4-1c2a          1:2.6.5-1+b1  C++ wrappers for GTK+ 2.4 (shared 
ii  liborbit2                  1:2.14.0-1    libraries for ORBit2 - a CORBA ORB
ii  libpango1.0-0              1.12.1-3      Layout and rendering of internatio
ii  libperl5.8                 5.8.8-4       Shared Perl library
ii  libpng12-0                 1.2.8rel-5.1  PNG library - runtime
ii  libpopt0                   1.7-5         lib for parsing cmdline parameters
ii  libsigc++-2.0-0c2a         2.0.16-3      type-safe Signal Framework for C++
ii  libstdc++6                 4.1.0-4       The GNU Standard C++ Library v3
ii  libx11-6                   2:1.0.0-6     X11 client-side library
ii  libxcursor1                1.1.5.2-5     X cursor management library
ii  libxext6                   1:1.0.0-4     X11 miscellaneous extension librar
ii  libxfixes3                 1:3.0.1.2-4   X11 miscellaneous 'fixes' extensio
ii  libxft2                    2.1.8.2-8     FreeType-based font drawing librar
ii  libxi6                     1:1.0.0-5     X11 Input extension library
ii  libxinerama1               1:1.0.1-4     X11 Xinerama extension library
ii  libxml2                    2.6.24.dfsg-1 GNOME XML library
ii  libxrandr2                 2:1.1.0.2-4   X11 RandR extension library
ii  libxrender1                1:0.9.0.2-4   X Rendering Extension client libra
ii  libxslt1.1                 1.1.16-2      XSLT processing library - runtime 
ii  zlib1g                     1:1.2.3-11    compression library - runtime

Versions of packages inkscape recommends:
pn  dia | dia-gnome            <none>        (no description available)
ii  imagemagick                7:6.2.4.5-0.8 Image manipulation programs
pn  libwmf-bin                 <none>        (no description available)
pn  perlmagick                 <none>        (no description available)
pn  pstoedit                   <none>        (no description available)
pn  sketch                     <none>        (no description available)

-- no debconf information
// g++ -o gdkpixbuf-input gdkpixbuf-input.cpp `pkg-config gdk-2.0 --cflags --libs`

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <string.h>
#include <gdk-pixbuf/gdk-pixbuf.h>


int main(int argc, char **argv) {
        GSList * formatlist, * formatlisthead;

        /* \todo I'm not sure if I need to free this list */
        for (formatlist = formatlisthead = gdk_pixbuf_get_formats ();
             formatlist != NULL;
             formatlist = g_slist_next(formatlist)) {
                
                GdkPixbufFormat *pixformat = (GdkPixbufFormat *)formatlist->data;
                
                gchar *name =        gdk_pixbuf_format_get_name(pixformat);
                gchar *description = gdk_pixbuf_format_get_description(pixformat);
                gchar **extensions =  gdk_pixbuf_format_get_extensions(pixformat);
                gchar **mimetypes =   gdk_pixbuf_format_get_mime_types(pixformat);
                
                for (int i = 0; extensions[i] != NULL; i++) {
                        for (int j = 0; mimetypes[j] != NULL; j++) {
                                printf(
                                        "<inkscape-extension>\n"
                                        "<name>%s GDK pixbuf Input</name>\n"
                                        "<id>org.inkscape.input.gdkpixbuf.%s</id>\n"
                                        "<input>\n"
                                        "<extension>.%s</extension>\n"
                                        "<mimetype>%s</mimetype>\n"
                                        "<filetypename>%s (*.%s)</filetypename>\n"
                                        "<filetypetooltip>%s</filetypetooltip>\n"
                                        "</input>\n"
                                        "</inkscape-extension>",
                                        name,
                                        extensions[i],
                                        extensions[i],
                                        mimetypes[j],
                                        name,
                                        extensions[i],
                                        description
                                        );
                        }}
                g_free(name);
                g_free(description);
                g_strfreev(mimetypes);
                g_strfreev(extensions);
        }
        g_slist_free (formatlisthead);
        
        return 0;
}

--- End Message ---
--- Begin Message ---
Package: libgc
Version: 1:6.7-2

This was caused by the --enable-redirect-malloc parameter to configure, which
has been removed in 1:6.7-2

--- End Message ---

Reply via email to