Lua Script GIMP doesn't waits for GIMP locks when it's previously opened
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 1/5
- Geschätzter Aufwand
- Unter einer Stunde
- Anfängerfreundlichkeit
- 65/100
Rechercherichtung
Öffne contrib/gimp.lua und untersuche die Erstellung des GIMP-Befehls um Zeile 99. Reproduziere den Workflow, während GIMP bereits läuft, wende dann die vorgeschlagene Befehlsänderung an und überprüfe, dass die Bearbeitungssitzung wartet, die Quelldatei verfügbar bleibt und der erneute Import in darktable nach dem Schließen von GIMP erfolgreich ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Description of the Issue
The contrib/gimp.lua script fails to open images in GIMP when an instance of GIMP is already running. The image is exported by Darktable, but GIMP displays a "No such file or directory" error, and the image is never re-imported into Darktable.
The Root Cause
Race Condition The script's logic relies on the GIMP process being blocking (waiting until the application closes) to proceed to the file cleanup/re-import phase.
Scenario A (GIMP Closed): The script works. The process blocks, user edits, closes GIMP, and the script continues.
Scenario B (GIMP Open): Modern GIMP behavior (especially GIMP 3.0 AppImages or modern 2.10 distros using DBus) defaults to "Single Instance" mode. The command sends a signal to the running instance and returns control immediately (non-blocking) to the shell.
Because of this non-blocking return, the Lua script immediately proceeds to df.file_move, moving/renaming the source file before the GIMP instance (which queues the open request as an idle job) has a chance to read it.
Verification
GIMP 3.0 (AppImage): Confirmed failure due to immediate process return.
GIMP 2.10 (Ubuntu Studio Repo): Confirmed failure on a standard, fresh install, ruling out custom environment issues.
CLI Reproduction: gimp image.jpg && mv image.jpg destination.jpg reproduces the failure in the terminal (GIMP fails to read because mv happens instantly).
The Solution According to GIMP Developer Jehan (discussed in GNOME/gimp #14827), the correct way to maintain the script's intended sequential workflow (Edit -> Wait -> Re-import) is to force a new instance.
Adding the --new-instance flag forces GIMP to spawn a new process that blocks the terminal until that specific window is closed, preventing the race condition.
Proposed Change In contrib/gimp.lua, modify the command construction:
Lua
-- Current implementation (around line 99) gimpStartCommand = gimp_executable .. " " .. img_list
-- Proposed fix
gimpStartCommand = gimp_executable .. " --new-instance " .. img_list
Result of the Fix I verified this locally. With --new-instance, the script correctly waits for the editing session to close, the file remains available for GIMP to read, and the re-import to Darktable succeeds upon closing the window.
- Vorherrschende Sprache
- Lua
- Sterne
- 219
- Forks
- 142
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus darktable-org/lua-scripts
-
dtutils.string: build_substitute_list errors when a metadata field (e.g. rights) has been removed Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
darktable-org/lua-scripts#716 · 2 Kommentare ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 63/100
darktable-org/lua-scripts#706 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
darktable-org/lua-scripts#627 · 2 Kommentare ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 52/100
darktable-org/lua-scripts#710 · 3 Kommentare ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
darktable-org/lua-scripts#708 · 1 Kommentar ·
Alle Issues in darktable-org/lua-scripts
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
-
macOS下查找brew::ncurse失败 Offenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
-
[Eco] Egg Config Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
pterodactyl/game-eggs#634 ·
-
Feature Request
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 72/100
Questie/QuestieTrace#33 ·