darktable-org / darktable

darktable is an open source photography workflow application and raw developer
https://www.darktable.org
GNU General Public License v3.0
9.5k stars 1.12k forks source link

a8f47e409 continuously hanging #6417

Closed ptilopteri closed 3 years ago

ptilopteri commented 3 years ago

a8f47e409 continuously hanging

running under gdb, outputs: http://wahoo.no-ip.org/~paka/dt.a8f47e409.gdb.txt http://wahoo.no-ip.org/~paka/dt.a8f47e409.1.gdb.txt http://wahoo.no-ip.org/~paka/dt.a8f47e409.2.gdb.txt http://wahoo.no-ip.org/~paka/dt.a8f47e409.3.gdb.txt

openSUSE Tumbleweed 20200920 NVIDIA GF106 [GeForce GTS 450], 390.138 darktable-3.3.0~git877.f8b51737c OpenCL loaded but not available i7 12-core 36GB

ptilopteri commented 3 years ago

w/o gdb

seg fault double free or corruption (fasttop) Aborted (core dumped)

coredump @ http://wahoo.no-ip.org/~paka/dt.coredump.a8f47e409.lz4

TurboGit commented 3 years ago

There is some lua path in backtrace, can you remove all your lua script and test again?

ptilopteri commented 3 years ago

certainly, in fact, I was already testing that as that is the only dt change I have made aside from updating master when available.

I moved luarc out of path.

will report. tks

ptilopteri commented 3 years ago

@wpferguson ping

It appears to be an lua problem

Now what to do to determine the actual problem?

my luarc reads:

require "tools/script_manager" require "official/generate_image_txt" require "official/image_path_in_ui" require "official/import_filter_manager" require "contrib/ext_editor" require "contrib/gimp"

wpferguson commented 3 years ago

Okay, I'm assuming that by pinging me everything ran ok without the luarc file. :-)

First the bad news. I just compiled and ran a8f47e409, with multiple lua scripts running and had no issues.

Now the good(?) news. I have had this same problem happen to me several times with different builds. When I've had it happen, I was usually scrolling through the lighttable. I'm not sure if it really is hung or it just takes a long time to produce a core dump. I've waited it out a couple of times and darktable finally closed.

So, since you have the problem occurring for you let's try a few tests running darktable from a terminal.

  1. start darktable with darktable to make it open in darkroom instead of lighttable. If it's working, try scrolling the filmstrip and see if it hangs.

  2. Move your configuration directory to <what it's called>.old and start darktable and let it create a new configuration directory. Add lua scripts and your luarc. Import some files and see what happens. For what it's worth, this is how I've been getting around the problem.

  3. If 2 works, copy the darktablerc file from .old and see if it still works. Then try data.db, and finally library.db.

I've tried troubleshooting this several times. The culprit appears to be a double free on a widget, but I can never determine the widget, what created it, and what freed it. I'm mystified by this bug because nothing has changed with the lua code that keeps showing up as the problem. Possibly it's a latent bug that some other piece of code has caused to become exposed. The only somewhat common thing I've noticed is that it tends to happen after I've used the liquefy module on an image. Not right away, and not always, but I had never seen this bug until I started playing with liquefy.

ptilopteri commented 3 years ago

when it appears to happen to me is switching forward/backward thru a collection in darkroom mode. Do not think I ever noticed in lighttable

  1. explain how to ensure it opens in darkroom mode. Only time I notice this is opening a single image from command-line or another app.

  2. I just did the lua dance, git,clone/... But that was before the hangs...

I don't believe I have ever utilized the "liquefy" module ...

There will be some delay as I need to finish my current set to publish for the High School parents.

fwiw: before doing the lua dance/git clone/... I hand edited luarc and didn't have this problem. My hand edited luarc:

require "official/yield" local darktable = require "darktable" print("Hello World ! darktable LUA speaking :^)") require "lib/dtutils" require "lib/dtutils/file" require "lib/dtutils/log" require "lib/dtutils/string" require "lib/dtutils/debug" require "lib/dtutils/system" require "official/copy_paste_metadata" require "official/delete_long_tags" require "official/delete_unused_tags" require "official/enfuse" require "official/generate_image_txt" require "official/image_path_in_ui" require "official/import_filter_manager" dump = darktable.debug.dump print(dump(darktable.register_import_filter)) require "contrib/LabelsToTags" require "contrib/copy_attach_detach_tags" require "contrib/ext_editor" require "contrib/gimp" require "contrib/hugin" require "contrib/passport_guide" require "contrib/rename-tags" require "contrib/select_untagged"

I did notice problems with: "contrib/autostyle" "contrib/enfuseAdvanced" require "contrib/image_time.lua" require "tools/script_manager"

maybe this will help

wpferguson commented 3 years ago

explain how to ensure it opens in darkroom mode. Only time I notice this is opening a single image from command-line that's what I wanted you to do

I thought of something else. Empty your luarc file, so that no script is running, but leave the luarc file there. Then see if you can make it crash.

wpferguson commented 3 years ago

I save my last crashing darktable config directory. I changed back to it, ran darktable scrolled up and down through lighttable and got a crash. Emptied my luarc file, but letf it there and tried again - no crash. Added just script_manager with no scripts enabled - no crash. Started darktable, scrolled back and forth with no crash, enabled enfuseAdvanced, scrolled some more and got a crash. Disabled enfuseAdvanced - no crash. Enabled postsharpen (since it adds gui elements to the exporter also just to see if it had something to do with the exporter) - no crash. So, it seems, at least on my system that enfuseAdvanced is the culprit though I can see no reason why that should be.

@ptilopteri can you try with your original luarc and enfusedAdvanced disabled?

There will be some delay as I need to finish my current set to publish for the High School parents.

I understand, I shoot high school sports...

ptilopteri commented 3 years ago

@wpferguson My original luarc that "worked for me" had enfusedAdvanced disabled:

--require "contrib/enfuseAdvanced"

And I had no problem with it

More explanation. Yesterday I read more about your automagic lua handling and decided to try it rather than continually having to check scripts for updates, ... And I followed your posted instructions to the letter except for adding: require "official/generate_image_txt" require "official/image_path_in_ui" require "official/import_filter_manager"

and had no problems.

Would it make sense to return luarc as your script makes it and disable "contrib/enfuseAdvanced" to see if the crashes return. I can do that and continue to process the current set.

wpferguson commented 3 years ago

Sounds good, let's try that.

ptilopteri commented 3 years ago

quick answer and this time it dumped in lighttable, just scrolling thru the collection

corrupted double-linked list Aborted (core dumped)

luarc:

require "tools/script_manager" --require "contrib/enfuseAdvanced" require "official/generate_image_txt" require "official/image_path_in_ui" require "official/import_filter_manager" require "contrib/ext_editor" require "contrib/gimp"

ptilopteri commented 3 years ago

commenting out all entries in luarc

wpferguson commented 3 years ago

Okay, I can make it crash anytime with just enfuseAdvanced. I guess now we need to see what other scripts cause it. script_manager worked for me with no problems. I'll try the rest of your list and see if there are others that cause the problem.

ptilopteri commented 3 years ago

does not appear to dump with all entries in luarc commented out.

will re-enable my previous "hand edited" luarc quoted several comments ago.

note: when I was crashing earlier before determined lua problem, I was running your script as it comes with three added lines: require "official/generate_image_txt" require "official/image_path_in_ui" require "official/import_filter_manager"

and I had not enabled anything. The only enabled scripts were from your script_manager. And I was crashing.

wpferguson commented 3 years ago

Which scripts did you enable from script_manager?

ptilopteri commented 3 years ago

none, the only ones enabled were the ones your script enabled automagically.

wpferguson commented 3 years ago

The only ones it starts are the ones that were started by it and not disabled when it shut down. It saves it's state in the darktablerc file with entries like lua/script_manager// Githubissues.

  • Githubissues is a development platform for aggregating issues.