MantisBT - LibWapcaplet | |||||
View Issue Details | |||||
ID | Project | Category | View Status | Date Submitted | Last Update |
0002857 | LibWapcaplet | [All Projects] General | public | 2023-08-07 02:27 | 2023-08-07 23:38 |
Reporter | Michael Orlitzky | ||||
---|---|---|---|---|---|
Assigned To | |||||
Priority | normal | Severity | crash | Reproducibility | always |
Status | new | Resolution | open | ||
Platform | OS | OS Version | |||
Fixed in CI build # | |||||
Reported in CI build # | |||||
Summary | 0002857: Segfault in lwc__intern | ||||
Description | I'm trying to use libsvgtiny to load SVGs for GTK, replacing the usual librsvg loader. I can only guess that this is some kind of thread-safety issue, because it happens "randomly" while also being easy to reproduce. The steps to reproduce it however are a little insane. The short version is that it happens when I try to load a lot of icons at the same time, each of which involves parsing an SVG document. That uses libdom, which in turn uses libwapcaplet. Here's the segfault; it looks like the "str" pointer has become invalid? Thread 73 "pool-gtk4-icon-" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fffb57fa6c0 (LWP 30309)] 0x00007fffe6ba83ef in lwc__intern (s=0x7fffe6c1770a "circle", slen=6, ret=0x7fffd00c6458, hasher=0x7fffe6ba81a7 <lwc__calculate_hash>, compare=0x7ffff72aeee0 <strncmp>, copy=0x7ffff72a2ea0 <memmove>) at src/libwapcaplet.c:107 107 if ((str->hash == h) && (str->len == slen)) { (gdb) p str $1 = (lwc_string *) 0xa5a5a5a5a5a5a5a5 (gdb) p str->len Cannot access memory at address 0xa5a5a5a5a5a5a5b5 | ||||
Steps To Reproduce | If you're in the mood for an adventure... First, build this, and give it your real prefix/libdir: http://gitweb.michael.orlitzky.com/?p=libsvgtiny-pixbuf.git Next, delete the pixbuf loader and thumbnailer that come with librsvg. The thumbnailers can be found in /usr/share/thumbnailers, and the loader directory can be found with, $ pkg-config --variable gdk_pixbuf_moduledir gdk-pixbuf-2.0 Then, install libsvgtiny-pixbuf (sudo make install), and update the loader cache: $ sudo gdk-pixbuf-query-loaders --update-cache Now GTK should be using libsvgtiny to produce SVGs. One at a time, it more or less works. But if you launch the "gtk-icon-browser" and click around for a while, it will almost certainly crash with the segfault above. (If you don't have gtk-icon-browser, it comes with GTK; maybe built it from source.) | ||||
Tags | No tags attached. | ||||
Relationships | |||||
Attached Files |
Notes | |||||
|
|||||
|
|
Issue History | |||||
Date Modified | Username | Field | Change | ||
---|---|---|---|---|---|
2023-08-07 02:27 | Michael Orlitzky | New Issue | |||
2023-08-07 23:38 | Michael Orlitzky | Note Added: 0002414 |