Closed linuxmobile closed 5 months ago
I am also seeing this error, but only if I have specific applications open. I believe it's related to active recording sessions. For example, when I have Zoom open, this happens (this is, however, an assumption/guess based on anecdotal observation). Running with RUST_BACKTRACE=full
gives the following output:
thread 'main' panicked at /build/cargo-vendor-dir/glib-0.18.1/src/object.rs:1452:40:
Can't find property 'channelmodel' for type 'PwVolumeBox'
stack backtrace:
0: 0x555dace3a1f7 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h4886110ae7835fd2
1: 0x555dace691c0 - core::fmt::write::h6fab83f0f5bc0c8f
2: 0x555dace51c55 - std::io::Write::write_fmt::h64824cb874054607
3: 0x555dace39fc4 - std::sys_common::backtrace::print::hb8fea9d041077138
4: 0x555dace3ab37 - std::panicking::default_hook::{{closure}}::hc60f0f690c67943c
5: 0x555dace3a897 - std::panicking::default_hook::h56281bcc5d6e2f17
6: 0x555dace3b0a8 - std::panicking::rust_panic_with_hook::hd61e30fe5971d187
7: 0x555dace3af8a - std::panicking::begin_panic_handler::{{closure}}::h95d2684e28f89fd2
8: 0x555dace3a426 - std::sys_common::backtrace::__rust_end_short_backtrace::h48780d898316fff8
9: 0x555dace3acd4 - rust_begin_unwind
10: 0x555dacdacb85 - core::panicking::panic_fmt::hdb89b5c14a056cec
11: 0x555dace26487 - glib::object::Object::new_internal::h8a39c660d1bb679e
12: 0x555dacdf9c5d - pwvucontrol::volumebox::PwVolumeBox::new::hb12d802db5e23347
13: 0x555dacdcfeae - gtk4::auto::list_box::ListBox::bind_model::create_widget_func_func::h808c5156360ed768
14: 0x7f40213bab0a - gtk_list_box_bound_model_changed
15: 0x7f4022237668 - g_closure_invoke
16: 0x7f402224bbcc - signal_emit_unlocked_R.isra.0
17: 0x7f402224d561 - signal_emit_valist_unlocked
18: 0x7f40222532c2 - g_signal_emit_valist
19: 0x7f402225336f - g_signal_emit
20: 0x7f402136f245 - gtk_filter_list_model_items_changed_cb
21: 0x7f4022237668 - g_closure_invoke
22: 0x7f402224bbcc - signal_emit_unlocked_R.isra.0
23: 0x7f402224d561 - signal_emit_valist_unlocked
24: 0x7f40222532c2 - g_signal_emit_valist
25: 0x7f402225336f - g_signal_emit
26: 0x555dacdfec59 - wireplumber::auto::object_manager::ObjectManager::connect_object_added::object_added_trampoline::h8d995ffc4d8dd775
27: 0x7f402223a961 - g_cclosure_marshal_VOID__OBJECTv
28: 0x7f4022237861 - _g_closure_invoke_va
29: 0x7f402224d69c - signal_emit_valist_unlocked
30: 0x7f40222532c2 - g_signal_emit_valist
31: 0x7f402225336f - g_signal_emit
32: 0x7f40224a38af - wp_object_manager_add_object
33: 0x7f40224a39fb - on_proxy_ready
34: 0x7f4022237668 - g_closure_invoke
35: 0x7f40224bdc48 - wp_transition_return
36: 0x7f40224be5ca - wp_transition_advance
37: 0x7f40224a02ac - wp_object_advance_transitions
38: 0x7f402212ee39 - g_main_dispatch
39: 0x7f4022131fd7 - g_main_context_iterate_unlocked.isra.0
40: 0x7f40221325cc - g_main_context_iteration
41: 0x7f402236dd9d - g_application_run
42: 0x555dacdedb2d - gio::application::ApplicationExtManual::run::h4627c9042450ce83
43: 0x555dacdbc7ed - pwvucontrol::main::hc842806150487d45
44: 0x555dace05b53 - std::sys_common::backtrace::__rust_begin_short_backtrace::h50b155cf948b1bee
45: 0x555dacde7579 - std::rt::lang_start::{{closure}}::h28e5037888185310
46: 0x555dace3abd4 - std::panicking::try::ha86251cf5daa9bea
47: 0x555dace301db - std::rt::lang_start_internal::ha6a51778162f8d22
48: 0x555dacdbf6e5 - main
49: 0x7f4020d8310e - __libc_start_call_main
50: 0x7f4020d831c9 - __libc_start_main@@GLIBC_2.34
51: 0x555dacdad3f5 - _start
52: 0x0 - <unknown>
I'm currently on NixOS, and this has happened on two separate hosts (different hardware) in the exact same way.
$ pipewire --version
pipewire
Compiled with libpipewire 1.0.6
Linked with libpipewire 1.0.6
Is this using latest build from main branch?
See https://github.com/saivert/pwvucontrol/commit/22aad420909496a6535fb4de6254ddd634b92ac7
Is this using latest build from main branch?
See 22aad42
idk. I'm not the mantainer. Here is the pkg: https://github.com/NixOS/nixpkgs/blob/nixos-23.11/pkgs/applications/audio/pwvucontrol/default.nix#L65
I'm currently on v0.3.1
. I will try with the latest version and/or building from source on main
, and let you know what happens.
I tried again with both v0.4
and with the current main
(c7c3b10796d370a25821f067f2833189ab428ee3). I still get a crash, but with a panic and a new backtrace. This still only seems to happen when an application has an active recording session (tested w/ a zoom meeting active). The backtraces for main
and for v0.4
appear identical.
$ RUST_BACKTRACE=full pwvucontrol
thread 'main' panicked at src/ui/route_dropdown.rs:84:60:
device
stack backtrace:
0: 0x55cb25438737 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h4886110ae7835fd2
1: 0x55cb25468400 - core::fmt::write::h6fab83f0f5bc0c8f
2: 0x55cb25450f35 - std::io::Write::write_fmt::h64824cb874054607
3: 0x55cb25438504 - std::sys_common::backtrace::print::hb8fea9d041077138
4: 0x55cb25439077 - std::panicking::default_hook::{{closure}}::hc60f0f690c67943c
5: 0x55cb25438dd7 - std::panicking::default_hook::h56281bcc5d6e2f17
6: 0x55cb254395e8 - std::panicking::rust_panic_with_hook::hd61e30fe5971d187
7: 0x55cb254394ca - std::panicking::begin_panic_handler::{{closure}}::h95d2684e28f89fd2
8: 0x55cb25438966 - std::sys_common::backtrace::__rust_end_short_backtrace::h48780d898316fff8
9: 0x55cb25439214 - rust_begin_unwind
10: 0x55cb2539fda5 - core::panicking::panic_fmt::hdb89b5c14a056cec
11: 0x55cb253a0393 - core::option::expect_failed::h27bb97517ce6ecdf
12: 0x55cb253b0005 - <pwvucontrol::ui::route_dropdown::imp::PwRouteDropDown as glib::subclass::object::ObjectImpl>::set_property::h9a06b112c8e94c5c
13: 0x55cb254023bd - glib::subclass::object::set_property::hcf597ad27ab54cb1
14: 0x7facb15eae68 - object_set_property
15: 0x7facb15eda36 - g_object_setv
16: 0x7facb15eebab - g_object_set_property
17: 0x55cb25406e59 - pwvucontrol::ui::route_dropdown::imp::<impl pwvucontrol::ui::route_dropdown::PwRouteDropDown>::set_nodeobject::h01362fdaf455176b
18: 0x55cb253abb37 - <pwvucontrol::ui::sinkbox::imp::PwSinkBox as glib::subclass::object::ObjectImpl>::constructed::h6a8a0cfae2186c58
19: 0x7facb15eb796 - g_object_new_internal.part.0
20: 0x7facb15ecaa6 - g_object_new_with_properties
21: 0x55cb25420fd9 - glib::object::Object::new_internal::h973fa9b24e5c653a
22: 0x55cb253fee31 - pwvucontrol::ui::sinkbox::PwSinkBox::new::ha6d045a6fd335c4a
23: 0x55cb253ed99e - gtk4::auto::list_box::ListBox::bind_model::create_widget_func_func::h9da6bc26a96ca2ce
24: 0x7facb1bbab0a - gtk_list_box_bound_model_changed
25: 0x7facb15e4668 - g_closure_invoke
26: 0x7facb15f8bcc - signal_emit_unlocked_R.isra.0
27: 0x7facb15fa561 - signal_emit_valist_unlocked
28: 0x7facb16002c2 - g_signal_emit_valist
29: 0x7facb160036f - g_signal_emit
30: 0x55cb253a8123 - glib::closure::Closure::new_unsafe::marshal::ha4d00545cb91c310
31: 0x7facb15e4668 - g_closure_invoke
32: 0x7facb15f8f39 - signal_emit_unlocked_R.isra.0
33: 0x7facb15fa561 - signal_emit_valist_unlocked
34: 0x7facb16002c2 - g_signal_emit_valist
35: 0x7facb160036f - g_signal_emit
36: 0x7facb1b6f245 - gtk_filter_list_model_items_changed_cb
37: 0x7facb15e4668 - g_closure_invoke
38: 0x7facb15f8bcc - signal_emit_unlocked_R.isra.0
39: 0x7facb15fa561 - signal_emit_valist_unlocked
40: 0x7facb16002c2 - g_signal_emit_valist
41: 0x7facb160036f - g_signal_emit
42: 0x7facb1701d13 - g_list_store_append
43: 0x55cb253d60a3 - wireplumber::auto::object_manager::ObjectManager::connect_object_added::object_added_trampoline::h83417ea273f836f3
44: 0x7facb15e7961 - g_cclosure_marshal_VOID__OBJECTv
45: 0x7facb15e4861 - _g_closure_invoke_va
46: 0x7facb15fa69c - signal_emit_valist_unlocked
47: 0x7facb16002c2 - g_signal_emit_valist
48: 0x7facb160036f - g_signal_emit
49: 0x7facb14388af - wp_object_manager_add_object
50: 0x7facb14389fb - on_proxy_ready
51: 0x7facb15e4668 - g_closure_invoke
52: 0x7facb1452c48 - wp_transition_return
53: 0x7facb14535ca - wp_transition_advance
54: 0x7facb14352ac - wp_object_advance_transitions
55: 0x7facb14dde39 - g_main_dispatch
56: 0x7facb14e0fd7 - g_main_context_iterate_unlocked.isra.0
57: 0x7facb14e15cc - g_main_context_iteration
58: 0x7facb171ad9d - g_application_run
59: 0x55cb253c5948 - pwvucontrol::application::PwvucontrolApplication::run::h943496ae5ba95767
60: 0x55cb253d3bc4 - pwvucontrol::main::h3f145f1773515503
61: 0x55cb253f6d23 - std::sys_common::backtrace::__rust_begin_short_backtrace::h1bcb46511d4aefc0
62: 0x55cb253ef189 - std::rt::lang_start::{{closure}}::hf29885ebafef071b
63: 0x55cb25439114 - std::panicking::try::ha86251cf5daa9bea
64: 0x55cb2542e44b - std::rt::lang_start_internal::ha6a51778162f8d22
65: 0x55cb253d4c85 - main
66: 0x7facb103d10e - __libc_start_call_main
67: 0x7facb103d1c9 - __libc_start_main@@GLIBC_2.34
68: 0x55cb253a0655 - _start
69: 0x0 - <unknown>
For the other NixOS user in this thread, I used the following overlay to install the newest version (replace 0.4
with a commit hash to build from a specific commit):
[REMOVED FOR FUTURE GOOGLERS. I MESSED THIS UP. LOOK BELOW.
Taking a closer look at the code, I think I may have fudged that up a bit, given that https://github.com/saivert/pwvucontrol/commit/c7c3b10796d370a25821f067f2833189ab428ee3 seems to have removed the expect("device")
which appears to have caused my latest backtrace.
I will revisit in the morning most likely.
Yes this is most likely the expect call which has now been turned into the following code:
let Some(deviceobject) = nodeobject.get_device() else {
pwvucontrol_info!("Missing device");
return;
};
EDIT: Just made a new 0.4.1 release so then a flatpak will be built by the CI and you can download and use that at least.
Just fixed my original NixOS overlay to actually build from the latest version correctly, and it seems to be working! I'll look into putting a PR in over in Nixpkgs to get it updated there as well. For future googlers, this is the final overlay I used which seems to have fixed the problem for me in the meantime:
nixpkgs.overlays = [
(self: super: {
pwvucontrol = super.pwvucontrol.overrideAttrs (old: rec {
version = "0.4.1";
src = super.fetchFromGitHub {
owner = "saivert";
repo = "pwvucontrol";
rev = "0.4.1";
sha256 = "sha256-soxB8pbbyYe1EXtopq1OjoklEDJrwK6od4nFLDwb8LY=";
};
cargoDeps = super.rustPlatform.importCargoLock {
lockFile = "${src}/Cargo.lock";
outputHashes = {
"wireplumber-0.1.0" = "sha256-+LZ8xKok2AOegW8WvfrfZGXuQB4xHrLNshcTOHab+xQ=";
};
};
});
})
];
I just installed, try to lunch and get: