inkstitch / inkstitch

Ink/Stitch: an Inkscape extension for machine embroidery design
https://inkstitch.org
GNU General Public License v3.0
911 stars 168 forks source link

Contour fill produces no output on Mac OS #2650

Open BearOfTheSeas opened 6 months ago

BearOfTheSeas commented 6 months ago

Hi all! When I go to params and select contour fill for any object (including shapes as simple as a triangle, and slightly more complex ones that work on the Windows version) I get no preview on default settings and every other setting I've tried. If I apply anyway and try to simulate or save an embroidery file I get a crash with no error message. I have tried reinstalling Ink/stitch, I am using Mac OS 12.5 Monterey, the matching version of Ink/stitch 3.0.1, and Inkscape 1.3.2.

I do realize that this isn't the most helpful report as is, is there a log file somewhere I should check? Would the report from force quitting Inkscape be helpful?

kaalleen commented 6 months ago

How interesting. I just recently came across of a similar report (but for Big Sur). Does the issue still persist if you update to newest Monterey version?

kaalleen commented 6 months ago

Can you go to Applications > Utilities > Console Trigger the error and search for inkstitch in the console and post the result here.

kaalleen commented 6 months ago

Thinking about it... I think this issue was known and fixed by updating shapely. Could you try a recent development release such as https://github.com/inkstitch/inkstitch/releases/tag/dev-build-kaalleen-remove-old-troubleshoot-layer ? Development builds are not signed and need therefore special treatment, see https://inkstitch.org/docs/install-macos/#xxxx-cannot-be-opened-because-the-developer-cannot-be-verified

BearOfTheSeas commented 6 months ago

The development release works, I love the new params preview too! Would you say that the release you linked is generally stable enough for day to day use until the next stable release? If not, is there an easy way to update shapely in 3.0.1? Thanks so much for your help!

BearOfTheSeas commented 6 months ago

After working perfectly for a few days that dev release is now crashing after most (but not all) params use with the following backtrace, is there anything I can do to fix this while keeping the ability to contour fill?

 0# Inkscape::Application::crash_handler(int) in /Applications/Inkscape.app/Contents/Resources/lib/inkscape/libinkscape_base.1.3.2.0.dylib
 1# _sigtramp in /usr/lib/system/libsystem_platform.dylib
 2# Inkscape::UI::Dialog::ObjectsPanel::_handleTransparentHover(bool) in /Applications/Inkscape.app/Contents/Resources/lib/inkscape/libinkscape_base.1.3.2.0.dylib
 3# Inkscape::UI::Dialog::ObjectsPanel::_handleMotionEvent(_GdkEventMotion*) in /Applications/Inkscape.app/Contents/Resources/lib/inkscape/libinkscape_base.1.3.2.0.dylib
 4# (anonymous namespace)::Widget_signal_motion_notify_event_callback(_GtkWidget*, _GdkEventMotion*, void*) in /Applications/Inkscape.app/Contents/Resources/lib/libgtkmm-3.0.1.dylib
 5# _gtk_marshal_BOOLEAN__BOXED in /Applications/Inkscape.app/Contents/Resources/lib/libgtk-3.0.dylib
 6# g_closure_invoke in /Applications/Inkscape.app/Contents/Resources/lib/libgobject-2.0.0.dylib
 7# signal_emit_unlocked_R in /Applications/Inkscape.app/Contents/Resources/lib/libgobject-2.0.0.dylib
 8# g_signal_emit_valist in /Applications/Inkscape.app/Contents/Resources/lib/libgobject-2.0.0.dylib
 9# g_signal_emit in /Applications/Inkscape.app/Contents/Resources/lib/libgobject-2.0.0.dylib
10# gtk_widget_event_internal in /Applications/Inkscape.app/Contents/Resources/lib/libgtk-3.0.dylib
11# gtk_propagate_event in /Applications/Inkscape.app/Contents/Resources/lib/libgtk-3.0.dylib
12# gtk_main_do_event in /Applications/Inkscape.app/Contents/Resources/lib/libgtk-3.0.dylib
13# _gdk_event_emit in /Applications/Inkscape.app/Contents/Resources/lib/libgdk-3.0.dylib
14# gdk_event_dispatch in /Applications/Inkscape.app/Contents/Resources/lib/libgdk-3.0.dylib
15# g_main_context_dispatch in /Applications/Inkscape.app/Contents/Resources/lib/libglib-2.0.0.dylib
16# g_main_context_iterate in /Applications/Inkscape.app/Contents/Resources/lib/libglib-2.0.0.dylib
17# g_main_context_iteration in /Applications/Inkscape.app/Contents/Resources/lib/libglib-2.0.0.dylib
18# g_application_run in /Applications/Inkscape.app/Contents/Resources/lib/libgio-2.0.0.dylib
19# main in /Applications/Inkscape.app/Contents/MacOS/inkscape
System info Inkscape 1.3.2 (091e20e, 2023-11-25) GLib version: 2.76.3 GTK version: 3.24.38 glibmm version: 2.66.6 gtkmm version: 3.24.7 libxml2 version: 2.11.4 libxslt version: 1.1.35 Cairo version: 1.18.0 Pango version: 1.50.14 HarfBuzz version: 8.0.1 OS version: macOS 12.5 (21G72) arm64
kaalleen commented 6 months ago

Huh, I have to confess, that I have no idea why this is happening. Your Monterey version is pretty old by now. Maybe an update could help (to a newer Monterey version). They had a few graphic card issues fixed in the meantime.

BearOfTheSeas commented 6 months ago

No change unfortunately - do you have any other suggestions?

 0# Inkscape::Application::crash_handler(int) in /Applications/Inkscape.app/Contents/Resources/lib/inkscape/libinkscape_base.1.3.2.0.dylib
 1# _sigtramp in /usr/lib/system/libsystem_platform.dylib
 2# Inkscape::UI::Dialog::ObjectsPanel::_handleTransparentHover(bool) in /Applications/Inkscape.app/Contents/Resources/lib/inkscape/libinkscape_base.1.3.2.0.dylib
 3# Inkscape::UI::Dialog::ObjectsPanel::_handleMotionEvent(_GdkEventMotion*) in /Applications/Inkscape.app/Contents/Resources/lib/inkscape/libinkscape_base.1.3.2.0.dylib
 4# (anonymous namespace)::Widget_signal_motion_notify_event_callback(_GtkWidget*, _GdkEventMotion*, void*) in /Applications/Inkscape.app/Contents/Resources/lib/libgtkmm-3.0.1.dylib
 5# _gtk_marshal_BOOLEAN__BOXED in /Applications/Inkscape.app/Contents/Resources/lib/libgtk-3.0.dylib
 6# g_closure_invoke in /Applications/Inkscape.app/Contents/Resources/lib/libgobject-2.0.0.dylib
 7# signal_emit_unlocked_R in /Applications/Inkscape.app/Contents/Resources/lib/libgobject-2.0.0.dylib
 8# g_signal_emit_valist in /Applications/Inkscape.app/Contents/Resources/lib/libgobject-2.0.0.dylib
 9# g_signal_emit in /Applications/Inkscape.app/Contents/Resources/lib/libgobject-2.0.0.dylib
10# gtk_widget_event_internal in /Applications/Inkscape.app/Contents/Resources/lib/libgtk-3.0.dylib
11# gtk_propagate_event in /Applications/Inkscape.app/Contents/Resources/lib/libgtk-3.0.dylib
12# gtk_main_do_event in /Applications/Inkscape.app/Contents/Resources/lib/libgtk-3.0.dylib
13# _gdk_event_emit in /Applications/Inkscape.app/Contents/Resources/lib/libgdk-3.0.dylib
14# gdk_event_dispatch in /Applications/Inkscape.app/Contents/Resources/lib/libgdk-3.0.dylib
15# g_main_context_dispatch in /Applications/Inkscape.app/Contents/Resources/lib/libglib-2.0.0.dylib
16# g_main_context_iterate in /Applications/Inkscape.app/Contents/Resources/lib/libglib-2.0.0.dylib
17# g_main_context_iteration in /Applications/Inkscape.app/Contents/Resources/lib/libglib-2.0.0.dylib
18# g_application_run in /Applications/Inkscape.app/Contents/Resources/lib/libgio-2.0.0.dylib
19# main in /Applications/Inkscape.app/Contents/MacOS/inkscape
System info Inkscape 1.3.2 (091e20e, 2023-11-25) GLib version: 2.76.3 GTK version: 3.24.38 glibmm version: 2.66.6 gtkmm version: 3.24.7 libxml2 version: 2.11.4 libxslt version: 1.1.35 Cairo version: 1.18.0 Pango version: 1.50.14 HarfBuzz version: 8.0.1 OS version: macOS 12.7.2 (21G1974) arm64
kaalleen commented 6 months ago

It's hard to tell. The error message is an inkscape crash and doesn't tell us if anything went wrong in Ink/Stitch. The source seems to be the objects panel.

Can you make up any rule when this is happening? Any specific svg or interaction with the program. Is this only happening with params (specific params?) or also with lettering or even any other interaction with Inkscape or Ink/Stitch?

When we can narrow it down just a little bit more, it could also be worth to send this report to the inkscape team. They may be interested as well.

BearOfTheSeas commented 6 months ago

I've now seen the crash twice on path operations (once on combine and once on cut), this is compared to a few dozen times on params though (probably 70% of total params use), and I've used path operations at least twice as often as params during the relevant period. No crashes on any other interactions so far. Another odd thing is that the crash doesn't occur instantly when applying params, but rather after a 1-2 second delay. Is any of this helpful?

kaalleen commented 6 months ago

Ok, so this doesn't happen during the params call, but after. That is an interesting fact. It may be much to ask, but would it be possible to make a video of the crash?

BearOfTheSeas commented 6 months ago

No problem, here you go! It looks like I was severely underestimating the time to crash - this was definitely one of the longer ones, but it was nearly 10 seconds.

https://github.com/inkstitch/inkstitch/assets/45858319/72db16eb-2734-4844-b616-fa7fbc60b1e9

kaalleen commented 6 months ago

Thank you so much. This actually looks like it crashes on what the error message suggests rather than on the params dialog. But let's try to confirm. Without using params, can you move your mouse over the objects in the objects panel and see if the crash happens then as well? Did you update Inkscape before you start seeing this crash or did you just update Ink/Stitch?

BearOfTheSeas commented 6 months ago

Not a problem! I only updated Ink/Stitch (from 3.0.1 to dev) before the crash started, and without using params I can mouse over the objects as much as I want without crashes (but for the couple of times I saw it on path effects, but I can't reproduce that at all.) Is it possible that once Ink/Stitch updates the object by applying params it creates some sort of invalid object state, which Inkscape is then crashing on when I interact with the objects panel? It would have to be a temporary state though - if I manage to save between params and crash (or if emergency save does it for me), reloading that save works fine. Thanks again for all your help with this!

kaalleen commented 6 months ago

I'm not sure what exactly is happening. I tried to reproduce the error on Monterrey, but I can't. This release here was build for Catalina, but it should be working on Monterrey too. I'd be curious if this behaves any different, if you don't mind testing: https://github.com/inkstitch/inkstitch/releases/download/dev-build-kaalleen-escape-label-names/inkstitch-20231228.pkg

BearOfTheSeas commented 6 months ago

Same behavior unfortunately - upon further testing it seems like crash frequency might be increasing with number of objects in the file. The attached file is crashing every time when applying params to the flower 1 inner & outer petals - hopefully it will help you replicate the crash.

sunbursts

BearOfTheSeas commented 6 months ago

PS: The crash only occurs if you change at least one setting in params before applying.

kaalleen commented 6 months ago

Thanks. Sadly I am still not able to reproduce the crash.

Just guess into the blue... Could you try to remove all those clips from the paths? They don't make a lot of sense anyway and I am curious if this makes a difference.

Select the paths and go to Object > Clip > Release clip. Remove the black rectangles afterwards.

BearOfTheSeas commented 6 months ago

That reduced the crash frequency after params from 100% to around 70%, if the clips are treated as a type of sub-object (which I assume they are) this seems consistent with frequency scaling with object count (as I just removed a few dozen clip objects.) Where do we go from here? Is there any logging I could turn on that could yield more information?

kaalleen commented 6 months ago

Hm, we could try to make sense out of the error logs from your system. Trigger the crash and go to Applications > Utilities > Console and search in your logs for inkscape and do a second search for inkstitch. Save the reports into a simple txt file and send it over.

Is the crash always happening when you hover the objects dialog after running params? Does it crash as well when the objects panel isn't open?

BearOfTheSeas commented 6 months ago

Here you go! The inkscape errors correspond to the exact time of the crash, the inkstitch ones from about a minute before might be when I opened the params window? I'll keep streaming and see if I see anything else. No logs/reports seem to be generated when I'm not streaming.

inkstitch crash.txt

Also, I pretty much always use params with the objects panel open but in limited testing I cannot trigger a crash with it closed. It always occurs when hovering the panel so far.

kaalleen commented 5 months ago

Rejbasket and I are still unable to reproduce the error on a Monterrey system. I'm a bit on edge with this one now. It could be linked to the fact that after you apply params the objects panel reloads. You may go forward and report this to the Inkscape team and ask if they've seen this before. https://inkscape.org/report It may be helpful for them if you link this issue so they can see what we've discussed so far.

kaalleen commented 3 weeks ago

Would you mind to test if the crash still happens with Inkscape 1.4 beta release? https://inkscape.org/release/inkscape-1.4/?latest=1