Skip to content
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

Pager not mapped, show-window failing #5

Open
elliotkendall opened this issue Feb 4, 2017 · 8 comments
Open

Pager not mapped, show-window failing #5

elliotkendall opened this issue Feb 4, 2017 · 8 comments

Comments

@elliotkendall
Copy link

elliotkendall commented Feb 4, 2017

When the (pager) command runs, either from an after-initialization-hook in my rc file or manually from sawfish-client, I get the following output:

Lisp backtrace:
#1 show-window ...
#0 pager-unhide ...

Sawfish error:
Bad argument: #, (), 1

If I launch the pager binary manually and run "xwininfo -root -children" I can see that the pager window is running, and if I run xwininfo on that id, I can see that "Map State: IsUnMapped".

If I launch the pager manually and feed it "S" on stdin, it does appear and (pager-hide) and (pager-unhide) do work, but the pager remains blank.

I found an instance of another person having a similar problem way back in 2011, but the thread doesn't seem too helpful:

https://mail.gnome.org/archives/sawfish-list/2011-January/msg00061.html

I'm running Ubuntu 16.10 with its supplied sawfish (1:1.11.90-1) and the latest sawfish-pager code from http://download.tuxfamily.org/sawfishpager/, since it's no longer packaged. I tried building various versions of sawfish back to 1.8.2 and pager back to 0.90.1 with the same results, though.

Any ideas? Life without a pager is really bumming me out. Thanks.

@Nanolx
Copy link
Member

Nanolx commented Mar 15, 2017

I'll have a look at it, soon.

@Nanolx
Copy link
Member

Nanolx commented Mar 30, 2017

So I pushed a change to the git repository. (pager-autohide) now hooks into 'map-notify-hook and is then only triggered when a) pager is really mapped, b) pager-autohide-enable is true.

That mail from Eli Barzilay references an issue that occured because back then I re-wrote the edge-flipping feature in Sawfish (and the pager was not yet updated then).

If you still have no visible windows after this change I need more informations.

@elliotkendall
Copy link
Author

With that fix, I no longer get any errors running (pager). But it still doesn't do anything. The process doesn't launch, nor does a window appear. I ran (pager) through sawfish-client under strace, and it doesn't even look like it's trying to launch the process.

What else can I give you to work with? I'm pretty stumped.

@elliotkendall
Copy link
Author

My pager's still not working. I tried a vanilla Ubuntu install with the latest code from git, but it's still the same behavior. Any ideas? Thanks.

@ghost
Copy link

ghost commented Sep 18, 2019

@elliotkendall I am seeing a traceback like this in dmesg:

[96862.064144] sawfishpager[261170]: segfault at 3ea2fc50 ip 00007f6f538f9816 sp 00007ffe410c8e30 error 4 in libgdk-x11-2.0.so.0.2400.32[7f6f538d5000+ae000]

I am not sure why that would happen, I compiled both sawfish and pager in my machine.

@elliotkendall
Copy link
Author

I'm not sure that's the same bug. The pager binary runs fine for me, it just doesn't do anything.

@ghost
Copy link

ghost commented Sep 19, 2019

Thanks for clarifying. I am getting this error, so unable to proceed that far.

@elliotkendall
Copy link
Author

elliotkendall commented Dec 18, 2020

I did a bunch of digging (thanks, docker!) and have isolated this problem to changes introduced between Ubuntu 16.04 and 16.10. The same version of sawfish and sawfish-pager works correctly in the earlier release but not in the later.

The issue appears to be that sawfish-pager is segfaulting in gdk_gc_set_foreground. The full gdb backtrace follows (sawfish 1.11 and sawfish-pager latest from git, plus gtk 2.24.30-4 and libglib 2.50.0-2).

I ported the gtk and libglib versions from 16.04 (2.24.30-1 and 2.48.0-1) to 16.10, but that still wasn't enough to fix the problem on that release. I'm not sure what else to try to narrow it down more.

GNU gdb (Ubuntu 7.11.90.20161005-0ubuntu2) 7.11.90.20161005-git
Copyright (C) 2016 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-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 /usr/lib/x86_64-linux-gnu/sawfish/sawfishpager...done.

[New LWP 19848]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by '/usr/lib/x86_64-linux-gnu/sawfish/sawfishpager'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f6423bbe556 in IA__gdk_gc_set_foreground (gc=0xfffffffff1c91f70,
color=0x555ff1b5c0c0 ) at ./gdk/gdkgc.c:394
394 ./gdk/gdkgc.c: No such file or directory.
-: No such file or directory.
(gdb) (gdb) #0 0x00007f6423bbe556 in IA__gdk_gc_set_foreground (gc=0x-e36e090, color=0x555ff1b5c0c0 ) at ./gdk/gdkgc.c:394
__inst = 0x-e36e090
__t = 93870566733920
__r =
values = {foreground = {pixel = 0, red = 21855, green = 0, blue = 1}, background = {pixel = 21855, red = 45760, green = 61896, blue = 21855}, font = 0x18, function = 4056455744, fill = 21855, tile = 0x71, stipple = 0x0, clip_mask = 0x7f6423bfad6f, subwindow_mode = (unknown: 4056311152), ts_x_origin = 21855, ts_y_origin = 599508140, clip_x_origin = 24, clip_y_origin = 559165952, graphics_exposures = 32612, line_width = 1674069504, line_style = (GDK_LINE_ON_OFF_DASH | GDK_LINE_DOUBLE_DASH | unknown: 1392294608), cap_style = 4055220416, join_style = (GDK_JOIN_ROUND | GDK_JOIN_BEVEL | unknown: 21852)}
__func__ = "IA__gdk_gc_set_foreground"
#1 0x0000555ff194e957 in configure_event (widget=widget@entry=0x555ff1c86330 [GtkDrawingArea], event=, data=) at sawfishpager.c:345
i =
#6 0x00007f642396ffaf in <emit signal ??? on instance 0x555ff1c86330 [GtkDrawingArea]> (instance=instance@entry=0x555ff1c86330, signal_id=, detail=detail@entry=0) at ././gobject/gsignal.c:3447
var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7ffdc1b3be80, reg_save_area = 0x7ffdc1b3bdc0}}
#2 0x00007f6423f7fe6c in _gtk_marshal_BOOLEAN__BOXED (closure=0x555ff1c8db50, return_value=0x7ffdc1b3bb80, n_param_values=, param_values=0x7ffdc1b3bbe0, invocation_hint=, marshal_data=) at gtkmarshalers.c:86
callback = 0x555ff194e8b0 <configure_event>
cc = 0x555ff1c8db50
data1 = 0x555ff1c86330
data2 =
v_return =
__func__ = "_gtk_marshal_BOOLEAN__BOXED"
#3 0x00007f6423954f75 in g_closure_invoke (closure=0x555ff1c8db50, return_value=return_value@entry=0x7ffdc1b3bb80, n_param_values=2, param_values=param_values@entry=0x7ffdc1b3bbe0, invocation_hint=invocation_hint@entry=0x7ffdc1b3bb60) at ././gobject/gclosure.c:804
marshal =
marshal_data =
in_marshal = 0
real_closure = 0x555ff1c8db30
__func__ = "g_closure_invoke"
#4 0x00007f6423966f82 in signal_emit_unlocked_R (node=node@entry=0x555ff1c75ec0, detail=detail@entry=0, instance=instance@entry=0x555ff1c86330, emission_return=emission_return@entry=0x7ffdc1b3bcf0, instance_and_params=instance_and_params@entry=0x7ffdc1b3bbe0) at ././gobject/gsignal.c:3635
tmp =
handler = 0x555ff1c51640
accumulator = 0x555ff1c75f30
emission = {next = 0x7ffdc1b3c070, instance = 0x555ff1c86330, ihint = {signal_id = 46, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 4}
handler_list = 0x555ff1c51640
return_accu = 0x7ffdc1b3bb80
accu = {g_type = 20, 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 = 46
max_sequential_handler_number = 18
return_value_altered = 0
#5 0x00007f642396f66f in g_signal_emit_valist (instance=, signal_id=, detail=, var_args=var_args@entry=0x7ffdc1b3bda0) at ././gobject/gsignal.c:3401
return_value = {g_type = 20, 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}}}
error = 0x0
rtype = 20
static_scope = 0
instance_and_params = 0x7ffdc1b3bbe0
signal_return_type =
param_values = 0x7ffdc1b3bbf8
i =
n_params =
__func__ = "g_signal_emit_valist"
#7 0x00007f642409847c in gtk_widget_event_internal (widget=widget@entry=0x555ff1c86330 [GtkDrawingArea], event=event@entry=0x555ff1c864a0) at ./gtk/gtkwidget.c:5017
signal_num =
return_val = 0
#8 0x00007f6424098747 in IA__gtk_widget_event (widget=widget@entry=0x555ff1c86330 [GtkDrawingArea], event=event@entry=0x555ff1c864a0) at ./gtk/gtkwidget.c:4814
__func__ = "IA__gtk_widget_event"
#9 0x00007f6423f0743a in gtk_drawing_area_send_configure (darea=0x555ff1c86330 [GtkDrawingArea]) at ./gtk/gtkdrawingarea.c:148
widget = 0x555ff1c86330 [GtkDrawingArea]
event = 0x555ff1c864a0
#10 0x00007f6423f07525 in gtk_drawing_area_realize (widget=0x555ff1c86330 [GtkDrawingArea]) at ./gtk/gtkdrawingarea.c:110
darea = 0x555ff1c86330 [GtkDrawingArea]
attributes = {title = 0x7f64248c1a90 "", event_mask = 2106126, x = 0, y = 0, width = 182, height = 113, wclass = GDK_INPUT_OUTPUT, visual = 0x555ff1c36360 [GdkVisual], colormap = 0x555ff1c6a840 [GdkColormap], window_type = GDK_WINDOW_CHILD, cursor = 0x7f642397c4a8 <g_value_peek_pointer+56>, wmclass_name = 0x555ff1c73520 "\002", wmclass_class = 0x7f6423956cac <g_cclosure_marshal_VOID__VOID+60> "H\205\355I\211\304H\213s\020t$[L\211\347H\211\350]A\\\377\340\017\037@", override_redirect = -238602976, type_hint = 21855}
attributes_mask =
#14 0x00007f642396ffaf in <emit signal ??? on instance 0x555ff1c86330 [GtkDrawingArea]> (instance=instance@entry=0x555ff1c86330, signal_id=, detail=detail@entry=0) at ././gobject/gsignal.c:3447
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffdc1b3c390, reg_save_area = 0x7ffdc1b3c2d0}}
#11 0x00007f6423954f75 in g_closure_invoke (closure=closure@entry=0x555ff1c73520, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7ffdc1b3c100, invocation_hint=invocation_hint@entry=0x7ffdc1b3c080) at ././gobject/gclosure.c:804
marshal =
marshal_data =
in_marshal = 0
real_closure = 0x555ff1c73500
__func__ = "g_closure_invoke"
#12 0x00007f642396695c in signal_emit_unlocked_R (node=node@entry=0x555ff1c73550, detail=detail@entry=0, instance=instance@entry=0x555ff1c86330, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffdc1b3c100) at ././gobject/gsignal.c:3565
accumulator = 0x0
emission = {next = 0x7ffdc1b3c520, instance = 0x555ff1c86330, ihint = {signal_id = 16, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 93870566704656}
handler_list =
return_accu = 0x0
accu = {g_type = 0, 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 = 16
max_sequential_handler_number = 18
return_value_altered =
#13 0x00007f642396fbcc in g_signal_emit_valist (instance=, signal_id=, detail=, var_args=var_args@entry=0x7ffdc1b3c2b0) at ././gobject/gsignal.c:3391
instance_and_params = 0x7ffdc1b3c100
signal_return_type =
param_values = 0x7ffdc1b3c118
i =
n_params =
__func__ = "g_signal_emit_valist"
#15 0x00007f642409e744 in IA__gtk_widget_realize (widget=widget@entry=0x555ff1c86330 [GtkDrawingArea]) at ./gtk/gtkwidget.c:3561
mode =
shape_info =
__func__ = "IA__gtk_widget_realize"
#16 0x00007f642409e948 in IA__gtk_widget_map (widget=0x555ff1c86330 [GtkDrawingArea]) at ./gtk/gtkwidget.c:3435
__func__ = "IA__gtk_widget_map"
#17 0x00007f6423ed045a in gtk_box_forall (container=0x555ff1c85180 [GtkVBox], include_internals=, callback=0x7f6423f00cd0 <gtk_container_map_child>, callback_data=0x0) at ./gtk/gtkbox.c:1251
box = 0x555ff1c85180 [GtkVBox]
child =
children = 0x0
#18 0x00007f6423f03def in gtk_container_map (widget=0x555ff1c85180 [GtkVBox]) at ./gtk/gtkcontainer.c:2684
#22 0x00007f642396ffaf in <emit signal ??? on instance 0x555ff1c85180 [GtkVBox]> (instance=instance@entry=0x555ff1c85180, signal_id=, detail=detail@entry=0) at ././gobject/gsignal.c:3447
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffdc1b3c840, reg_save_area = 0x7ffdc1b3c780}}
#19 0x00007f6423954ecf in g_closure_invoke (closure=closure@entry=0x555ff1c50480, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7ffdc1b3c5b0, invocation_hint=invocation_hint@entry=0x7ffdc1b3c530) at ././gobject/gclosure.c:804
marshal =
marshal_data =
in_marshal = 1
real_closure = 0x555ff1c50460
__func__ = "g_closure_invoke"
#20 0x00007f642396695c in signal_emit_unlocked_R (node=node@entry=0x555ff1c712b0, detail=detail@entry=0, instance=instance@entry=0x555ff1c85180, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffdc1b3c5b0) at ././gobject/gsignal.c:3565
accumulator = 0x0
emission = {next = 0x7ffdc1b3c9a0, instance = 0x555ff1c85180, ihint = {signal_id = 14, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 93870566704320}
handler_list =
return_accu = 0x0
accu = {g_type = 0, 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 = 14
max_sequential_handler_number = 18
return_value_altered =
#21 0x00007f642396fbcc in g_signal_emit_valist (instance=, signal_id=, detail=, var_args=var_args@entry=0x7ffdc1b3c760) at ././gobject/gsignal.c:3391
instance_and_params = 0x7ffdc1b3c5b0
signal_return_type =
param_values = 0x7ffdc1b3c5c8
i =
n_params =
__func__ = "g_signal_emit_valist"
#23 0x00007f642409e91e in IA__gtk_widget_map (widget=0x555ff1c85180 [GtkVBox]) at ./gtk/gtkwidget.c:3437
__func__ = "IA__gtk_widget_map"
#24 0x00007f64240af0b2 in gtk_window_map (widget=0x555ff1c7f0b0 [GtkWindow]) at ./gtk/gtkwindow.c:4591
window = 0x555ff1c7f0b0 [GtkWindow]
priv = 0x555ff1c7f090
toplevel =
auto_mnemonics = 21855
#28 0x00007f642396ffaf in <emit signal ??? on instance 0x555ff1c7f0b0 [GtkWindow]> (instance=instance@entry=0x555ff1c7f0b0, signal_id=, detail=detail@entry=0) at ././gobject/gsignal.c:3447
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffdc1b3ccc0, reg_save_area = 0x7ffdc1b3cc00}}
#25 0x00007f6423954f75 in g_closure_invoke (closure=closure@entry=0x555ff1c50480, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7ffdc1b3ca30, invocation_hint=invocation_hint@entry=0x7ffdc1b3c9b0) at ././gobject/gclosure.c:804
marshal =
marshal_data =
in_marshal = 0
real_closure = 0x555ff1c50460
__func__ = "g_closure_invoke"
#26 0x00007f642396695c in signal_emit_unlocked_R (node=node@entry=0x555ff1c712b0, detail=detail@entry=0, instance=instance@entry=0x555ff1c7f0b0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffdc1b3ca30) at ././gobject/gsignal.c:3565
accumulator = 0x0
emission = {next = 0x7ffdc1b3ce80, instance = 0x555ff1c7f0b0, ihint = {signal_id = 14, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 93870566608592}
handler_list =
return_accu = 0x0
accu = {g_type = 0, 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 = 14
max_sequential_handler_number = 18
return_value_altered =
#27 0x00007f642396fbcc in g_signal_emit_valist (instance=, signal_id=, detail=, var_args=var_args@entry=0x7ffdc1b3cbe0) at ././gobject/gsignal.c:3391
instance_and_params = 0x7ffdc1b3ca30
signal_return_type =
param_values = 0x7ffdc1b3ca48
i =
n_params =
__func__ = "g_signal_emit_valist"
#29 0x00007f642409e91e in IA__gtk_widget_map (widget=0x555ff1c7f0b0 [GtkWindow]) at ./gtk/gtkwidget.c:3437
__func__ = "IA__gtk_widget_map"
#30 0x00007f64240a8d5e in gtk_window_show (widget=0x555ff1c7f0b0 [GtkWindow]) at ./gtk/gtkwindow.c:4555
window = 0x555ff1c7f0b0 [GtkWindow]
container = 0x555ff1c7f0b0 [GtkWindow]
need_resize =
#34 0x00007f642396ffaf in <emit signal ??? on instance 0x555ff1c7f0b0 [GtkWindow]> (instance=instance@entry=0x555ff1c7f0b0, signal_id=, detail=detail@entry=0) at ././gobject/gsignal.c:3447
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffdc1b3d1a0, reg_save_area = 0x7ffdc1b3d0e0}}
#31 0x00007f6423954f75 in g_closure_invoke (closure=closure@entry=0x555ff1c50220, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7ffdc1b3cf10, invocation_hint=invocation_hint@entry=0x7ffdc1b3ce90) at ././gobject/gclosure.c:804
marshal =
marshal_data =
in_marshal = 0
real_closure = 0x555ff1c50200
__func__ = "g_closure_invoke"
#32 0x00007f642396695c in signal_emit_unlocked_R (node=node@entry=0x555ff1c50290, detail=detail@entry=0, instance=instance@entry=0x555ff1c7f0b0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffdc1b3cf10) at ././gobject/gsignal.c:3565
accumulator = 0x0
emission = {next = 0x0, instance = 0x555ff1c7f0b0, ihint = {signal_id = 12, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 93870566608592}
handler_list =
return_accu = 0x0
accu = {g_type = 0, 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 = 12
max_sequential_handler_number = 18
return_value_altered =
#33 0x00007f642396fbcc in g_signal_emit_valist (instance=, signal_id=, detail=, var_args=var_args@entry=0x7ffdc1b3d0c0) at ././gobject/gsignal.c:3391
instance_and_params = 0x7ffdc1b3cf10
signal_return_type =
param_values = 0x7ffdc1b3cf28
i =
n_params =
__func__ = "g_signal_emit_valist"
#35 0x00007f642409dea6 in IA__gtk_widget_show (widget=0x555ff1c7f0b0 [GtkWindow]) at ./gtk/gtkwidget.c:3243
widget = 0x555ff1c7f0b0 [GtkWindow]
#36 0x0000555ff194dc50 in main (argc=, argv=) at sawfishpager.c:162
vbox =
(gdb) quit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants