Project

General

Profile

Actions

Bug #2371

open

gtk4: Client crash when accepting one treaty from many

Added by Marko Lindqvist about 3 hours ago. Updated about 1 hour ago.

Status:
In Review
Priority:
Blocker
Category:
gtk4-client
Target version:
Start date:
10/14/2026
Due date:
% Done:

0%

Estimated time:

Description

Likely a regression with #2306; if there's diplomacy dialog open with multiple opponents, individual dialog does not close when it gets accepted, and sometimes client crashes at that point.


Files


Related issues 2 (1 open — 1 closed)

Related to Bug #2306: gtk4: Double destruction of diplomacy dialogClosedMarko Lindqvist09/29/2026

Actions
Blocks Task #2218: Release 3.2.7NewMarko Lindqvist09/05/2026

Actions
Actions #1

Updated by Marko Lindqvist about 3 hours ago

Actions #2

Updated by Marko Lindqvist about 1 hour ago

#2306 should be reverted, and fixed properly - the actual problem is as follows:

gui_dialog_destroy() does not immediately cause call of gui_dialog_destroy_handler(), but only from gtk's main loop when it's next time entered.
gui_dialog_destroy() is first called for the last diplomacy dialog, and then for the main diplomacy dialog. This is correct order, but it still results in main diplomacy dialog being destroyed at this point.
gui_dialog_destroy_handler() is called from the gtk main loop for the last diplomacy dialog. It tries to access things that were owned by now destroyed main diplomacy dialog.

The solution is to move any access to external, potentially destroyed, dialogs from gui_dialog_destroy_handler() to happen already in gui_dialog_destroy()

Actions #4

Updated by Marko Lindqvist 39 minutes ago

  • Related to Bug #2306: gtk4: Double destruction of diplomacy dialog added
Actions

Also available in: Atom PDF