Crash in on_stream_param_changed after resizing client RDP surface
Hey all, I recently started work on implementing some new features and encountered the following crash:
**systemd-coredump[X]: [🡕] Process X (gnome-remote-de) of user 1000 dumped core.
Found module linux-vdso.so.1 with build-id: 88536f03982667a41f2be85c4e61e7e8307e2700
Found module libpipewire-module-session-manager.so with build-id: 2dadcd7261efa56fcc27a652ada6bca4fba5145e
Found module libpipewire-module-metadata.so with build-id: 7a72c20304d50020f97003fad1e767a25d210b51
Found module libpipewire-module-adapter.so with build-id: c03389d72670bbd1095dfb1a1f3c82409861953f
Found module libpipewire-module-client-device.so with build-id: c429692eae69423dbc1f176db418a3ee19b0caf8
Found module libpipewire-module-client-node.so with build-id: 04b37ba0663af304faaa81bedfa1859a5254a40a
Found module libpipewire-module-protocol-native.so with build-id: aa2f9d16647a55ca7b5d6c6a47156aa474f1d44c
Found module libcap.so.2 with build-id: 9e11e3bca4b0a25d047cb36e933e1d727663cf8e
Found module liblz4.so.1 with build-id: a85971851cd059f1af80d553c8e7170d42ec59a1
Found module libsystemd.so.0 with build-id: 61fb1ea64197576f79977fb27e1be39a088e7f3e
Found module libdbus-1.so.3 with build-id: 24105ac5af0c61583cb7928d54701f31fd45ba5a
Found module libspa-dbus.so with build-id: 7a30d70dbd3da2663b67a6752d96f3d843874c8c
Found module libspa-support.so with build-id: b8fc9d2b8caa22b7c359d59a0b73a781eaffd5e0
Found module legacy.so with build-id: 7d6f137c3fb3b70b636562512b158647cb3cfaee
Found module libtinfo.so.6 with build-id: 5bc463a93df92725301f9399eea90bb6fc987b34
Found module libedit.so.2 with build-id: 9fcc3490de1a1f4919b1f6e398c99c7fa25f6863
Found module libvulkan.so.1 with build-id: f0c68e18c65acc33ade4f150c1f99e53fc3eb296
Found module libdrm_nouveau.so.2 with build-id: d2c1be76a3cc6e1574d14e7136d2f06ad8210629
Found module libdrm_amdgpu.so.1 with build-id: 56ac03e4af1a8e8f438dc9e5bd50524761e5dcaa
Found module libelf.so.1 with build-id: 0eaf2d056fb292c3da2d99fa16c13d0ec798f121
Found module libdrm_radeon.so.1 with build-id: 724a102e4f1e3a3d43d90bfb8d0504ade7af4cea
Found module libsensors.so.5 with build-id: 0d5803327d5e32a301844fb819fd3c762f8e69f6
Found module libzstd.so.1 with build-id: 5d9d0d946a3154a748e87e17af9d14764519237b
Found module libLLVM-13.so.1 with build-id: eca33c53ac9188ac525f64fb2bcc1fe18e6e8934
Found module virtio_gpu_dri.so with build-id: 50a2cb9eb66a3a882c163039332f827d0d8e6639
Found module libxshmfence.so.1 with build-id: f08296172ec7b676e1b371afc936e36add17366d
Found module libxcb-sync.so.1 with build-id: 657d8516621c4042b4b221ce1b3525f92467ef7e
Found module libxcb-present.so.0 with build-id: a4f415af56b06f1f38d5a0339dd9828ff136b115
Found module libxcb-dri3.so.0 with build-id: b6aa69fda711358025ae4dd29fa597866d29b8c5
Found module libwayland-server.so.0 with build-id: 75c4598a62c3c6e94868467866488cdfba049e7d
Found module libwayland-client.so.0 with build-id: a85980f4efa33fa5cadfbf257349fef99d499427
Found module libxcb-xfixes.so.0 with build-id: d6f264cc06fb6c92b5ced2c8f373cf5a5bda0e09
Found module libxcb-dri2.so.0 with build-id: dc5a2c2b0c9080fff87ea241e7298a7ac2f838e3
Found module libX11-xcb.so.1 with build-id: 916a9b062e61b0310210ae16428615ebbe01c87d
Found module libglapi.so.0 with build-id: bb6a017738cae7c238f5425a77af5599a72528c6
Found module libgbm.so.1 with build-id: b62345d3dad2bd04534ac929a6c059ccb60ad25a
Found module libEGL_mesa.so.0 with build-id: b9df390825250f3b7b6d8391f96e02fe40ede1ed
Found module libGLdispatch.so.0 with build-id: 19c339ecd74c020f1db1342213a07114f4baf5e0
Found module libEGL.so.1 with build-id: 236d96c92ee2914a0e90e06e01b79dfcba0f7b41
Found module libdconfsettings.so with build-id: 28be9445dc37a4f123f206cda2ffc7dea558a315
Found module libdatrie.so.1 with build-id: 128b6874a47f2b783d9e9060d3caaee4110bfd3d
Found module libgraphite2.so.3 with build-id: 5ffbc76fc948f6b88d766a7210c2e6a329a6c278
Found module libicudata.so.70 with build-id: b1c2496dd0543023c7a19c961bb7f3abc818f465
Found module libthai.so.0 with build-id: afa54530349e68380815d606d15dbfda8952799f
Found module libfribidi.so.0 with build-id: 6e075a666e1da8ffdb948d734e75d82b1b6dc0fb
Found module libharfbuzz.so.0 with build-id: 3b9c495c079286b8d1f55d0937a0a771593eb7e6
Found module libpangoft2-1.0.so.0 with build-id: a7dd79c7ea8ec4d5791f83f9a8f34ffbfa8c3801
Found module libicuuc.so.70 with build-id: bef3ff1d70aadd68aab07d858a759360c8b919ae
Found module libmd.so.0 with build-id: cd2d2f71b3967ebde30e2aa43b8eb63339020c06
Found module libgomp.so.1 with build-id: f365cc44774a8bfdb39c4a6e131d685fbe521866
Found module libXfixes.so.3 with build-id: a9c550a40b8154a3b4b5e2ac182bb50c013c3f18
Found module libpthread.so.0 with build-id: e62798b68557abb4bc5548aba2640cd5ab948f36
Found module libnuma.so.1 with build-id: 92e1c5de1d74216d8cd25a4cba6ea2dcbd531897
Found module libogg.so.0 with build-id: 842412496daf280ca5491dfb6581df5a378b72f0
Found module libstdc++.so.6 with build-id: f57e02bfadacc0c923c82457d5e18e1830b5faea
Found module libgcc_s.so.1 with build-id: 09c4935b79388431a1248f6a98e00d7dc81b8513
Found module libpango-1.0.so.0 with build-id: 2d778a30dd59c0673b0208c538999ccc0991093a
Found module libpangocairo-1.0.so.0 with build-id: cb231e62ccba07e561d1d08804e975f615a6faf6
Found module libxml2.so.2 with build-id: 4cf6467851d8277d8d029567cff8024c45b5a558
Found module libcairo-gobject.so.2 with build-id: 71b5bd37d77ea1862d2ed00e9f6ead482f307db8
Found module libbsd.so.0 with build-id: 9a6c72469251e2feb63e175ef5cb944ce6e00df3
Found module libbrotlicommon.so.1 with build-id: 43a72967cf84155914c8b3e915926733d1e57c11
Found module libsoxr.so.0 with build-id: b8dc496b743e4e8d61c6fef49c8012bc35e9ac9c
Found module libOpenCL.so.1 with build-id: 1be86041e7312f877f3487f2394b0a8df1b8baba
Found module libdrm.so.2 with build-id: d32defdcdf5f200f16d1633e52372f5e158f64a5
Found module libvdpau.so.1 with build-id: 7a520d222a3972072b32d80011070446b2684530
Found module libva-x11.so.2 with build-id: 334bf4edb55eb30766fae714804e615a528a1ebf
Found module libva-drm.so.2 with build-id: 7b8599d12a09aa2478fdc3830f75bf63a4b3f83c
Found module libmfx.so.1 with build-id: e3f6c1a4e149e517ab507a508ecf48765df86368
Found module libva.so.2 with build-id: 3c4d68dec25a3a4399f894731843edca31c16b92
Found module libxvidcore.so.4 with build-id: 4d1d30a6dfd58fdcadc9fbf028c73ad5797a747d
Found module libx265.so.199 with build-id: 724cf0e53c8c791c6baa015a6a8f8e83b1be6e5b
Found module libx264.so.163 with build-id: b2e7160a74448d05d96f3305d73fc2316edbedaf
Found module libvorbisenc.so.2 with build-id: 5d30e2a713669895dcf3b298ffed2e4ce56121e8
Found module libvorbis.so.0 with build-id: fc9c832676aac541183d1b4774746bec48b66051
Found module libtwolame.so.0 with build-id: fd6d508eb94667db111c08a72eddaea93efab54b
Found module libtheoradec.so.1 with build-id: 932bfc7ac9eeaf460b5f02c8e263c14f7c049434
Found module libtheoraenc.so.1 with build-id: e3d3731e6c5742b0f3227b050b83b6c1b13defbc
Found module libspeex.so.1 with build-id: a2f075be479e3df9fcaa6bed56b61bdf5d2d5d25
Found module libshine.so.3 with build-id: 123d958ed2a8bf8f5ae564812db6e5266775dd28
Found module libopus.so.0 with build-id: 53a29374ac557d631d863d9908ff5bec82f55ba5
Found module libopenjp2.so.7 with build-id: 8fca055b4b5787b0db2397d2dfe8de5b6fbf53f2
Found module libmp3lame.so.0 with build-id: bdb216cf83a389e144e39c11aadd885a30f47755
Found module libgsm.so.1 with build-id: a283e0116186dd4ef078d8d8f9f8112e34e1d07e
Found module libcodec2.so.1.0 with build-id: 24a8b8e35453fd42cd69d5f33561aad86e662d8e
Found module libaom.so.3 with build-id: 74062a113075a6b5584e51899a5cc46bbcddffe1
Found module libsnappy.so.1 with build-id: a3611293f42a2a0fd39b5ba3b6ccdb1c17f387a9
Found module libzvbi.so.0 with build-id: c63b6077961120a0bf6d4f23739061037c934a77
Found module librsvg-2.so.2 with build-id: d90852732e03f74b9e1b885131f22beb1791061c
Found module libdav1d.so.5 with build-id: 1333de73ba77bb82bfaf121682f00d5a9619237b
Found module liblzma.so.5 with build-id: b85da6c48eb60a646615392559483b93617ef265
Found module libwebp.so.7 with build-id: 8944411ddaec01ba77fc7f9bd346f10bcd695b75
Found module libwebpmux.so.3 with build-id: 7f49845fa1883c58d5cfcafc3e11a81b9608e99c
Found module libvpx.so.7 with build-id: a87404c9071545059bf094cba485430c40932554
Found module libgpg-error.so.0 with build-id: 3fbec71c67bee60d8aef00697ee187079b0fb307
Found module libjpeg.so.8 with build-id: c54abff9294357e28532a76a049a4cb2542fc15b
Found module libpcre2-8.so.0 with build-id: 184a841c55fb7fe5e3873fcda8368c71016cd54c
Found module libblkid.so.1 with build-id: cdf95a964e3302bb356fefc4b801fae8c4340b31
Found module libXdmcp.so.6 with build-id: 6b60f99504aa1d3999ea02a14366d1a39d6c5dcf
Found module libXau.so.6 with build-id: 7089b383cacbfc1760634a3be19a923e51fe3315
Found module libbrotlidec.so.1 with build-id: 4b1f390dd6e24d49684db8b2443d082379e8e977
Found module libuuid.so.1 with build-id: 64c0d0cb22fa2bdeca075a0c0418ba5ff314b220
Found module libexpat.so.1 with build-id: 6311da0a7dd81c38b0470b6c535a8cc22d4443c2
Found module libswresample.so.3 with build-id: b9a83c296cc8e76c153242afdb24f12c040aa790
Found module libavutil.so.56 with build-id: abc6b699a880017e212d717fb86a1c6ea0e022e8
Found module libavcodec.so.58 with build-id: 275d20beefaac834b14cd4f8c8754d59beec5c48
Found module libxkbfile.so.1 with build-id: b585f533dd10bd8c043f887705d4e45828baf206
Found module libssl.so.3 with build-id: 582183daf1ebb8b1b91e11aec57f615f1cdc4158
Found module ld-linux-x86-64.so.2 with build-id: 61ef896a699bb1c2e4e231642b2e1688b2f1a61e
Found module libtss2-sys.so.1 with build-id: e397a01da2eb9cf8ce6ca550e29a0e2062bb7c03
Found module libcrypto.so.3 with build-id: 60d206c3617ae7d35f62345a1431caf7c464033c
Found module libgcrypt.so.20 with build-id: 60a5e524de0ed8323edf33e9eb9127a9eee02359
Found module libgdk_pixbuf-2.0.so.0 with build-id: 551d8813dc7a77ca3e7c1d63a78eb4b8e341b428
Found module libffi.so.8 with build-id: 59c2a6b204f74f358ca7711d2dfd349d88711f6a
Found module libselinux.so.1 with build-id: 6fa53202ce676297de24873c886443b2759bfd8a
Found module libmount.so.1 with build-id: eeb33f2b4b9c3eb0a29575eb9932ef08663bd836
Found module libgmodule-2.0.so.0 with build-id: 65bf6e7985087f392ba1bc94b13a76f98eaaf4de
Found module libpcre.so.3 with build-id: 3982f316c887e3ad9598015fa5bae8557320476a
Found module libm.so.6 with build-id: 27e82301dba6c3f644404d504e1bb1c97894b433
Found module libz.so.1 with build-id: 9b5076d56a29e57e87f8065c7bb26390d118f869
Found module libXext.so.6 with build-id: 9fb1880e02dfa11a8c39cd1a170109de08302059
Found module libX11.so.6 with build-id: b8d9314a7185312e4813abcac67d8b68ae2fd690
Found module libXrender.so.1 with build-id: 7ccbfa4c24e93c42fa50dd2e42fa277630f9650c
Found module libxcb-render.so.0 with build-id: cb521131fd3b0f2ee6056cbc2014b3b8ef0d5c0e
Found module libxcb.so.1 with build-id: 1bef862a339557aa16c34c7a4b27f8f3aea90517
Found module libxcb-shm.so.0 with build-id: edb24ef4079aa423edcc50a3bb0dfb912fe8a57a
Found module libpng16.so.16 with build-id: d58bf7c11ac793d528926238d831792b5ef792cf
Found module libfreetype.so.6 with build-id: e3aff1d56fb1aecc723a73882f7d0f208a36c4bc
Found module libfontconfig.so.1 with build-id: 0bb435fdd5ec37178e14ea03bb36f779a4b72a94
Found module libpixman-1.so.0 with build-id: e24db0bd24ff8f8ce4efed29e30b8f3d35a1bfe6
Found module libc.so.6 with build-id: 69389d485a9793dbe873f0ea2c93e02efaa9aa3d
Found module libfdk-aac.so.2 with build-id: ce81c6176842a6ce52111349065755ea328b42e5
Found module libxkbcommon.so.0 with build-id: a4b17d939092101dc8f6b2a1d70eaf1fddb2dd51
Found module libwinpr2.so.2 with build-id: 4d1c951353c51aaf1330f6a0f08fd536200fc94a
Found module libfuse3.so.3 with build-id: 92f66c626055002cd59417c5d3ac188c8cac11a3
Found module libfreerdp-server2.so.2 with build-id: 87f9458e58031acc99d89f6c22bf842e7da52bdf
Found module libfreerdp2.so.2 with build-id: f22b5fc4c9cac62639d2a4f79da875cde4ee44fb
Found module libtss2-tctildr.so.0 with build-id: d5100008f1740ee2c854cd2ebe091bc7ab3cb377
Found module libtss2-rc.so.0 with build-id: 6a5a86863bb82b76f6d6199be639890826eb2b4f
Found module libtss2-mu.so.0 with build-id: 41ff47bf67f0973f0bc81e14ad0238969851cf8b
Found module libtss2-esys.so.0 with build-id: 4335ca9b7ade7f1492eb391c421f7b9e7eec0517
Found module libsecret-1.so.0 with build-id: f1bc90f2861b0a48efde601947460df81f47597b
Found module libepoxy.so.0 with build-id: 5ea53a2b100e4b044eee19d5222881a724abf046
Found module libnotify.so.4 with build-id: 9f17eb75ce0087dc0e9e2049eeb47d37883006e3
Found module libpipewire-0.3.so.0 with build-id: 987374a37c5923d32476520be2ef43bf04ac2b1b
Found module libgobject-2.0.so.0 with build-id: 8a28a4aa6836963e7f50074984225cc07392b5b4
Found module libgio-2.0.so.0 with build-id: c3778bad9d8a3642cc51d453c07da246154dd4d7
Found module libglib-2.0.so.0 with build-id: 0ab0b740e34eeb0c84656ba53737f4c440dfbed4
Found module libcairo.so.2 with build-id: 60a39c3684e41370bd0a59ed1ecbdccf47e30069
Found module gnome-remote-desktop-daemon with build-id: 0ffd373a9f0ea5bf80806969c38619d526e8dd6e
Stack trace of thread 107525:
#0 0x00007f5092a69a7c __pthread_kill_implementation (libc.so.6 + 0x96a7c)
#1 0x00007f5092a15476 __GI_raise (libc.so.6 + 0x42476)
#2 0x00007f50929fb7f3 __GI_abort (libc.so.6 + 0x287f3)
#3 0x00007f509370ab57 n/a (libglib-2.0.so.0 + 0x1eb57)
#4 0x00007f50937646ff g_assertion_message_expr (libglib-2.0.so.0 + 0x786ff)
#5 0x000055a228d4cfef grd_rdp_buffer_pool_resize_buffers (gnome-remote-desktop-daemon + 0x31fef)
#6 0x000055a228d5e003 on_stream_param_changed (gnome-remote-desktop-daemon + 0x43003)
#7 0x00007f509345e5a7 impl_port_set_param (libpipewire-0.3.so.0 + 0x8e5a7)
#8 0x00007f5093452c81 pw_impl_port_set_param (libpipewire-0.3.so.0 + 0x82c81)
#9 0x00007f50780fbdab client_node_port_set_param (libpipewire-module-client-node.so + 0x14dab)
#10 0x00007f50781069cf client_node_demarshal_port_set_param (libpipewire-module-client-node.so + 0x1f9cf)
#11 0x00007f507815093c process_remote (libpipewire-module-protocol-native.so + 0x1693c)
#12 0x00007f5078150f40 on_remote_data (libpipewire-module-protocol-native.so + 0x16f40)
#13 0x00007f50782e0e6d loop_iterate (libspa-support.so + 0x8e6d)
#14 0x000055a228d3ca5a pipewire_loop_source_dispatch (gnome-remote-desktop-daemon + 0x21a5a)
#15 0x00007f5093741d1b g_main_context_dispatch (libglib-2.0.so.0 + 0x55d1b)
#16 0x00007f50937966f8 n/a (libglib-2.0.so.0 + 0xaa6f8)
#17 0x00007f509373f3c3 g_main_context_iteration (libglib-2.0.so.0 + 0x533c3)
#18 0x00007f50935f4c85 g_application_run (libgio-2.0.so.0 + 0xe0c85)
#19 0x000055a228d2c453 main (gnome-remote-desktop-daemon + 0x11453)
#20 0x00007f50929fcd90 __libc_start_call_main (libc.so.6 + 0x29d90)
#21 0x00007f50929fce40 __libc_start_main_impl (libc.so.6 + 0x29e40)
#22 0x000055a228d2c535 _start (gnome-remote-desktop-daemon + 0x11535)
Stack trace of thread 107541:
#0 0x00007f5092a76aa8 _int_malloc (libc.so.6 + 0xa3aa8)
#1 0x00007f5092a79679 __libc_calloc (libc.so.6 + 0xa6679)
#2 0x00007f5092dfeedb winpr_SubmitThreadpoolWork (libwinpr2.so.2 + 0x89edb)
#3 0x00007f5093058da9 rfx_encode_message (libfreerdp2.so.2 + 0x119da9)
#4 0x000055a228d55f45 refresh_gfx_surface_rfx_progressive (gnome-remote-desktop-daemon + 0x3af45)
#5 0x000055a228d63763 rdp_peer_refresh_gfx (gnome-remote-desktop-daemon + 0x48763)
#6 0x000055a228d646a7 grd_session_rdp_maybe_encode_new_frame (gnome-remote-desktop-daemon + 0x496a7)
#7 0x000055a228d5e5d2 do_render (gnome-remote-desktop-daemon + 0x435d2)
#8 0x00007f5093741c24 g_main_context_dispatch (libglib-2.0.so.0 + 0x55c24)
#9 0x00007f50937966f8 n/a (libglib-2.0.so.0 + 0xaa6f8)
#10 0x00007f509373f3c3 g_main_context_iteration (libglib-2.0.so.0 + 0x533c3)
#11 0x000055a228d60951 graphics_thread_func (gnome-remote-desktop-daemon + 0x45951)
#12 0x00007f5093770a41 n/a (libglib-2.0.so.0 + 0x84a41)
#13 0x00007f5092a67b43 start_thread (libc.so.6 + 0x94b43)
#14 0x00007f5092af9a00 __clone3 (libc.so.6 + 0x126a00)
Stack trace of thread 107550:
#0 0x00007f5092af1a3d syscall (libc.so.6 + 0x11ea3d)
#1 0x000055a228d59b11 process_frame_data (gnome-remote-desktop-daemon + 0x3eb11)
#2 0x00007f509345dd14 impl_node_process_input (libpipewire-0.3.so.0 + 0x8dd14)
#3 0x00007f5093439529 process_node (libpipewire-0.3.so.0 + 0x69529)
#4 0x00007f50934385cc node_on_fd_events (libpipewire-0.3.so.0 + 0x685cc)
#5 0x00007f50782e0e6d loop_iterate (libspa-support.so + 0x8e6d)
#6 0x00007f5093415ad3 do_loop (libpipewire-0.3.so.0 + 0x45ad3)
#7 0x00007f5092a67b43 start_thread (libc.so.6 + 0x94b43)
#8 0x00007f5092af9a00 __clone3 (libc.so.6 + 0x126a00)
Stack trace of thread 107528:
#0 0x00007f5092aebd7f __GI___poll (libc.so.6 + 0x118d7f)
#1 0x00007f5093796696 n/a (libglib-2.0.so.0 + 0xaa696)
#2 0x00007f5093741293 g_main_loop_run (libglib-2.0.so.0 + 0x55293)
#3 0x00007f5093628c1a n/a (libgio-2.0.so.0 + 0x114c1a)
#4 0x00007f5093770a41 n/a (libglib-2.0.so.0 + 0x84a41)
#5 0x00007f5092a67b43 start_thread (libc.so.6 + 0x94b43)
#6 0x00007f5092af9a00 __clone3 (libc.so.6 + 0x126a00)
Stack trace of thread 107529:
#0 0x00007f5092aebd7f __GI___poll (libc.so.6 + 0x118d7f)
#1 0x00007f5093796696 n/a (libglib-2.0.so.0 + 0xaa696)
#2 0x00007f509373f3c3 g_main_context_iteration (libglib-2.0.so.0 + 0x533c3)
#3 0x00007f5088a4e33d n/a (libdconfsettings.so + 0x733d)
#4 0x00007f5093770a41 n/a (libglib-2.0.so.0 + 0x84a41)
#5 0x00007f5092a67b43 start_thread (libc.so.6 + 0x94b43)
#6 0x00007f5092af9a00 __clone3 (libc.so.6 + 0x126a00)
Stack trace of thread 107530:
#0 0x00007f5092af1a3d syscall (libc.so.6 + 0x11ea3d)
#1 0x00007f509379070c g_cond_wait_until (libglib-2.0.so.0 + 0xa470c)
#2 0x00007f50937113e1 n/a (libglib-2.0.so.0 + 0x253e1)
#3 0x00007f5093711566 g_async_queue_timeout_pop (libglib-2.0.so.0 + 0x25566)
#4 0x00007f5093773749 n/a (libglib-2.0.so.0 + 0x87749)
#5 0x00007f5093770a41 n/a (libglib-2.0.so.0 + 0x84a41)
#6 0x00007f5092a67b43 start_thread (libc.so.6 + 0x94b43)
#7 0x00007f5092af9a00 __clone3 (libc.so.6 + 0x126a00)
Stack trace of thread 107532:
#0 0x00007f5092a64197 __futex_abstimed_wait_common64 (libc.so.6 + 0x91197)
#1 0x00007f5092a66ac1 __pthread_cond_wait_common (libc.so.6 + 0x93ac1)
#2 0x00007f507972685b n/a (virtio_gpu_dri.so + 0xbf85b)
#3 0x00007f507972648b n/a (virtio_gpu_dri.so + 0xbf48b)
#4 0x00007f5092a67b43 start_thread (libc.so.6 + 0x94b43)
#5 0x00007f5092af9a00 __clone3 (libc.so.6 + 0x126a00)
Stack trace of thread 107545:
#0 0x00007f5092ae79cc __GI___libc_read (libc.so.6 + 0x1149cc)
#1 0x00007f5092ed1de2 n/a (libfuse3.so.3 + 0x19de2)
#2 0x00007f5092ec6c33 fuse_session_loop (libfuse3.so.3 + 0xec33)
#3 0x000055a228d50f0b fuse_thread_func (gnome-remote-desktop-daemon + 0x35f0b)
#4 0x00007f5093770a41 n/a (libglib-2.0.so.0 + 0x84a41)
#5 0x00007f5092a67b43 start_thread (libc.so.6 + 0x94b43)
#6 0x00007f5092af9a00 __clone3 (libc.so.6 + 0x126a00)
Stack trace of thread 107554:
#0 0x00007f5092aebd7f __GI___poll (libc.so.6 + 0x118d7f)
#1 0x00007f5092db2330 pollset_poll (libwinpr2.so.2 + 0x3d330)
#2 0x00007f5092db5050 WaitForMultipleObjectsEx (libwinpr2.so.2 + 0x40050)
#3 0x00007f5092f215d3 disp_server_thread_func (libfreerdp-server2.so.2 + 0x2a5d3)
#4 0x00007f5092e01d8d thread_launcher (libwinpr2.so.2 + 0x8cd8d)
#5 0x00007f5092a67b43 start_thread (libc.so.6 + 0x94b43)
#6 0x00007f5092af9a00 __clone3 (libc.so.6 + 0x126a00)
Stack trace of thread 107526:
#0 0x00007f5092aebd7f __GI___poll (libc.so.6 + 0x118d7f)
#1 0x00007f5093796696 n/a (libglib-2.0.so.0 + 0xaa696)
#2 0x00007f509373f3c3 g_main_context_iteration (libglib-2.0.so.0 + 0x533c3)
#3 0x00007f509373f411 n/a (libglib-2.0.so.0 + 0x53411)
#4 0x00007f5093770a41 n/a (libglib-2.0.so.0 + 0x84a41)
#5 0x00007f5092a67b43 start_thread (libc.so.6 + 0x94b43)
#6 0x00007f5092af9a00 __clone3 (libc.so.6 + 0x126a00)
Stack trace of thread 107548:
#0 0x00007f5092aebd7f __GI___poll (libc.so.6 + 0x118d7f)
#1 0x00007f5092db2330 pollset_poll (libwinpr2.so.2 + 0x3d330)
#2 0x00007f5092db5050 WaitForMultipleObjectsEx (libwinpr2.so.2 + 0x40050)
#3 0x00007f5092f24ffc cliprdr_server_thread (libfreerdp-server2.so.2 + 0x2dffc)
#4 0x00007f5092e01d8d thread_launcher (libwinpr2.so.2 + 0x8cd8d)
#5 0x00007f5092a67b43 start_thread (libc.so.6 + 0x94b43)
#6 0x00007f5092af9a00 __clone3 (libc.so.6 + 0x126a00)
Stack trace of thread 107553:
#0 0x00007f5092aebd7f __GI___poll (libc.so.6 + 0x118d7f)
#1 0x00007f5092db2330 pollset_poll (libwinpr2.so.2 + 0x3d330)
#2 0x00007f5092db5050 WaitForMultipleObjectsEx (libwinpr2.so.2 + 0x40050)
#3 0x00007f5092f085fb rdpgfx_server_thread_func (libfreerdp-server2.so.2 + 0x115fb)
#4 0x00007f5092e01d8d thread_launcher (libwinpr2.so.2 + 0x8cd8d)
#5 0x00007f5092a67b43 start_thread (libc.so.6 + 0x94b43)
#6 0x00007f5092af9a00 __clone3 (libc.so.6 + 0x126a00)
Stack trace of thread 107540:
#0 0x00007f5092aebd7f __GI___poll (libc.so.6 + 0x118d7f)
#1 0x00007f5092db2330 pollset_poll (libwinpr2.so.2 + 0x3d330)
#2 0x00007f5092db5050 WaitForMultipleObjectsEx (libwinpr2.so.2 + 0x40050)
#3 0x000055a228d610e1 socket_thread_func (gnome-remote-desktop-daemon + 0x460e1)
#4 0x00007f5093770a41 n/a (libglib-2.0.so.0 + 0x84a41)
#5 0x00007f5092a67b43 start_thread (libc.so.6 + 0x94b43)
#6 0x00007f5092af9a00 __clone3 (libc.so.6 + 0x126a00)
Stack trace of thread 107537:
#0 0x00007f5092aebd7f __GI___poll (libc.so.6 + 0x118d7f)
#1 0x00007f5092db2330 pollset_poll (libwinpr2.so.2 + 0x3d330)
#2 0x00007f5092db5050 WaitForMultipleObjectsEx (libwinpr2.so.2 + 0x40050)
#3 0x00007f5092dff265 thread_pool_work_func (libwinpr2.so.2 + 0x8a265)
#4 0x00007f5092e01d8d thread_launcher (libwinpr2.so.2 + 0x8cd8d)
#5 0x00007f5092a67b43 start_thread (libc.so.6 + 0x94b43)
#6 0x00007f5092af9a00 __clone3 (libc.so.6 + 0x126a00)
Stack trace of thread 107538:
#0 0x00007f5092aebd7f __GI___poll (libc.so.6 + 0x118d7f)
#1 0x00007f5092db2330 pollset_poll (libwinpr2.so.2 + 0x3d330)
#2 0x00007f5092db5050 WaitForMultipleObjectsEx (libwinpr2.so.2 + 0x40050)
#3 0x00007f5092dff265 thread_pool_work_func (libwinpr2.so.2 + 0x8a265)
#4 0x00007f5092e01d8d thread_launcher (libwinpr2.so.2 + 0x8cd8d)
#5 0x00007f5092a67b43 start_thread (libc.so.6 + 0x94b43)
#6 0x00007f5092af9a00 __clone3 (libc.so.6 + 0x126a00)
Stack trace of thread 107536:
#0 0x00007f5092aebd7f __GI___poll (libc.so.6 + 0x118d7f)
#1 0x00007f5092db2330 pollset_poll (libwinpr2.so.2 + 0x3d330)
#2 0x00007f5092db5050 WaitForMultipleObjectsEx (libwinpr2.so.2 + 0x40050)
#3 0x00007f5092dff265 thread_pool_work_func (libwinpr2.so.2 + 0x8a265)
#4 0x00007f5092e01d8d thread_launcher (libwinpr2.so.2 + 0x8cd8d)
#5 0x00007f5092a67b43 start_thread (libc.so.6 + 0x94b43)
#6 0x00007f5092af9a00 __clone3 (libc.so.6 + 0x126a00)
Stack trace of thread 107539:
#0 0x00007f5092aebd7f __GI___poll (libc.so.6 + 0x118d7f)
#1 0x00007f5092db2330 pollset_poll (libwinpr2.so.2 + 0x3d330)
#2 0x00007f5092db5050 WaitForMultipleObjectsEx (libwinpr2.so.2 + 0x40050)
#3 0x00007f5092dff265 thread_pool_work_func (libwinpr2.so.2 + 0x8a265)
#4 0x00007f5092e01d8d thread_launcher (libwinpr2.so.2 + 0x8cd8d)
#5 0x00007f5092a67b43 start_thread (libc.so.6 + 0x94b43)
#6 0x00007f5092af9a00 __clone3 (libc.so.6 + 0x126a00)**
Setup
I compiled freerdp-2.8.0 with the following options enabled:
cmake -GNinja -DCHANNEL_URBDRC=ON -DWITH_DSP_FFMPEG=ON -DWITH_CUPS=ON -DWITH_PULSE=ON -DWITH_FAAC=ON -DWITH_FAAD2=ON -DWITH_GSM=ON -DWITH_FFMPEG=ON -DWITH_WAYLAND=ON -Bbuild -H.
Compiled pipewire 0.3.49 with the following:
meson build
meson configure
meson compile -C build
I compiled master (3c692112) with:
meson compile -C build
Server: Ubuntu 22.04 on Parallels VM (Resolution set to 1280x960)
Client: xfreerdp+XQuartz on macOS
cmdline
:
xfreerdp /v:IP /u:USER /p:PASS /dynamic-resolution /w:1920 /h:1080
This spawns a 1920x1080 window which is immediately resized to 1792x996 on my Retina screen, triggering the crash statistically.
Debug Logs
gnome-remote-de[90952]: [RDP] Fixing invalid colour depth set by client
gnome-remote-de[90952]: New RDP client: [OS major type, OS minor type]: [UNIX platform, Pseudo X Server]
gnome-remote-de[90952]: Activating client
gnome-remote-de[90952]: [FUSE Clipboard] FUSE thread started
gnome-remote-de[90952]: [FUSE Clipboard] Starting FUSE session
gnome-remote-de[90952]: [RDP.CLIPRDR] Relieving CLIPRDR filename restriction
gnome-remote-de[90952]: Caps lock state: unlocked
gnome-remote-de[90952]: Num lock state: unlocked
gnome-remote-de[90952]: [FUSE Clipboard] Requested file ".Trash" in directory "/" does not exist
gnome-remote-de[90952]: [FUSE Clipboard] Requested file ".Trash-1000" in directory "/" does not exist
gnome-remote-de[90952]: [RDP] Remote Desktop session will use virtual monitors
gnome-remote-de[90952]: PipeWire stream state changed from unconnected to connecting
gnome-remote-de[90952]: PipeWire stream state changed from connecting to paused
gnome-remote-de[90952]: [RDP] Stream parameters changed. New surface size: [1920, 1080]
gnome-shell[36489]: Added virtual monitor Meta-0
gnome-remote-de[90952]: PipeWire stream state changed from paused to streaming
gsd-color[36624]: unable to get EDID for xrandr-Virtual-1: unable to get EDID for output
gnome-remote-de[90952]: [RDP.CLIPRDR] Client capabilities: long format names, stream file clip, file clip no file paths, huge file support
gnome-remote-de[90952]: [RDP.CLIPRDR] Force using CF_UNICODETEXT over CF_TEXT as external format for text/plain;charset=utf-8 and UTF8_STRING
gnome-remote-de[90952]: [RDP.CLIPRDR] Client advertised unknown format: id: 0, name: (null)
gnome-remote-de[90952]: [RDP.RDPGFX] DVC channel id assigned to id 1
gnome-remote-de[90952]: [RDP.TELEMETRY] DVC channel id assigned to id 2
gnome-remote-de[90952]: [RDP.DISP] DVC channel id assigned to id 3
gnome-remote-de[90952]: [FUSE Clipboard] Lazily clearing all selections with clipDataId
gnome-remote-de[90952]: [RDP.CLIPRDR] Aborting all pending client requests
gnome-remote-de[90952]: Clipboard[SetSelection]: Updating servers clipboard
gnome-remote-de[90952]: Clipboard[SetSelection]: Update contains mime type text/plain;charset=utf-8
gnome-remote-de[90952]: Clipboard[SetSelection]: Update contains mime type UTF8_STRING
gnome-remote-de[90952]: Clipboard[SetSelection]: Update contains mime type image/png
gnome-remote-de[90952]: Clipboard[SetSelection]: Update contains mime type image/jpeg
gnome-remote-de[90952]: Clipboard[SetSelection]: Update contains mime type image/gif
gnome-remote-de[90952]: Clipboard[SetSelection]: Update contains mime type image/bmp
gnome-remote-de[90952]: Clipboard[SetSelection]: Update contains mime type text/html
gnome-remote-de[90952]: Clipboard[SetSelection]: Update contains mime type x-special/gnome-copied-files
gnome-remote-de[90952]: Clipboard[SetSelection]: Update contains mime type text/uri-list
gnome-remote-de[90952]: Clipboard[EnableClipboard]: Enabling clipboard
gnome-remote-de[90952]: [RDP.DRDYNVC] DVC channel id 1 creation status: 0
gnome-remote-de[90952]: [RDP.DRDYNVC] DVC channel id 2 creation status: -1073741823
gnome-remote-de[90952]: [RDP.DRDYNVC] DVC channel id 3 creation status: 0
gnome-remote-de[90952]: [RDP.RDPGFX] Received a CapsAdvertise PDU
gnome-remote-de[90952]: [RDP.RDPGFX] Client caps set RDPGFX_CAPVERSION_8 flags: 0x00000001
gnome-remote-de[90952]: [RDP.RDPGFX] Client caps set RDPGFX_CAPVERSION_81 flags: 0x00000001
gnome-remote-de[90952]: [RDP.RDPGFX] Client caps set RDPGFX_CAPVERSION_10 flags: 0x00000020
gnome-remote-de[90952]: [RDP.RDPGFX] Client caps set RDPGFX_CAPVERSION_101 flags: 0x00000000 (invalid flags field)
gnome-remote-de[90952]: [RDP.RDPGFX] Client caps set RDPGFX_CAPVERSION_102 flags: 0x00000020
gnome-remote-de[90952]: [RDP.RDPGFX] Client caps set RDPGFX_CAPVERSION_103 flags: 0x00000020
gnome-remote-de[90952]: [RDP.RDPGFX] Client caps set RDPGFX_CAPVERSION_104 flags: 0x00000020
gnome-remote-de[90952]: [RDP.RDPGFX] Client caps set RDPGFX_CAPVERSION_105 flags: 0x00000020
gnome-remote-de[90952]: [RDP.RDPGFX] Client caps set RDPGFX_CAPVERSION_106 flags: 0x00000020
gnome-remote-de[90952]: [RDP.RDPGFX] Received unknown capability set with version 0x000A0601
gnome-remote-de[90952]: [RDP.RDPGFX] Client caps set RDPGFX_CAPVERSION_107 flags: 0x000000A0
gnome-remote-de[90952]: Clipboard[EnableClipboard]: Clipboard enabled
gnome-remote-de[90952]: Clipboard[SetSelection]: Update complete
gnome-remote-de[90952]: [RDP.TELEMETRY] Failed to open channel (CreationStatus -1073741823). Terminating protocol
gnome-remote-de[90952]: [RDP.DISP] Channel opened successfully. Ready for receiving new monitor layouts
gnome-remote-de[90952]: [RDP.RDPGFX] CapsAdvertise: Accepting capability set with version RDPGFX_CAPVERSION_107, Client cap flags: H264 (AVC444): false, H264 (AVC420): false
gnome-remote-de[90952]: Clipboard[SelectionTransfer]: Requesting data from clients clipboard (mime type: text/plain;charset=utf-8, serial: 1)
gnome-remote-de[90952]: [RDP.CLIPRDR] Sent FormatDataRequest for mime type text/plain;charset=utf-8
gnome-remote-de[90952]: [RDP.TELEMETRY] Tearing down channel
gnome-remote-de[90952]: [RDP] Received first frame
gnome-remote-de[90952]: [RDP.RDPGFX] Resetting graphics
gnome-remote-de[90952]: [RDP.RDPGFX] Creating surface with id 0
gnome-remote-de[90952]: Clipboard[SelectionTransfer]: Request for serial 1 was successful
gnome-remote-de[90952]: [RDP] Remote Desktop session metrics: _ready: 2ms, _started: 12ms, firstFrameReceived: 187ms, firstFrameSent: 21ms (skipped_frames: 0), wholeStartup: 211ms
gnome-remote-de[90952]: [RDP.DISP] Received new monitor layout. PDU contains 1 monitors
gnome-remote-de[90952]: [RDP] Stream parameters changed. New surface size: [1792, 1000]
gnome-remote-desktop-daemon[90952]: **
gnome-remote-desktop-daemon[90952]: ERROR:../src/grd-rdp-buffer-pool.c:106:grd_rdp_buffer_pool_resize_buffers: assertion failed: (buffer_pool->buffers_taken == 0)
gnome-remote-desktop-daemon[90952]: [INFO][com.freerdp.core.connection] - Server Security: NLA:1 TLS:0 RDP:0
gnome-remote-desktop-daemon[90952]: [14:25:20:083] [90952:100699] [INFO][com.freerdp.core.connection] - Negotiated Security: NLA:1 TLS:0 RDP:0
gnome-remote-desktop-daemon[90952]: [14:25:20:310] [90952:100699] [INFO][com.freerdp.core.connection] - Accepted client: <REDACTED>
gnome-remote-desktop-daemon[90952]: [14:25:20:310] [90952:100699] [INFO][com.freerdp.core.connection] - Accepted channels:
gnome-remote-desktop-daemon[90952]: [14:25:20:310] [90952:100699] [INFO][com.freerdp.core.connection] - rdpdr
gnome-remote-desktop-daemon[90952]: [14:25:20:310] [90952:100699] [INFO][com.freerdp.core.connection] - rdpsnd
gnome-remote-desktop-daemon[90952]: [14:25:20:310] [90952:100699] [INFO][com.freerdp.core.connection] - cliprdr
gnome-remote-desktop-daemon[90952]: [14:25:20:310] [90952:100699] [INFO][com.freerdp.core.connection] - drdynvc
gnome-remote-desktop-daemon[90952]: [14:25:20:310] [90952:100699] [INFO][com.freerdp.core.gcc] - Active rdp encryption level: NONE
gnome-remote-desktop-daemon[90952]: [14:25:20:310] [90952:100699] [INFO][com.freerdp.core.gcc] - Selected rdp encryption method: NONE
gnome-remote-desktop-daemon[90952]: Bail out! ERROR:../src/grd-rdp-buffer-pool.c:106:grd_rdp_buffer_pool_resize_buffers: assertion failed: (buffer_pool->buffers_taken == 0)
It seems like for some reason we end up in a situation where the we try to resize the rdp buffers without freeing all of them.
This is strange because on_stream_param_changed
calls release_all_buffers
before calling grd_rdp_buffer_pool_resize_buffers
.
Any insight as to how that might happen?