Comments (16)
I have tried to reproduce, but I don't get a crash. Can you run wf-panel in GDB and post a backtrace of where wf-panel crashes so I can fix it?
from wf-shell.
~ >>> gdb wf-panel
GNU gdb (GDB) 8.3
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from wf-panel...
(No debugging symbols found in wf-panel)
(gdb)
from wf-shell.
@librewish This isn't a backtrace. Please do the following:
-
Recompile wf-shell with debugging symbols (easiest way is delete build folder of wf-shell and then compile again with
meson build --buildtype=debug --prefix=...
) -
Run
gdb wf-panel
, typerun
You should get a backtrace.
from wf-shell.
~/wf-shell >>> meson build --buildtype=debug --prefix=/usr ±[master]
The Meson build system
Version: 0.51.2
Source dir: /home/sk/wf-shell
Build dir: /home/sk/wf-shell/build
Build type: native build
Project name: wf-shell
Project version: 0.1
C compiler for the host machine: cc (gcc 9.1.0 "cc (GCC) 9.1.0")
C++ compiler for the host machine: c++ (gcc 9.1.0 "c++ (GCC) 9.1.0")
Build machine cpu family: x86_64
Build machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (1.6.3)
Run-time dependency wayland-client found: YES 1.17.0
Run-time dependency wayland-protocols found: YES 1.18
Run-time dependency gtkmm-3.0 found: YES 3.24.1
Run-time dependency wf-config found: YES 0.1
Run-time dependency gtk-layer-shell-0 found: YES 0.1.0
Run-time dependency libpulse found: YES 13.0-dirty
Submodule 'subprojects/gvc' (https://github.com/GNOME/libgnome-volume-control) registered for path 'gvc'
Cloning into '/home/sk/wf-shell/subprojects/gvc'...
Submodule path 'gvc': checked out '468022b708fc1a56154f3b0cc5af3b938fb3e9fb'
|Executing subproject gvc method meson
|
|Project name: gvc
|Project version: undefined
|C compiler for the host machine: cc (gcc 9.1.0 "cc (GCC) 9.1.0")
|Run-time dependency gio-2.0 found: YES 2.62.0
|Run-time dependency gobject-2.0 found: YES 2.62.0
|Dependency libpulse found: YES (cached)
|Run-time dependency libpulse-mainloop-glib found: YES 13.0-dirty
|Run-time dependency alsa found: YES 1.1.9
|Configuring config.h using configuration
|Build targets in project: 2
|Subproject gvc finished.
Found CMake: /usr/bin/cmake (3.15.3)
Run-time dependency libinotify found: NO (tried pkgconfig and cmake)
Program wayland-scanner found: YES (/usr/bin/wayland-scanner)
Build targets in project: 7
Found ninja-1.9.0 at /usr/bin/ninja
cannot build
no package named libinotify
in manjaro repo
from wf-shell.
~/wf-shell >>> gdb wf-panel ±[●][master]
GNU gdb (GDB) 8.3
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from wf-panel...
(gdb) run
Starting program: /usr/bin/wf-panel
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7ffff4269700 (LWP 26767)]
[New Thread 0x7ffff3a68700 (LWP 26768)]
[New Thread 0x7ffff3267700 (LWP 26769)]
[New Thread 0x7ffff26b9700 (LWP 26770)]
Failed to load info for google-chrome.desktop
Failed to load info for com.gexperts.Tilix.desktop
Failed to load icon /usr/share/icons/gnome/48x48/categories/preferences-system.png
Failed to load info for org.gnome.Nautilus.desktop
Failed to load info for 36
(wf-panel:26755): GLib-CRITICAL **: 21:08:03.860: g_variant_get_string: assertion 'value != NULL' failed
(wf-panel:26755): GLib-CRITICAL **: 21:08:03.860: g_variant_get_string: assertion 'value != NULL' failed
(wf-panel:26755): GLib-GIO-CRITICAL **: 21:08:03.862: g_dbus_connection_call_internal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed
[Thread 0x7ffff3a68700 (LWP 26768) exited]
from wf-shell.
i found the issue its
i did not have network manager installed
and its service running
as i use connman and have its service running
installing networkmanager and starting its service did not crash the panel.
so network manager is a hard dependancy of network widget?
from wf-shell.
Yes, network manager is necessary for the widget to operate. However it shouldn't crash.
And here I am sorry, but can you type bt full
at the end? i.e after running in gdb, reproduce the crash, and type bt full in gdb, press enter several times, it should print a list of all functions.
from wf-shell.
Thread 1 "wf-panel" received signal SIGINT, Interrupt.
0x00007ffff64e8667 in poll () from /usr/lib/libc.so.6
(gdb) bt full
#0 0x00007ffff64e8667 in poll () at /usr/lib/libc.so.6
#1 0x00007ffff6aff130 in () at /usr/lib/libglib-2.0.so.0
#2 0x00007ffff6b000d3 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#3 0x00007ffff6da3ea4 in () at /usr/lib/libgio-2.0.so.0
#4 0x00007ffff78b160a in Gio::Initable_Class::init_vfunc_callback(_GInitable*, _GCancellable*, _GError**) () at /usr/lib/libgiomm-2.4.so.1
#5 0x00007ffff78b17f3 in Gio::Initable::init() () at /usr/lib/libgiomm-2.4.so.1
#6 0x00007ffff7897ee0 in Gio::DBus::Proxy::Proxy(Glib::RefPtr<Gio::DBus::Connection> const&, Glib::ustring const&, Glib::ustring const&, Glib::ustring const&, Glib::RefPtr<Gio::DBus::InterfaceInfo> const&, Gio::DBus::ProxyFlags) () at /usr/lib/libgiomm-2.4.so.1
#7 0x00007ffff7897fc7 in Gio::DBus::Proxy::create_sync(Glib::RefPtr<Gio::DBus::Connection> const&, Glib::ustring const&, Glib::ustring const&, Glib::ustring const&, Glib::RefPtr<Gio::DBus::InterfaceInfo> const&, Gio::DBus::ProxyFlags) () at /usr/lib/libgiomm-2.4.so.1
#8 0x000055555559f2e1 in WayfireNetworkInfo::update_active_connection() (this=0x55555574c000)
at ../src/panel/widgets/network.cpp:260
active_conn_path =
{<Glib::VariantStringBase> = {<Glib::VariantBase> = {gobject_ = 0x0}, <No data fields>}, <No data fields>}
set_no_connection = {__this = 0x55555574c130}
#9 0x00005555555a0164 in WayfireNetworkInfo::init(Gtk::HBox*, wayfire_config*)
(this=0x55555574c000, container=0x5555557601d8, config=0x5555558c5a10)
at ../src/panel/widgets/network.cpp:382
#10 0x000055555557a2a0 in WayfirePanel::impl::reload_widgets(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::unique_ptr<WayfireWidget, std::default_delete<WayfireWidget> >, std::allocator<std::unique_ptr<WayfireWidget, std::default_delete<WayfireWidget> > > >&, Gtk::HBox&)
--Type <RET> for more, q to quit, c to continue without paging--
(this=0x5555557600e0, list="battery volume network", container=std::vector of length 2, capacity 2 = {...}, box=...) at ../src/panel/panel.cpp:256
widget = std::unique_ptr<WayfireWidget> = {get() = 0x55555574c000}
widget_name = "network"
__for_range = std::vector of length 3, capacity 4 = {"battery", "volume", "network"}
__for_begin = "network"
__for_end = <error: Cannot access memory at address 0x697620646e612072>
widgets = std::vector of length 3, capacity 4 = {"battery", "volume", "network"}
#11 0x000055555557a4eb in WayfirePanel::impl::init_widgets()::{lambda()#2}::operator()() const
(__closure=0x555555760370) at ../src/panel/panel.cpp:276
this = 0x5555557600e0
section = 0x555555760258
#12 0x00005555555803b1 in std::_Function_handler<void (), WayfirePanel::impl::init_widgets()::{lambda()#2}>::_M_invoke(std::_Any_data const&) (__functor=...)
at /usr/include/c++/9.1.0/bits/std_function.h:300
#13 0x000055555557ba28 in std::function<void ()>::operator()() const (this=0x555555760370)
at /usr/include/c++/9.1.0/bits/std_function.h:690
#14 0x000055555557a9d3 in WayfirePanel::impl::init_widgets() (this=0x5555557600e0)
at ../src/panel/panel.cpp:287
section = 0x5555556ec2f0
#15 0x0000555555578bca in WayfirePanel::impl::create_window() (this=0x5555557600e0)
at ../src/panel/panel.cpp:167
config_section = 0x5555556ec2f0
#16 0x000055555557ae17 in WayfirePanel::impl::impl(WayfireOutput*)
(this=0x5555557600e0, output=0x5555556f4f80) at ../src/panel/panel.cpp:297
#17 0x000055555557768c in WayfirePanel::WayfirePanel(WayfireOutput*)
--Type <RET> for more, q to quit, c to continue without paging--
(this=0x555555860570, output=0x5555556f4f80) at ../src/panel/panel.cpp:344
#18 0x000055555557b6e9 in WayfirePanelApp::impl::handle_new_output(WayfireOutput*)
(this=0x55555562a680, output=0x5555556f4f80) at ../src/panel/panel.cpp:364
#19 0x00005555555b9c2d in WayfireShellApp::add_output(Glib::RefPtr<Gdk::Monitor>)
(this=0x55555562a680, monitor=...) at ../src/util/wf-shell-app.cpp:103
#20 0x00005555555b9a8d in WayfireShellApp::on_activate() (this=0x55555562a680)
at ../src/util/wf-shell-app.cpp:96
i = 0
gdk_display = 0x5555556c0030
wl_display = 0x5555556baf50
registry = 0x555555852320
display = {pCppObject_ = 0x55555571bd20}
num_monitors = 2
#21 0x00005555555bdd75 in sigc::bound_mem_functor0<void, WayfireShellApp>::operator()() const
(this=0x5555558ad438) at /usr/include/sigc++-2.0/sigc++/functors/mem_fun.h:1991
#22 0x00005555555bd9b8 in sigc::adaptor_functor<sigc::bound_mem_functor0<void, WayfireShellApp> >::operator()() const (this=0x5555558ad430)
at /usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h:256
#23 0x00005555555bd3c8 in sigc::internal::slot_call0<sigc::bound_mem_functor0<void, WayfireShellApp>, void>::call_it(sigc::internal::slot_rep*) (rep=0x5555558ad400)
at /usr/include/sigc++-2.0/sigc++/functors/slot.h:136
typed_rep = 0x5555558ad400
#24 0x00007ffff77301f9 in Glib::SignalProxyNormal::slot0_void_callback(_GObject*, void*) ()
at /usr/lib/libglibmm-2.4.so.1
#25 0x00007ffff6bebd3a in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#26 0x00007ffff6bd988e in () at /usr/lib/libgobject-2.0.so.0
--Type <RET> for more, q to quit, c to continue without paging--
#27 0x00007ffff6bdd98a in g_signal_emit_valist () at /usr/lib/libgobject-2.0.so.0
#28 0x00007ffff6bde7f0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#29 0x00007ffff6ddfdd9 in () at /usr/lib/libgio-2.0.so.0
#30 0x00007ffff6ddf916 in g_application_run () at /usr/lib/libgio-2.0.so.0
#31 0x00005555555ba076 in WayfireShellApp::run() (this=0x55555562a680)
at ../src/util/wf-shell-app.cpp:127
#32 0x00005555555778cb in WayfirePanelApp::run(int, char**) (argc=1, argv=0x7fffffffe738)
at ../src/panel/panel.cpp:401
#33 0x00005555555779c2 in main(int, char**) (argc=1, argv=0x7fffffffe738)
at ../src/panel/panel.cpp:410
(gdb)
from wf-shell.
Have you reproduced the crash before doing bt full
? It seems that wf-panel hasn't crashed, but was rather stopped with Ctrl-C
from wf-shell.
And can you try this patch: http://ix.io/1ORU
If that doesn't help, then I'd need the backtrace from gdb, but after reproducing the problem.
from wf-shell.
Have you reproduced the crash before doing bt full? It seems that wf-panel hasn't crashed, but was rather stopped with Ctrl-C
okay it seems i got the wrong wording and misunderstood the problem.
the panel is not crashing
but panel is not appearing
when there is no network manger installed.
and network widget is active.
And can you try this patch: http://ix.io/1ORU
i dont know how to apply patches
from wf-shell.
@librewish, okay, now it makes sense. Tha patch could still help though. To apply it, first save the whole page to a file patch.txt, and then from the wf-shell source directory, run git apply patch.txt
from wf-shell.
yes the patch works.
now the panel appears.
even when the networkmanager is not installed
from wf-shell.
Ok, I'll push it when I get home. Thanks for testing.
from wf-shell.
i have a question why invoke gnome control center.
its such an heavy app.
pulls almost all of gnome
why cant the network widget be like network-manager-applet ?
from wf-shell.
Because I haven't had the time and motivation to implement a dedicated Wi-Fi selection popup. PRs welcome
from wf-shell.
Related Issues (20)
- [Feature] Add panel separator as a widget HOT 1
- Volume Control - Launch a sound control manager app via right-click HOT 1
- make window-list height resizeable HOT 3
- volume control slider not in sync with mouse scroll HOT 1
- Windows doesn't go to right position when minimizing HOT 5
- can't use asbsolute path for command_output icons HOT 1
- Wf-backgroud crashes after disconnecting external monitor. HOT 8
- printf only partially works on command_output HOT 3
- Pressing super key for workspace overview opens menu on every workspace HOT 1
- subprojects/gvc outdated (5 years old) HOT 2
- panel crashes if problems with icons HOT 1
- Not showing WLAN interface on FreeBSD 14 HOT 1
- wf-panel doesn't seem to open certain apps HOT 10
- window-list high cpu usage when full
- latest commits change some expected panel behavior HOT 3
- default.css will not update to newer contents automatically
- Just a showcase
- Panel tray icon behaving unexpectedly (icon size animations) HOT 2
- moveable panel
- [Feature Request] Add Pager widget and support for per-workspace tasks HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wf-shell.