Subject: bug#62291: 30.0.50; PGTK copy + paste to other app problem

From: Andrew Tropin <[email-masked]>
Date: Mon, 20 Mar 2023 15:17:54 +0400

On 2023-03-20 19:05, Po Lu wrote:

> Andrew Tropin <[email-masked]> writes:
>
>> Hello dear maintainers!
>>
>> I use pgtk emacs on wayland (sway) and a few months ago started facing a
>> problem with copy/pasting to ungoogled-chromium.  Tried to find relevant
>> reports on bug-gun-emacs, but didn't succeed.
>>
>> Way to reproduce and observed behavior:
>>
>> 0. guix shell emacs-next-pgtk (or build a fresh emacs with pgtk from master).
>> 1. Launch emacs -Q.
>> 2. Select any text and optionally copy it with M-w.
>> 3. Paste it to chromium address bar with middle mouse or C-v if it was
>> copied with M-w.
>> 4. Both chromium and emacs get frozen for some time.
>> 5. After some time Emacs crashes, chromium unfreezes.
>> 6. A few times I saw "waiting for reply from selection owner." in emacs
>> echo area, but can't reproduce it right now.
>>
>> - The same workflow, but with foot terminal instead of emacs works fine.
>> - The same version of Emacs, but built without PGTK, works fine too:
>> guix shell emacs-next-tree-sitter -- emacs -Q
>> - Copy pasting from emacs-next-pgtk to alacritty and icecat works fine.
>>
>> The report of this problem on bug-guix and a backtrace of segfault:
>> https://yhetil.org/guix-bugs/[email-masked]/
>
> Unfortunately, the backtrace is not helpful, because it does not include
> symbols from the crashing Emacs.
>
> Would you please run Emacs under GDB and reproduce the crash there?
> Then, when Emacs crashes, type:
>
>   (gdb) bt
>
> then type return, and send the output here.  Thanks.

Sure!

--8<---------------cut here---------------start------------->8---
#0  0x00007ffff71a9424 in signal_emit_unlocked_R.isra.0 () from /gnu/store/ginkhx2irsi4qwkpnnwg4r30h7jwhi62-glib-2.70.2/lib/libgobject-2.0.so.0
#1  0x00007ffff71af21b in g_signal_emit_valist () from /gnu/store/ginkhx2irsi4qwkpnnwg4r30h7jwhi62-glib-2.70.2/lib/libgobject-2.0.so.0
#2  0x00007ffff71af722 in g_signal_emit () from /gnu/store/ginkhx2irsi4qwkpnnwg4r30h7jwhi62-glib-2.70.2/lib/libgobject-2.0.so.0
#3  0x00007ffff719b884 in g_object_dispatch_properties_changed () from /gnu/store/ginkhx2irsi4qwkpnnwg4r30h7jwhi62-glib-2.70.2/lib/libgobject-2.0.so.0
#4  0x00007ffff719d834 in g_object_notify_by_pspec () from /gnu/store/ginkhx2irsi4qwkpnnwg4r30h7jwhi62-glib-2.70.2/lib/libgobject-2.0.so.0
#5  0x00007ffff79afbcd in ?? () from /gnu/store/1y2rd23xx129v1y0qglijws0s208aj8p-gtk+-3.24.30/lib/libgtk-3.so.0
#6  0x00007ffff79de357 in ?? () from /gnu/store/1y2rd23xx129v1y0qglijws0s208aj8p-gtk+-3.24.30/lib/libgtk-3.so.0
#7  0x00007ffff71974af in g_closure_invoke () from /gnu/store/ginkhx2irsi4qwkpnnwg4r30h7jwhi62-glib-2.70.2/lib/libgobject-2.0.so.0
#8  0x00007ffff71a89e9 in signal_emit_unlocked_R.isra.0 () from /gnu/store/ginkhx2irsi4qwkpnnwg4r30h7jwhi62-glib-2.70.2/lib/libgobject-2.0.so.0
#9  0x00007ffff71aed65 in g_signal_emit_valist () from /gnu/store/ginkhx2irsi4qwkpnnwg4r30h7jwhi62-glib-2.70.2/lib/libgobject-2.0.so.0
#10 0x00007ffff71af722 in g_signal_emit () from /gnu/store/ginkhx2irsi4qwkpnnwg4r30h7jwhi62-glib-2.70.2/lib/libgobject-2.0.so.0
#11 0x00007ffff798ac04 in ?? () from /gnu/store/1y2rd23xx129v1y0qglijws0s208aj8p-gtk+-3.24.30/lib/libgtk-3.so.0
#12 0x00007ffff784b37a in gtk_main_do_event () from /gnu/store/1y2rd23xx129v1y0qglijws0s208aj8p-gtk+-3.24.30/lib/libgtk-3.so.0
#13 0x00007ffff7ef23c5 in ?? () from /gnu/store/1y2rd23xx129v1y0qglijws0s208aj8p-gtk+-3.24.30/lib/libgdk-3.so.0
#14 0x00007ffff7f4f352 in ?? () from /gnu/store/1y2rd23xx129v1y0qglijws0s208aj8p-gtk+-3.24.30/lib/libgdk-3.so.0
#15 0x00007ffff70a34cb in g_main_context_dispatch () from /gnu/store/ginkhx2irsi4qwkpnnwg4r30h7jwhi62-glib-2.70.2/lib/libglib-2.0.so.0
#16 0x000000000064c548 in pgtk_read_socket ()
#17 0x0000000000515762 in gobble_input ()
#18 0x0000000000515b85 in unblock_input_to ()
#19 0x0000000000516a38 in timer_check ()
#20 0x0000000000516f75 in readable_events ()
#21 0x0000000000517138 in get_input_pending ()
#22 0x000000000051beb8 in detect_input_pending_run_timers ()
#23 0x00000000005f40c8 in wait_reading_process_output ()
#24 0x0000000000437bd0 in sit_for ()
#25 0x000000000051ea0f in read_char ()
#26 0x000000000051f2ed in read_key_sequence ()
#27 0x0000000000520f12 in command_loop_1 ()
#28 0x0000000000596757 in internal_condition_case ()
#29 0x000000000050d13a in command_loop_2 ()
#30 0x00000000005966b1 in internal_catch ()
#31 0x000000000050d0df in command_loop ()
#32 0x0000000000513f43 in recursive_edit_1 ()
#33 0x00000000005142ba in Frecursive_edit ()
#34 0x000000000042d022 in main ()
--8<---------------cut here---------------end--------------->8---

-- 
Best regards,
Andrew Tropin