Hello:
Since 0.42 release of inkscape I am experiencing crashing with the gtk-qt-engine. All the others gtk applications works fine with the gtk-qt-engine and so does Inkscape except for the Align and Distribute Dialog. Whenever I click on it (new or saved drawing) I get this:
nestorm@...1092...:~$ inkscape QPainter::begin: Cannot paint null pixmap QPainter::setPen: Will be reset by begin() QPainter::setBrush: Will be reset by begin() QPainter::setBrush: Will be reset by begin() QPainter::setPen: Will be reset by begin() QPainter::setPen: Will be reset by begin() QPainter::setPen: Will be reset by begin()
(inkscape:9051): Gdk-CRITICAL **: gdk_pixmap_foreign_new_for_display: assertion `(anid != 0)' failed
(inkscape:9051): Gdk-CRITICAL **: gdk_draw_drawable: assertion `src != NULL' failed
(inkscape:9051): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
(inkscape:9051): GdkPixbuf-CRITICAL **: gdk_pixbuf_new: assertion `width > 0' failed
(inkscape:9051): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_n_channels: assertion `pixbuf != NULL' failed
(inkscape:9051): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_bits_per_sample: assertion `pixbuf != NULL' failed
(inkscape:9051): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `pixbuf != NULL' failed
(inkscape:9051): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `pixbuf != NULL' failed
(inkscape:9051): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_rowstride: assertion `pixbuf != NULL' failed
(inkscape:9051): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed QPainter::begin: Cannot paint null pixmap QPainter::setPen: Will be reset by begin() QPainter::setBrush: Will be reset by begin()
Emergency save activated!
Emergency save document locations: Documento nuevo 1.2005_11_28_19_10_31.0 Emergency save completed. Inkscape will close now. If you can reproduce this crash, please file a bug at www.inkscape.org with a detailed description of the steps leading to the crash, so we can fix it. Violación de segmento (core dumped)
Removing the qt integration solves this topic, but I wonder if there is any other reason behind this failure. why it's only with one dialog? why only since 0.42 release? why only with Inkscape? I use in a daily basis Gimp, Mozilla, all of the visually integrated thanks to the gtk-qt-engine with no probs. It happened with ubuntu hoary and it happens now with mandriva2006official. Too many questions for me.
Thanks: Néstor
Since 0.42 release of inkscape I am experiencing crashing with the gtk-qt-engine. All the others gtk applications works fine with the gtk-qt-engine and so does Inkscape except for the Align and Distribute Dialog. Whenever I click on it (new or saved drawing) I get this:
nestorm@...1092...:~$ inkscape QPainter::begin: Cannot paint null pixmap
As you can see from the release notes, this is a known issue which is, however, not in inkscape's reach, as the crash happens in the gtk_qt_engine code. Please file a bug with the maintainers of that package.
Also, it is possible that the problem can be worked around by using another KDE theme than the one you are using now. Some themes are known to crash the system in subtle ways (baghira).
This applies equally for the gtk2-engines-smooth package, and inkscape is not the only application crashing from that theme, as you can see from their SF bug tracker.
Regards, ralf
This reminds me - Aaron, I don't think it's necessary to provide debuginfo autopackages, as anybody can send you a core file that you can load up against your own copy of the binaries with debug info included. Assuming you have the same libraries they do, this is much easier for the end user.
It wouldn't help here unless you specifically installed GtkQt to replicate the users environment. So that's the disadvantage. The advantage is you can do debugging in your own time just as if you were in front of the users computer.
It could even be automated so cores are automatically uploaded. I'm not sure how you'd make sure corefile generation is on though - does that require root access?
This works for the autopackages because you have a bitwise identical copy of the binaries the users run (except that their copy is stripped and yours isn't). It wouldn't work for distribution-specific binaries.
thanks -mike
You wrote
This reminds me - Aaron, I don't think it's necessary to provide debuginfo autopackages, as anybody can send you a core file that you can load up against your own copy of the binaries with debug info included. Assuming you have the same libraries they do, this is much easier for the end user.
Not realistic: saving of cores is turned off in all distributions I know, and you don't want to hassle people to modem-upload megabytes of memory.
ralf
On Tue, 29 Nov 2005 19:53:40 +0100, Ralf Stephan wrote:
Not realistic: saving of cores is turned off in all distributions I know
True but it's easy to switch it on again, just one command in the shell. And bear in mind Inkscape bombs out to the terminal anyway if it crashes.
and you don't want to hassle people to modem-upload megabytes of memory.
The alternative is either no useful debug data, or they have to download 40mb of unstripped binary. I'm pretty sure a compressed core upload (LZMA can work wonders) will beat the alternatives.
thanks -mike
Quoting Mike Hearn <mike@...869...>:
True but it's easy to switch it on again, just one command in the shell. And bear in mind Inkscape bombs out to the terminal anyway if it crashes.
In principle, Inkscape could turn core dumps back on again for itself (assuming it's only a soft limit, and not a hard limit set by root) via setrlimit'ing RLIMIT_CORE.
Not portable off the Unix-ish OSes, of course.
-mental
participants (4)
-
unknown@example.com
-
Mike Hearn
-
Néstor Díaz
-
Ralf Stephan