-
-
Notifications
You must be signed in to change notification settings - Fork 774
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Segmentation fault after resume #3223
Comments
Can you build a debug version of Waybar and try to reproduce it again, because currently the gdb backtrace doesn't show much. Also include the trace logs by running with |
Will do. |
I'm not sure whether these are related, but this is what I just got. I've activated the upower module for an unrelated test yesterday. Program terminated with signal SIGSEGV, Segmentation fault.
#0 Glib::DispatchNotifier::send_notification (this=0x0, dispatcher=<optimized out>) at ../glibmm/glib/glibmm/dispatcher.cc:379
Downloading source file /usr/src/debug/glibmm/build/../glibmm/glib/glibmm/dispatcher.cc
379 n_written = write(fd_sender_, &data, sizeof(data));
[Current thread is 1 (Thread 0x70b005565640 (LWP 2452807))]
(gdb) bt full
#0 Glib::DispatchNotifier::send_notification (this=0x0, dispatcher=<optimized out>) at ../glibmm/glib/glibmm/dispatcher.cc:379
data = {dispatcher = 0x5e4390997288, notifier = 0x0}
n_written = <optimized out>
#1 0x00005e43904dc4cc in waybar::modules::upower::UPower::deviceNotify_cb (device=0x5e4390816de0 [UpDevice], pspec=0x5e43909cf8a0 [GParamUInt64], data=0x5e4390997280) at ../src/modules/upower/upower.cpp:147
up = 0x5e4390997280
#2 0x000070b009280730 in g_closure_invoke (closure=0x5e4390981b10, return_value=0x0, n_param_values=2, param_values=0x7fffd3625040, invocation_hint=0x7fffd3624f90) at ../glib/gobject/gclosure.c:834
marshal = 0x70b0092862b0 <g_cclosure_marshal_VOID__PARAM>
marshal_data = 0x0
in_marshal = 0
real_closure = 0x5e4390981af0
__func__ = "g_closure_invoke"
#3 0x000070b0092af896 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7fffd3625130, detail=detail@entry=2115, instance=instance@entry=0x5e4390816de0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffd3625040)
at ../glib/gobject/gsignal.c:3888
tmp = <optimized out>
handler = 0x5e43909842a0
accumulator = <optimized out>
emission = {next = 0x7fffd36254e0, instance = 0x5e4390816de0, ihint = {signal_id = 1, detail = 2115, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x4}
class_closure = <optimized out>
hlist = <optimized out>
handler_list = 0x5e43909842a0
return_accu = <optimized out>
accu = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
signal_id = <optimized out>
max_sequential_handler_number = <optimized out>
return_value_altered = <optimized out>
n_params = <optimized out>
EMIT_RESTART = <optimized out>
__func__ = {<optimized out> <repeats 23 times>}
#4 0x000070b0092a07a2 in signal_emit_valist_unlocked (instance=instance@entry=0x5e4390816de0, signal_id=signal_id@entry=1, detail=detail@entry=2115, var_args=var_args@entry=0x7fffd3625290)
at ../glib/gobject/gsignal.c:3520
instance_and_params = 0x7fffd3625040
param_values = 0x7fffd3625058
node = <optimized out>
i = <optimized out>
node_copy = {signal_id = 1, itype = 0x50, name = 0x70b0092b16b7 "notify", destroyed = 0, flags = 121, n_params = 1, single_va_closure_is_valid = 1, single_va_closure_is_after = 0, param_types = 0x5e439079ff40, return_type = 0x4, class_closure_bsa = 0x5e439079ff60, accumulator = 0x0, c_marshaller = 0x70b0092862b0 <g_cclosure_marshal_VOID__PARAM>, va_marshaller = 0x70b0092877c0 <g_cclosure_marshal_VOID__PARAMv>, emission_hooks = 0x0, single_va_closure = 0x5e439079ff10}
__func__ = "signal_emit_valist_unlocked"
#5 0x000070b0092a09d7 in g_signal_emit_valist (instance=0x5e4390816de0, signal_id=1, detail=2115, var_args=var_args@entry=0x7fffd3625290) at ../glib/gobject/gsignal.c:3263
#6 0x000070b0092a0a94 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../glib/gobject/gsignal.c:3583
var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffd3625370, reg_save_area = 0x7fffd36252b0}}
#7 0x000070b00928c4b6 in g_object_dispatch_properties_changed (object=0x5e4390816de0 [UpDevice], n_pspecs=<optimized out>, pspecs=<optimized out>) at ../glib/gobject/gobject.c:1816
i = <optimized out>
#8 0x000070b009292a5a in g_object_notify_by_spec_internal (pspec=<optimized out>, object=0x5e4390816de0 [UpDevice]) at ../glib/gobject/gobject.c:1921
object_flags = <optimized out>
needs_notify = 1
in_init = <optimized out>
object_flags = <optimized out>
needs_notify = <optimized out>
in_init = <optimized out>
_g_boolean_var_58 = <optimized out>
#9 g_object_notify (property_name=0x5e439082643a "update-time", object=0x5e4390816de0 [UpDevice]) at ../glib/gobject/gobject.c:1971
pspec = <optimized out>
pspec = <optimized out>
__func__ = {<optimized out> <repeats 16 times>}
_g_boolean_var_59 = <optimized out>
_g_boolean_var_60 = <optimized out>
#10 g_object_notify (object=0x5e4390816de0 [UpDevice], property_name=0x5e439082643a "update-time") at ../glib/gobject/gobject.c:1948
pspec = <optimized out>
__func__ = "g_object_notify"
#11 0x000070b009280730 in g_closure_invoke (closure=0x5e4390d4cb40, return_value=0x0, n_param_values=2, param_values=0x7fffd36255a0, invocation_hint=0x7fffd36254f0) at ../glib/gobject/gclosure.c:834
marshal = 0x70b0092862b0 <g_cclosure_marshal_VOID__PARAM>
--Type <RET> for more, q to quit, c to continue without paging--
marshal_data = 0x0
in_marshal = 0
real_closure = 0x5e4390d4cb20
__func__ = "g_closure_invoke"
#12 0x000070b0092af896 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7fffd3625690, detail=detail@entry=2115, instance=instance@entry=0x5e43907f5e20, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffd36255a0)
at ../glib/gobject/gsignal.c:3888
tmp = <optimized out>
handler = 0x5e439081a610
accumulator = <optimized out>
emission = {next = 0x7fffd3625aa0, instance = 0x5e43907f5e20, ihint = {signal_id = 1, detail = 2115, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x4}
class_closure = <optimized out>
hlist = <optimized out>
handler_list = 0x5e439081a610
return_accu = <optimized out>
accu = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
signal_id = <optimized out>
max_sequential_handler_number = <optimized out>
return_value_altered = <optimized out>
n_params = <optimized out>
EMIT_RESTART = <optimized out>
__func__ = {<optimized out> <repeats 23 times>}
#13 0x000070b0092a07a2 in signal_emit_valist_unlocked (instance=instance@entry=0x5e43907f5e20, signal_id=signal_id@entry=1, detail=detail@entry=2115, var_args=var_args@entry=0x7fffd36257f0)
at ../glib/gobject/gsignal.c:3520
instance_and_params = 0x7fffd36255a0
param_values = 0x7fffd36255b8
node = <optimized out>
i = <optimized out>
node_copy = {signal_id = 1, itype = 0x50, name = 0x70b0092b16b7 "notify", destroyed = 0, flags = 121, n_params = 1, single_va_closure_is_valid = 1, single_va_closure_is_after = 0, param_types = 0x5e439079ff40, return_type = 0x4, class_closure_bsa = 0x5e439079ff60, accumulator = 0x0, c_marshaller = 0x70b0092862b0 <g_cclosure_marshal_VOID__PARAM>, va_marshaller = 0x70b0092877c0 <g_cclosure_marshal_VOID__PARAMv>, emission_hooks = 0x0, single_va_closure = 0x5e439079ff10}
__func__ = "signal_emit_valist_unlocked"
#14 0x000070b0092a09d7 in g_signal_emit_valist (instance=0x5e43907f5e20, signal_id=1, detail=2115, var_args=var_args@entry=0x7fffd36257f0) at ../glib/gobject/gsignal.c:3263
#15 0x000070b0092a0a94 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../glib/gobject/gsignal.c:3583
var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffd36258d0, reg_save_area = 0x7fffd3625810}}
#16 0x000070b00928c4b6 in g_object_dispatch_properties_changed (object=0x5e43907f5e20 [UpExportedDeviceProxy], n_pspecs=<optimized out>, pspecs=<optimized out>) at ../glib/gobject/gobject.c:1816
i = <optimized out>
#17 0x000070b009292a5a in g_object_notify_by_spec_internal (pspec=<optimized out>, object=0x5e43907f5e20 [UpExportedDeviceProxy]) at ../glib/gobject/gobject.c:1921
object_flags = <optimized out>
needs_notify = 1
in_init = <optimized out>
object_flags = <optimized out>
needs_notify = <optimized out>
in_init = <optimized out>
_g_boolean_var_58 = <optimized out>
#18 g_object_notify (property_name=0x70b007f54067 "update-time", object=0x5e43907f5e20 [UpExportedDeviceProxy]) at ../glib/gobject/gobject.c:1971
pspec = <optimized out>
pspec = <optimized out>
__func__ = {<optimized out> <repeats 16 times>}
_g_boolean_var_59 = <optimized out>
_g_boolean_var_60 = <optimized out>
#19 g_object_notify (object=object@entry=0x5e43907f5e20 [UpExportedDeviceProxy], property_name=0x70b007f54067 "update-time") at ../glib/gobject/gobject.c:1948
pspec = <optimized out>
__func__ = "g_object_notify"
#20 0x000070b007f49bad in up_exported_device_proxy_g_properties_changed (_proxy=0x5e43907f5e20 [UpExportedDeviceProxy], changed_properties=<optimized out>, invalidated_properties=0x5e4390c0af20)
at dbus/up-device-generated.c:3125
proxy = 0x5e43907f5e20 [UpExportedDeviceProxy]
n = <optimized out>
key = 0x70afe806e730 "UpdateTime"
iter = 0x5e439081c480
info = 0x70b007f5cb20 <_up_exported_device_property_info_update_time>
#21 0x000070b009280730 in g_closure_invoke (closure=0x5e43907b2d40, return_value=0x0, n_param_values=3, param_values=0x7fffd3625b60, invocation_hint=0x7fffd3625ab0) at ../glib/gobject/gclosure.c:834
marshal = 0x70b009285810 <g_type_class_meta_marshal>
--Type <RET> for more, q to quit, c to continue without paging--
marshal_data = 0x88
in_marshal = 0
real_closure = 0x5e43907b2d20
__func__ = "g_closure_invoke"
#22 0x000070b0092aff4a in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7fffd3625c60, detail=detail@entry=0, instance=instance@entry=0x5e43907f5e20, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffd3625b60)
at ../glib/gobject/gsignal.c:3928
accumulator = <optimized out>
emission = {next = 0x0, instance = 0x5e43907f5e20, ihint = {signal_id = 40, detail = 0, run_type = (G_SIGNAL_RUN_LAST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x5e43909cfb10 [UpExportedDeviceProxy/GDBusProxy]}
class_closure = <optimized out>
hlist = <optimized out>
handler_list = 0x0
return_accu = <optimized out>
accu = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
signal_id = <optimized out>
max_sequential_handler_number = <optimized out>
return_value_altered = <optimized out>
n_params = <optimized out>
EMIT_RESTART = <optimized out>
__func__ = {<optimized out> <repeats 23 times>}
#23 0x000070b0092a07a2 in signal_emit_valist_unlocked (instance=instance@entry=0x5e43907f5e20, signal_id=signal_id@entry=40, detail=detail@entry=0, var_args=var_args@entry=0x7fffd3625dc0)
at ../glib/gobject/gsignal.c:3520
instance_and_params = 0x7fffd3625b60
param_values = 0x7fffd3625b78
node = <optimized out>
i = <optimized out>
node_copy = {signal_id = 40, itype = 0x5e4390747cf0 [GDBusProxy], name = 0x70b008b65f6f "g-properties-changed", destroyed = 0, flags = 130, n_params = 2, single_va_closure_is_valid = 1, single_va_closure_is_after = 0, param_types = 0x5e43907b2ba0, return_type = 0x4, class_closure_bsa = 0x5e43907b2de0, accumulator = 0x0, c_marshaller = 0x70b008a76d10 <_g_cclosure_marshal_VOID__VARIANT_BOXED>, va_marshaller = 0x70b008a78500 <_g_cclosure_marshal_VOID__VARIANT_BOXEDv>, emission_hooks = 0x0, single_va_closure = 0x0}
__func__ = "signal_emit_valist_unlocked"
#24 0x000070b0092a09d7 in g_signal_emit_valist (instance=0x5e43907f5e20, signal_id=40, detail=0, var_args=var_args@entry=0x7fffd3625dc0) at ../glib/gobject/gsignal.c:3263
#25 0x000070b0092a0a94 in g_signal_emit (instance=instance@entry=0x5e43907f5e20, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3583
var_args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fffd3625ea0, reg_save_area = 0x7fffd3625de0}}
#26 0x000070b008b1830e in on_properties_changed
(connection=<optimized out>, sender_name=<optimized out>, object_path=<optimized out>, interface_name=<optimized out>, signal_name=<optimized out>, parameters=<optimized out>, user_data=0x5e43907dfb50)
at ../glib/gio/gdbusproxy.c:1086
proxy_weak = 0x5e43907dfb50
emit_g_signal = <optimized out>
proxy = 0x5e43907f5e20 [UpExportedDeviceProxy]
interface_name_for_signal = 0x70afe806e710 "org.freedesktop.UPower.Device"
changed_properties = 0x5e439099bd90
invalidated_properties = 0x5e4390c0af20
iter = {x = {103644281814416, 4, 4, 0, 140736739827456, 3164620176448552960, 140736739827504, 3579507750, 103644280207984, 123900814065312, 123900814065312, 123901365255758, 103644287343232, 123901363543018, 103644286539480, 103644280207968}}
key = 0x5e4390d16630 "V\275\323tF^"
value = 0x5e4390a00dd0
n = <optimized out>
#27 0x000070b008b01f08 in emit_signal_instance_in_idle_cb (data=0x70afe806f280) at ../glib/gio/gdbusconnection.c:3798
signal_instance = 0x70afe806f280
parameters = 0x70afe804bba0
has_subscription = 1
#28 0x000070b008d0d199 in g_main_dispatch (context=0x5e43907b3e20) at ../glib/glib/gmain.c:3344
dispatch = 0x70b008d0a630 <g_idle_dispatch>
prev_source = 0x0
begin_time_nsec = 295865658214393
was_in_call = 0
user_data = 0x70afe806f280
callback = 0x70b008b01e80 <emit_signal_instance_in_idle_cb>
cb_funcs = 0x70b008dfe380 <g_source_callback_funcs>
cb_data = 0x70afe8057450
need_destroy = <optimized out>
source = 0x70afe8067840
current = 0x5e43907b4060
--Type <RET> for more, q to quit, c to continue without paging--
i = 1
__func__ = "g_main_dispatch"
#29 0x000070b008d6c3bf in g_main_context_dispatch_unlocked (context=0x5e43907b3e20) at ../glib/glib/gmain.c:4152
#30 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x5e43907b3e20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4217
max_priority = 0
timeout = 0
some_ready = 1
nfds = 4
allocated_nfds = 4
fds = 0x5e4390862860
begin_time_nsec = 295865657289425
#31 0x000070b008d0c712 in g_main_context_iteration (context=context@entry=0x5e43907b3e20, may_block=may_block@entry=1) at ../glib/glib/gmain.c:4282
retval = <optimized out>
#32 0x000070b008ae0ed6 in g_application_run (application=0x5e43907a20a0 [gtkmm__GtkApplication], argc=<optimized out>, argv=0x7fffd3626c68) at ../glib/gio/gapplication.c:2712
arguments = 0x5e43908cdf10
status = 0
context = 0x5e43907b3e20
acquired_context = <optimized out>
__func__ = "g_application_run"
#33 0x00005e43903c5f64 in waybar::Client::main (this=0x5e4390731cf0, argc=3, argv=0x7fffd3626c68) at ../src/client.cpp:287
show_help = false
show_version = false
config_opt = ""
style_opt = ""
log_level = "trace"
cli = warning: RTTI symbol not found for class 'std::_Sp_counted_ptr_inplace<clara::detail::BoundFlagLambda<clara::detail::Help::Help(bool&)::{lambda(bool)#1}>, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr_inplace<clara::detail::BoundFlagLambda<clara::detail::Help::Help(bool&)::{lambda(bool)#1}>, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>'
{<clara::detail::ParserBase> = {_vptr.ParserBase = 0x5e43906b2188 <vtable for clara::detail::Parser+16>}, m_exeName = {<clara::detail::ComposableParserImpl<clara::detail::ExeName>> = {<clara::detail::ParserBase> = {_vptr.ParserBase = 0x5e43906b22a0 <vtable for clara::detail::ExeName+16>}, <No data fields>}, m_name = std::shared_ptr<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> (use count 1, weak count 0) = {get() = 0x5e439073d590}, m_ref = std::shared_ptr<clara::detail::BoundValueRefBase> (empty) = {get() = 0x0}}, m_options = std::vector of length 6, capacity 6 = {{<clara::detail::ParserRefImpl<clara::detail::Opt>> = {<clara::detail::ComposableParserImpl<clara::detail::Opt>> = {<clara::detail::ParserBase> = {_vptr.ParserBase = 0x5e43906b21f8 <vtable for clara::detail::Opt+16>}, <No data fields>}, m_optionality = clara::detail::Optionality::Optional, m_ref = std::shared_ptr<clara::detail::BoundRef> (use count 1, weak count 0) = {get() = 0x5e439073eb00}, m_hint = "", m_description = "display usage information"}, m_optNames = std::vector of length 3, capacity 3 = {"-?", "-h", "--help"}}, {<clara::detail::ParserRefImpl<clara::detail::Opt>> = {<clara::detail::ComposableParserImpl<clara::detail::Opt>> = {<clara::detail::ParserBase> = {_vptr.ParserBase = 0x5e43906b21f8 <vtable for clara::detail::Opt+16>}, <No data fields>}, m_optionality = clara::detail::Optionality::Optional, m_ref = std::shared_ptr<clara::detail::BoundRef> (use count 1, weak count 0) = {get() = 0x5e439073ea80}, m_hint = "", m_description = "Show version"}, m_optNames = std::vector of length 2, capacity 2 = {"-v", "--version"}}, {<clara::detail::ParserRefImpl<clara::detail::Opt>> = {<clara::detail::ComposableParserImpl<clara::detail::Opt>> = {<clara::detail::ParserBase> = {_vptr.ParserBase = 0x5e43906b21f8 <vtable for clara::detail::Opt+16>}, <No data fields>}, m_optionality = clara::detail::Optionality::Optional, m_ref = std::shared_ptr<clara::detail::BoundRef> (use count 1, weak count 0) = {get() = 0x5e439073ea00}, m_hint = "config", m_description = "Config path"}, m_optNames = std::vector of length 2, capacity 2 = {"-c", "--config"}}, {<clara::detail::ParserRefImpl<clara::detail::Opt>> = {<clara::detail::ComposableParserImpl<clara::detail::Opt>> = {<clara::detail::ParserBase> = {_vptr.ParserBase = 0x5e43906b21f8 <vtable for clara::detail::Opt+16>}, <No data fields>}, m_optionality = clara::detail::Optionality::Optional, m_ref = std::shared_ptr<clara::detail::BoundRef> (use count 1, weak count 0) = {get() = 0x5e439073e980}, m_hint = "style", m_description = "Style path"}, m_optNames = std::vector of length 2, capacity 2 = {"-s", "--style"}}, {<clara::detail::ParserRefImpl<clara::detail::Opt>> = {<clara::detail::ComposableParserImpl<clara::detail::Opt>> = {<clara::detail::ParserBase> = {_vptr.ParserBase = 0x5e43906b21f8 <vtable for clara::detail::Opt+16>}, <No data fields>}, m_optionality = clara::detail::Optionality::Optional, m_ref = std::shared_ptr<clara::detail::BoundRef> (use count 1, weak count 0) = {get() = 0x5e439073e950}, m_hint = "trace|debug|info|warning|error|critical|off", m_description = "Log level"}, m_optNames = std::vector of length 2, capacity 2 = {"-l", "--log-level"}}, {<clara::detail::ParserRefImpl<clara::detail::Opt>> = {<clara::detail::ComposableParserImpl<clara::detail::Opt>> = {<clara::detail::ParserBase> = {_vptr.ParserBase = 0x5e43906b21f8 <vtable for clara::detail::Opt+16>}, <No data fields>}, m_optionality = clara::detail::Optionality::Optional, m_ref = std::shared_ptr<clara::detail::BoundRef> (use count 1, weak count 0) = {get() = 0x5e439073d690}, m_hint = "id", m_description = "Bar id"}, m_optNames = std::vector of length 2, capacity 2 = {"-b", "--bar"}}}, m_args = std::vector of length 0, capacity 0}
res = {<clara::detail::ResultValueBase<clara::detail::ParseState>> = {<clara::detail::ResultBase> = {_vptr.ResultBase = 0x5e43906b22d8 <vtable for clara::detail::BasicResult<clara::detail::ParseState>+16>, m_type = clara::detail::ResultBase::Ok}, {m_value = {m_type = clara::detail::ParseResultType::Matched, m_remainingTokens = {it = <error reading variable: Cannot create a lazy string with address 0x0, and a non-zero length.>, itEnd = <error reading variable: Cannot create a lazy string with address 0x0, and a non-zero length.>, m_tokenBuffer = std::vector of length 0, capacity 0}}}}, m_errorMessage = ""}
theme = {pCppObject_ = 0x5e4390832af0}
m_config = {static minLargestInt = -9223372036854775808, static maxLargestInt = 9223372036854775807, static maxLargestUInt = 18446744073709551615, static minInt = -2147483648, static maxInt = 2147483647, static maxUInt = 4294967295, static minInt64 = -9223372036854775808, static maxInt64 = 9223372036854775807, static maxUInt64 = 18446744073709551615, static defaultRealPrecision = 17, static maxUInt64AsDouble = 1.8446744073709552e+19, value_ = {int_ = 103644281308640, uint_ = 103644281308640, real_ = 5.1207078782505059e-310, bool_ = 224, string_ = 0x5e43909205e0 "\260K\276tF^", map_ = 0x5e43909205e0}, bits_ = {value_type_ = 7, allocated_ = 0}, comments_ = {ptr_ = std::unique_ptr<std::array<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, 3>> = {get() = 0x5e43909062d0}}, start_ = 23, limit_ = 7116}
#34 0x00005e43903b08aa in main (argc=3, argv=0x7fffd3626c68) at ../src/main.cpp:106
client = 0x5e4390731cf0
ret = 0 |
I've switched to 2ead1bb earlier today. I'll provide more information when/if I encounter any more issues. |
Does it also happen if you suspend/resume without the dock connected? |
This occurred on 2ead1bb just after resuming (suspend was triggered by removing the laptop from the dock while its lid was closed. The one from my previous comment shortly (~30 s) after I connected to the dock earlier today. Program terminated with signal SIGSEGV, Segmentation fault.
#0 Glib::DispatchNotifier::send_notification (this=0x908e8e8e706f6f6f, dispatcher=<optimized out>) at ../glibmm/glib/glibmm/dispatcher.cc:379
379 n_written = write(fd_sender_, &data, sizeof(data));
[Current thread is 1 (Thread 0x7643adc8a640 (LWP 2887247))]
(gdb) bt full
#0 Glib::DispatchNotifier::send_notification (this=0x908e8e8e706f6f6f, dispatcher=<optimized out>) at ../glibmm/glib/glibmm/dispatcher.cc:379
data = {dispatcher = 0x5fe0146f7b58, notifier = 0x908e8e8e706f6f6f}
n_written = <optimized out>
#1 0x00005fe0139ac9e0 in waybar::modules::UPower::deviceNotify_cb (device=0x5fe0147e1860 [UpDevice], pspec=0x5fe0147d2200 [GParamUInt64], data=0x5fe0146f7b50) at ../src/modules/upower.cpp:290
up = 0x5fe0146f7b50
#2 0x00007643b1ac3730 in g_closure_invoke (closure=0x5fe0147e2510, return_value=0x0, n_param_values=2, param_values=0x7fff13164210, invocation_hint=0x7fff13164160) at ../glib/gobject/gclosure.c:834
marshal = 0x7643b1ac92b0 <g_cclosure_marshal_VOID__PARAM>
marshal_data = 0x0
in_marshal = 0
real_closure = 0x5fe0147e24f0
__func__ = "g_closure_invoke"
#3 0x00007643b1af2896 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7fff13164300, detail=detail@entry=2115, instance=instance@entry=0x5fe0147e1860, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fff13164210)
at ../glib/gobject/gsignal.c:3888
tmp = <optimized out>
handler = 0x5fe0148b5c80
accumulator = <optimized out>
emission = {next = 0x7fff131646b0, instance = 0x5fe0147e1860, ihint = {signal_id = 1, detail = 2115, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x4}
class_closure = <optimized out>
hlist = <optimized out>
handler_list = 0x5fe0148b5c80
return_accu = <optimized out>
accu = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
signal_id = <optimized out>
max_sequential_handler_number = <optimized out>
return_value_altered = <optimized out>
n_params = <optimized out>
EMIT_RESTART = <optimized out>
__func__ = {<optimized out> <repeats 23 times>}
#4 0x00007643b1ae37a2 in signal_emit_valist_unlocked (instance=instance@entry=0x5fe0147e1860, signal_id=signal_id@entry=1, detail=detail@entry=2115, var_args=var_args@entry=0x7fff13164460)
at ../glib/gobject/gsignal.c:3520
instance_and_params = 0x7fff13164210
param_values = 0x7fff13164228
node = <optimized out>
i = <optimized out>
node_copy = {signal_id = 1, itype = 0x50, name = 0x7643b1af46b7 "notify", destroyed = 0, flags = 121, n_params = 1, single_va_closure_is_valid = 1, single_va_closure_is_after = 0, param_types = 0x5fe0145faf40, return_type = 0x4, class_closure_bsa = 0x5fe0145faf60, accumulator = 0x0, c_marshaller = 0x7643b1ac92b0 <g_cclosure_marshal_VOID__PARAM>, va_marshaller = 0x7643b1aca7c0 <g_cclosure_marshal_VOID__PARAMv>, emission_hooks = 0x0, single_va_closure = 0x5fe0145faf10}
__func__ = "signal_emit_valist_unlocked"
#5 0x00007643b1ae39d7 in g_signal_emit_valist (instance=0x5fe0147e1860, signal_id=1, detail=2115, var_args=var_args@entry=0x7fff13164460) at ../glib/gobject/gsignal.c:3263
#6 0x00007643b1ae3a94 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../glib/gobject/gsignal.c:3583
var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fff13164540, reg_save_area = 0x7fff13164480}}
#7 0x00007643b1acf4b6 in g_object_dispatch_properties_changed (object=0x5fe0147e1860 [UpDevice], n_pspecs=<optimized out>, pspecs=<optimized out>) at ../glib/gobject/gobject.c:1816
i = <optimized out>
#8 0x00007643b1ad5a5a in g_object_notify_by_spec_internal (pspec=<optimized out>, object=0x5fe0147e1860 [UpDevice]) at ../glib/gobject/gobject.c:1921
object_flags = <optimized out>
needs_notify = 1
in_init = <optimized out>
object_flags = <optimized out>
needs_notify = <optimized out>
in_init = <optimized out>
_g_boolean_var_58 = <optimized out>
#9 g_object_notify (property_name=0x5fe0146810ea "update-time", object=0x5fe0147e1860 [UpDevice]) at ../glib/gobject/gobject.c:1971
pspec = <optimized out>
pspec = <optimized out>
__func__ = {<optimized out> <repeats 16 times>}
--Type <RET> for more, q to quit, c to continue without paging--
_g_boolean_var_59 = <optimized out>
_g_boolean_var_60 = <optimized out>
#10 g_object_notify (object=0x5fe0147e1860 [UpDevice], property_name=0x5fe0146810ea "update-time") at ../glib/gobject/gobject.c:1948
pspec = <optimized out>
__func__ = "g_object_notify"
#11 0x00007643b1ac3730 in g_closure_invoke (closure=0x5fe0147e2740, return_value=0x0, n_param_values=2, param_values=0x7fff13164770, invocation_hint=0x7fff131646c0) at ../glib/gobject/gclosure.c:834
marshal = 0x7643b1ac92b0 <g_cclosure_marshal_VOID__PARAM>
marshal_data = 0x0
in_marshal = 0
real_closure = 0x5fe0147e2720
__func__ = "g_closure_invoke"
#12 0x00007643b1af2896 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7fff13164860, detail=detail@entry=2115, instance=instance@entry=0x5fe0147e0f40, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fff13164770)
at ../glib/gobject/gsignal.c:3888
tmp = <optimized out>
handler = 0x5fe0148b4fb0
accumulator = <optimized out>
emission = {next = 0x7fff13164c70, instance = 0x5fe0147e0f40, ihint = {signal_id = 1, detail = 2115, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x4}
class_closure = <optimized out>
hlist = <optimized out>
handler_list = 0x5fe0148b4fb0
return_accu = <optimized out>
accu = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
signal_id = <optimized out>
max_sequential_handler_number = <optimized out>
return_value_altered = <optimized out>
n_params = <optimized out>
EMIT_RESTART = <optimized out>
__func__ = {<optimized out> <repeats 23 times>}
#13 0x00007643b1ae37a2 in signal_emit_valist_unlocked (instance=instance@entry=0x5fe0147e0f40, signal_id=signal_id@entry=1, detail=detail@entry=2115, var_args=var_args@entry=0x7fff131649c0)
at ../glib/gobject/gsignal.c:3520
instance_and_params = 0x7fff13164770
param_values = 0x7fff13164788
node = <optimized out>
i = <optimized out>
node_copy = {signal_id = 1, itype = 0x50, name = 0x7643b1af46b7 "notify", destroyed = 0, flags = 121, n_params = 1, single_va_closure_is_valid = 1, single_va_closure_is_after = 0, param_types = 0x5fe0145faf40, return_type = 0x4, class_closure_bsa = 0x5fe0145faf60, accumulator = 0x0, c_marshaller = 0x7643b1ac92b0 <g_cclosure_marshal_VOID__PARAM>, va_marshaller = 0x7643b1aca7c0 <g_cclosure_marshal_VOID__PARAMv>, emission_hooks = 0x0, single_va_closure = 0x5fe0145faf10}
__func__ = "signal_emit_valist_unlocked"
#14 0x00007643b1ae39d7 in g_signal_emit_valist (instance=0x5fe0147e0f40, signal_id=1, detail=2115, var_args=var_args@entry=0x7fff131649c0) at ../glib/gobject/gsignal.c:3263
#15 0x00007643b1ae3a94 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../glib/gobject/gsignal.c:3583
var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fff13164aa0, reg_save_area = 0x7fff131649e0}}
#16 0x00007643b1acf4b6 in g_object_dispatch_properties_changed (object=0x5fe0147e0f40 [UpExportedDeviceProxy], n_pspecs=<optimized out>, pspecs=<optimized out>) at ../glib/gobject/gobject.c:1816
i = <optimized out>
#17 0x00007643b1ad5a5a in g_object_notify_by_spec_internal (pspec=<optimized out>, object=0x5fe0147e0f40 [UpExportedDeviceProxy]) at ../glib/gobject/gobject.c:1921
object_flags = <optimized out>
needs_notify = 1
in_init = <optimized out>
object_flags = <optimized out>
needs_notify = <optimized out>
in_init = <optimized out>
_g_boolean_var_58 = <optimized out>
#18 g_object_notify (property_name=0x7643b0e82067 "update-time", object=0x5fe0147e0f40 [UpExportedDeviceProxy]) at ../glib/gobject/gobject.c:1971
pspec = <optimized out>
pspec = <optimized out>
__func__ = {<optimized out> <repeats 16 times>}
--Type <RET> for more, q to quit, c to continue without paging--
_g_boolean_var_59 = <optimized out>
_g_boolean_var_60 = <optimized out>
#19 g_object_notify (object=object@entry=0x5fe0147e0f40 [UpExportedDeviceProxy], property_name=0x7643b0e82067 "update-time") at ../glib/gobject/gobject.c:1948
pspec = <optimized out>
__func__ = "g_object_notify"
#20 0x00007643b0e77bad in up_exported_device_proxy_g_properties_changed (_proxy=0x5fe0147e0f40 [UpExportedDeviceProxy], changed_properties=<optimized out>, invalidated_properties=0x76439000e5b0)
at dbus/up-device-generated.c:3125
proxy = 0x5fe0147e0f40 [UpExportedDeviceProxy]
n = <optimized out>
key = 0x5fe0146f3980 "UpdateTime"
iter = 0x76439002a140
info = 0x7643b0e8ab20 <_up_exported_device_property_info_update_time>
#21 0x00007643b1ac3730 in g_closure_invoke (closure=0x5fe01460dd40, return_value=0x0, n_param_values=3, param_values=0x7fff13164d30, invocation_hint=0x7fff13164c80) at ../glib/gobject/gclosure.c:834
marshal = 0x7643b1ac8810 <g_type_class_meta_marshal>
marshal_data = 0x88
in_marshal = 0
real_closure = 0x5fe01460dd20
__func__ = "g_closure_invoke"
#22 0x00007643b1af2f4a in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7fff13164e30, detail=detail@entry=0, instance=instance@entry=0x5fe0147e0f40, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fff13164d30)
at ../glib/gobject/gsignal.c:3928
accumulator = <optimized out>
emission = {next = 0x0, instance = 0x5fe0147e0f40, ihint = {signal_id = 40, detail = 0, run_type = (G_SIGNAL_RUN_LAST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x5fe0147f0c50 [UpExportedDeviceProxy/GDBusProxy]}
class_closure = <optimized out>
hlist = <optimized out>
handler_list = 0x0
return_accu = <optimized out>
accu = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
signal_id = <optimized out>
max_sequential_handler_number = <optimized out>
return_value_altered = <optimized out>
n_params = <optimized out>
EMIT_RESTART = <optimized out>
__func__ = {<optimized out> <repeats 23 times>}
#23 0x00007643b1ae37a2 in signal_emit_valist_unlocked (instance=instance@entry=0x5fe0147e0f40, signal_id=signal_id@entry=40, detail=detail@entry=0, var_args=var_args@entry=0x7fff13164f90)
at ../glib/gobject/gsignal.c:3520
instance_and_params = 0x7fff13164d30
param_values = 0x7fff13164d48
node = <optimized out>
i = <optimized out>
node_copy = {signal_id = 40, itype = 0x5fe0145a2cf0 [GDBusProxy], name = 0x7643b12bdf6f "g-properties-changed", destroyed = 0, flags = 130, n_params = 2, single_va_closure_is_valid = 1, single_va_closure_is_after = 0, param_types = 0x5fe01460dba0, return_type = 0x4, class_closure_bsa = 0x5fe01460dde0, accumulator = 0x0, c_marshaller = 0x7643b11ced10 <_g_cclosure_marshal_VOID__VARIANT_BOXED>, va_marshaller = 0x7643b11d0500 <_g_cclosure_marshal_VOID__VARIANT_BOXEDv>, emission_hooks = 0x0, single_va_closure = 0x0}
__func__ = "signal_emit_valist_unlocked"
#24 0x00007643b1ae39d7 in g_signal_emit_valist (instance=0x5fe0147e0f40, signal_id=40, detail=0, var_args=var_args@entry=0x7fff13164f90) at ../glib/gobject/gsignal.c:3263
#25 0x00007643b1ae3a94 in g_signal_emit (instance=instance@entry=0x5fe0147e0f40, signal_id=<optimized out>, detail=detail@entry=0) at ../glib/gobject/gsignal.c:3583
var_args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fff13165070, reg_save_area = 0x7fff13164fb0}}
#26 0x00007643b127030e in on_properties_changed
(connection=<optimized out>, sender_name=<optimized out>, object_path=<optimized out>, interface_name=<optimized out>, signal_name=<optimized out>, parameters=<optimized out>, user_data=0x5fe0148b4b50)
at ../glib/gio/gdbusproxy.c:1086
proxy_weak = 0x5fe0148b4b50
emit_g_signal = <optimized out>
proxy = 0x5fe0147e0f40 [UpExportedDeviceProxy]
interface_name_for_signal = 0x5fe0146f3960 "org.freedesktop.UPower.Device"
changed_properties = 0x7643900315d0
invalidated_properties = 0x76439000e5b0
--Type <RET> for more, q to quit, c to continue without paging--
iter = {x = {130032551007696, 4, 4, 0, 130033106868528, 105416020213920, 105416019209760, 3579507750, 130033106952032, 18446744073709551344, 2, 18446744073709551344, 2, 130032550962688, 140733513617744, 130033086345342}}
key = 0x76439000e790 "\376\005Jp\347_"
value = 0x76439000ed80
n = <optimized out>
#27 0x00007643b1259f08 in emit_signal_instance_in_idle_cb (data=0x7643900273f0) at ../glib/gio/gdbusconnection.c:3798
signal_instance = 0x7643900273f0
parameters = 0x76439003a4a0
has_subscription = 1
#28 0x00007643b1413199 in g_main_dispatch (context=0x5fe01460ee20) at ../glib/glib/gmain.c:3344
dispatch = 0x7643b1410630 <g_idle_dispatch>
prev_source = 0x0
begin_time_nsec = 331247301843355
was_in_call = 0
user_data = 0x7643900273f0
callback = 0x7643b1259e80 <emit_signal_instance_in_idle_cb>
cb_funcs = 0x7643b1504380 <g_source_callback_funcs>
cb_data = 0x76439003a560
need_destroy = <optimized out>
source = 0x76439003a4f0
current = 0x5fe01460f060
i = 16
__func__ = "g_main_dispatch"
#29 0x00007643b14723bf in g_main_context_dispatch_unlocked (context=0x5fe01460ee20) at ../glib/glib/gmain.c:4152
#30 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x5fe01460ee20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4217
max_priority = 0
timeout = 0
some_ready = 1
nfds = 4
allocated_nfds = 4
fds = 0x5fe0148cbe10
begin_time_nsec = 331247275661506
#31 0x00007643b1412712 in g_main_context_iteration (context=context@entry=0x5fe01460ee20, may_block=may_block@entry=1) at ../glib/glib/gmain.c:4282
retval = <optimized out>
#32 0x00007643b1238ed6 in g_application_run (application=0x5fe0145fd0a0 [gtkmm__GtkApplication], argc=<optimized out>, argv=0x7fff13165e38) at ../glib/gio/gapplication.c:2712
arguments = 0x5fe01471cf30
status = 0
context = 0x5fe01460ee20
acquired_context = <optimized out>
__func__ = "g_application_run"
#33 0x00005fe013894f54 in waybar::Client::main (this=0x5fe01458ccf0, argc=3, argv=0x7fff13165e38) at ../src/client.cpp:287
show_help = false
show_version = false
config_opt = ""
style_opt = ""
log_level = "trace"
cli = warning: RTTI symbol not found for class 'std::_Sp_counted_ptr_inplace<clara::detail::BoundFlagLambda<clara::detail::Help::Help(bool&)::{lambda(bool)#1}>, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>'
warning: RTTI symbol not found for class 'std::_Sp_counted_ptr_inplace<clara::detail::BoundFlagLambda<clara::detail::Help::Help(bool&)::{lambda(bool)#1}>, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>'
{<clara::detail::ParserBase> = {_vptr.ParserBase = 0x5fe013b846e8 <vtable for clara::detail::Parser+16>}, m_exeName = {<clara::detail::ComposableParserImpl<clara::detail::ExeName>> = {<clara::detail::ParserBase> = {_vptr.ParserBase = 0x5fe013b84800 <vtable for clara::detail::ExeName+16>}, <No data fields>}, m_name = std::shared_ptr<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >> (use count 1, weak count 0) = {get() = 0x5fe014598590}, m_ref = std::shared_ptr<clara::detail::BoundValueRefBase> (empty) = {get() = 0x0}}, m_options = std::vector of length 6, capacity 6 = {{<clara::detail::ParserRefImpl<clara::detail::Opt>> = {<clara::detail::ComposableParserImpl<clara::detail::Opt>> = {<clara::detail::ParserBase> = {_vptr.ParserBase = 0x5fe013b84758 <vtable for clara::detail::Opt+16>}, <No data fields>}, m_optionality = clara::detail::Optionality::Optional, m_ref = std::shared_ptr<clara::detail::BoundRef> (use count 1, weak count 0) = {get() = 0x5fe014599b00}, m_hint = "", m_description = "display usage information"}, m_optNames = std::vector of length 3, capacity 3 = {"-?", "-h", "--help"}}, {<clara::detail::ParserRefImpl<clara::detail::Opt>> = {<clara::detail::ComposableParserImpl<clara::detail::Opt>> = {<clara::detail::ParserBase> = {_vptr.ParserBase = 0x5fe013b84758 <vtable for clara::detail::Opt+16>}, <No data fields>}, m_optionality = clara::detail::Optionality::Optional, m_ref = std::shared_ptr<clara::detail::BoundRef> (use count 1, weak count 0) = {get() = 0x5fe014599a80}, m_hint = "", m_description = "Show version"}, m_optNames = std::vector of length 2, capacity 2 = {"-v", "--version"}}, {<clara::detail::ParserRefImpl<clara::detail::Opt>> = {<clara::detail::ComposableParserImpl<clara::detail::Opt>> = {<clara::detail::ParserBase> = {_vptr.ParserBase = 0x5fe013b84758 <vtable for clara::detail::Opt+16>}, <No data fields>}, m_optionality = clara::detail::Optionality::Optional, m_ref = std::shared_ptr<clara::detail::BoundRef> (use count 1, weak count 0) = {get() = 0x5fe014599a00}, m_hint = "config", m_description = "Config path"}, m_optNames = std::vector of length 2, capacity 2 = {"-c", "--config"}}, {<clara::detail::ParserRefImpl<clara::detail::Opt>> = {<clara::detail::ComposableParserImpl<clara::detail::Opt>> = {<clara::detail::ParserBase> = {_vptr.ParserBase = 0x5fe013b84758 <vtable for clara::detail::Opt+16>}, <No data fields>}, m_optionality = clara::detail::Optionality::Optional, m_ref = std::shared_ptr<clara::detail::BoundRef> (use count 1, weak --Type <RET> for more, q to quit, c to continue without paging--
count 0) = {get() = 0x5fe014599980}, m_hint = "style", m_description = "Style path"}, m_optNames = std::vector of length 2, capacity 2 = {"-s", "--style"}}, {<clara::detail::ParserRefImpl<clara::detail::Opt>> = {<clara::detail::ComposableParserImpl<clara::detail::Opt>> = {<clara::detail::ParserBase> = {_vptr.ParserBase = 0x5fe013b84758 <vtable for clara::detail::Opt+16>}, <No data fields>}, m_optionality = clara::detail::Optionality::Optional, m_ref = std::shared_ptr<clara::detail::BoundRef> (use count 1, weak count 0) = {get() = 0x5fe014599950}, m_hint = "trace|debug|info|warning|error|critical|off", m_description = "Log level"}, m_optNames = std::vector of length 2, capacity 2 = {"-l", "--log-level"}}, {<clara::detail::ParserRefImpl<clara::detail::Opt>> = {<clara::detail::ComposableParserImpl<clara::detail::Opt>> = {<clara::detail::ParserBase> = {_vptr.ParserBase = 0x5fe013b84758 <vtable for clara::detail::Opt+16>}, <No data fields>}, m_optionality = clara::detail::Optionality::Optional, m_ref = std::shared_ptr<clara::detail::BoundRef> (use count 1, weak count 0) = {get() = 0x5fe014598690}, m_hint = "id", m_description = "Bar id"}, m_optNames = std::vector of length 2, capacity 2 = {"-b", "--bar"}}}, m_args = std::vector of length 0, capacity 0}
res = {<clara::detail::ResultValueBase<clara::detail::ParseState>> = {<clara::detail::ResultBase> = {_vptr.ResultBase = 0x5fe013b84838 <vtable for clara::detail::BasicResult<clara::detail::ParseState>+16>, m_type = clara::detail::ResultBase::Ok}, {m_value = {m_type = clara::detail::ParseResultType::Matched, m_remainingTokens = {it = <error reading variable: Cannot create a lazy string with address 0x0, and a non-zero length.>, itEnd = <error reading variable: Cannot create a lazy string with address 0x0, and a non-zero length.>, m_tokenBuffer = std::vector of length 0, capacity 0}}}}, m_errorMessage = ""}
theme = {pCppObject_ = 0x5fe014692e20}
m_config = {static minLargestInt = -9223372036854775808, static maxLargestInt = 9223372036854775807, static maxLargestUInt = 18446744073709551615, static minInt = -2147483648, static maxInt = 2147483647, static maxUInt = 4294967295, static minInt64 = -9223372036854775808, static maxInt64 = 9223372036854775807, static maxUInt64 = 18446744073709551615, static defaultRealPrecision = 17, static maxUInt64AsDouble = 1.8446744073709552e+19, value_ = {int_ = 105416020707008, uint_ = 105416020707008, real_ = 5.2082434352622127e-310, bool_ = 192, string_ = 0x5fe01477c6c0 ",vn\352\345_", map_ = 0x5fe01477c6c0}, bits_ = {value_type_ = 7, allocated_ = 0}, comments_ = {ptr_ = std::unique_ptr<std::array<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, 3>> = {get() = 0x5fe01477be20}}, start_ = 23, limit_ = 7116}
#34 0x00005fe01387f89a in main (argc=3, argv=0x7fff13165e38) at ../src/main.cpp:106
client = 0x5fe01458ccf0
ret = 0 |
And here's the output:
|
Can you share your Waybar config? I'll try to reproduce it locally. |
|
I can't reproduce it by suspending/resuming with your groups/group-upower config. Can you try reproducing it with a very minimal config? |
This time I was running two bars. The main one with everything but the upower module survived, while a more minimal one crashed. waybar config
This time I used another dock. journal
I first connected my running laptop to the dock. I then closed the lid, which for some reason triggered Output of waybar: waybar output
GDB: #0 Glib::DispatchNotifier::send_notification (this=0x0, dispatcher=<optimized out>) at ../glibmm/glib/glibmm/dispatcher.cc:379
data = {dispatcher = 0x5d46f59e1bb8, notifier = 0x0}
n_written = <optimized out>
#1 0x00005d46f3e139e0 in waybar::modules::UPower::deviceNotify_cb (device=0x5d46f593f220 [UpDevice], pspec=0x5d46f5953a30 [GParamUInt64], data=0x5d46f59e1bb0) at ../src/modules/upower.cpp:290
up = 0x5d46f59e1bb0
#2 0x000074d93fe7b730 in g_closure_invoke (closure=0x5d46f595eac0, return_value=0x0, n_param_values=2, param_values=0x7ffd46a3d600, invocation_hint=0x7ffd46a3d550) at ../glib/gobject/gclosure.c:834
marshal = 0x74d93fe812b0 <g_cclosure_marshal_VOID__PARAM>
marshal_data = 0x0
in_marshal = 0
real_closure = 0x5d46f595eaa0
__func__ = "g_closure_invoke"
(gdb) frame 0
#0 Glib::DispatchNotifier::send_notification (this=0x0, dispatcher=<optimized out>)
at ../glibmm/glib/glibmm/dispatcher.cc:379
379 n_written = write(fd_sender_, &data, sizeof(data));
(gdb) list
374
375 DispatchNotifyData data(dispatcher, this);
376 gssize n_written;
377
378 do
379 n_written = write(fd_sender_, &data, sizeof(data));
380 while (G_UNLIKELY(n_written < 0) && errno == EINTR);
381
382 // All data must be written in a single call to write(), otherwise we cannot
383 // guarantee reentrancy since another thread might be scheduled between two
(gdb) print fd_sender_
Cannot access memory at address 0x4c
(gdb) print data
$6 = {dispatcher = 0x5d46f59e1bb8, notifier = 0x0}
#1 0x00005d46f3e139e0 in waybar::modules::UPower::deviceNotify_cb (
device=0x5d46f593f220 [UpDevice], pspec=0x5d46f5953a30 [GParamUInt64],
data=0x5d46f59e1bb0) at ../src/modules/upower.cpp:290
290 up->dp.emit();
(gdb) list
285 }
286
287 void UPower::deviceNotify_cb(UpDevice *device, GParamSpec *pspec, gpointer data) {
288 UPower *up{static_cast<UPower *>(data)};
289 // Update the widget
290 up->dp.emit();
291 }
292
293 void UPower::addDevice(UpDevice *device) {
294 std::lock_guard<std::mutex> guard{mutex_};
(gdb) print up->name_
$7 = "upower" This one is more coherent than my previous coredump: #0 Glib::DispatchNotifier::send_notification
(this=0x908e8e8e706f6f6f, dispatcher=<optimized out>)
at ../glibmm/glib/glibmm/dispatcher.cc:379
data = {dispatcher = 0x5fe0146f7b58, notifier = 0x908e8e8e706f6f6f}
n_written = <optimized out>
#1 0x00005fe0139ac9e0 in waybar::modules::UPower::deviceNotify_cb
(device=0x5fe0147e1860 [UpDevice], pspec=0x5fe0147d2200 [GParamUInt64], data=0x5fe0146f7b50) at ../src/modules/upower.cpp:290
up = 0x5fe0146f7b50
#2 0x00007643b1ac3730 in g_closure_invoke
(closure=0x5fe0147e2510, return_value=0x0, n_param_values=2, param_values=0x7fff13164210, invocation_hint=0x7fff13164160) at ../glib/gobject/gclosure.c:834
marshal = 0x7643b1ac92b0 <g_cclosure_marshal_VOID__PARAM>
marshal_data = 0x0
in_marshal = 0
real_closure = 0x5fe0147e24f0
__func__ = "g_closure_invoke"
(gdb) frame 0
#0 Glib::DispatchNotifier::send_notification (this=0x908e8e8e706f6f6f,
dispatcher=<optimized out>) at ../glibmm/glib/glibmm/dispatcher.cc:379
379 n_written = write(fd_sender_, &data, sizeof(data));
(gdb) list
374
375 DispatchNotifyData data(dispatcher, this);
376 gssize n_written;
377
378 do
379 n_written = write(fd_sender_, &data, sizeof(data));
380 while (G_UNLIKELY(n_written < 0) && errno == EINTR);
381
382 // All data must be written in a single call to write(), otherwise we cannot
383 // guarantee reentrancy since another thread might be scheduled between two
(gdb) print fd_sender_
Cannot access memory at address 0x908e8e8e706f6fbb
(gdb) print data
$1 = {dispatcher = 0x5fe0146f7b58, notifier = 0x908e8e8e706f6f6f}
(gdb) frame 1
#1 0x00005fe0139ac9e0 in waybar::modules::UPower::deviceNotify_cb (
device=0x5fe0147e1860 [UpDevice], pspec=0x5fe0147d2200 [GParamUInt64],
data=0x5fe0146f7b50) at ../src/modules/upower.cpp:290
290 up->dp.emit();
(gdb) list
285 }
286
287 void UPower::deviceNotify_cb(UpDevice *device, GParamSpec *pspec, gpointer data) {
288 UPower *up{static_cast<UPower *>(data)};
289 // Update the widget
290 up->dp.emit();
291 }
292
293 void UPower::addDevice(UpDevice *device) {
294 std::lock_guard<std::mutex> guard{mutex_};
(gdb) print up->name_
$2 = <error: Cannot access memory at address 0x706f6f6f908e8e8e> |
I still can't reproduce it with your minimal config. I'm on Hyprland, though, I'm not sure if that makes a difference. @LukashonakV merged a UPower rework into master yesterday, can you try again with the latest master? |
I've been using the reworked upower module since #3223 (comment). Is there any chance that this is due to leftover callbacks to |
Hi @hrdl-github , let me check |
Impossible. Once destructor is called dispatcher instances with the UPower client, devices are got destructed |
@hrdl-github is it possible if I create the patch for you to check, whether it solves an issue ? I'll provide it there in the conversation. |
Hi @hrdl-github , |
I'll get back to you by Friday or before in case I encounter another segmentation fault. |
@LukashonakV , there's a good chance your patch is working. I've been running three waybar instances, of which one of them crashed out of the blue. This was the one built from |
Hi @hrdl-github , please check master release. This patch is merged, If its Ok, please close this issue. Thanks |
Thanks for your effort, @LukashonakV . One last note about the last crash I mentioned: that one occurred 282 seconds after resuming from suspend. I'll reopen this issue when needed. |
Version: 0.10.3
Environment: x86_64, GNU/Linux (Arch), sway 1.9.
This happened when docking a suspended laptop and then resuming. Suspend was triggered by taking the laptop out of its dock while the lid was closed. Resume was triggered by opening the lid.
The text was updated successfully, but these errors were encountered: