Subject: .25 still segfaults on solaris

From: Nils Lohner <[email-masked]>
Date: Thu, 07 Dec 2000 10:27:22 +0100

This is the same fault I reported with .22 (and earlier) as well.  It 
happened when opening a window.

I have --enable-debug-msgs configured, but I don't see the messages.  

When I start from the session manager, the console messages get eaten up.  
When I start from the command line by typing 'openwin' then I the console 
messages end up there.  my .xinitrc has:
rxvt -C -title console -geometry -0-0 &

I don't see where the console messages are ending up!  Any ideas?  I'm sure 
they would provide helpful info... the think is that if I launch openwin 
from the command line the colors are all screwed up and I can't fix them.

Thanks,
Nils.

/sup/installed/fvwm-2.3.25/fvwm > uname -a
SunOS topaze 5.7 Generic_106541-02 sun4u sparc SUNW,Ultra-5_10
/sup/installed/fvwm-2.3.25/fvwm > gcc --version
2.95.2
/sup/installed/fvwm-2.3.25/fvwm > fvwm2 -version
[FVWM][main]: <<DEBUG>> Entered, about to parse args
FVWM version 2.3.25 compiled on Dec  6 2000 at 11:51:03
with support for: ReadLine, XPM, GNOME WM hints, SM
/sup/installed/fvwm-2.3.25/fvwm > 
/sup/installed/fvwm-2.3.25/fvwm > gdb fvwm2 core
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.7"...

/mnt/installed/fvwm-2.3.25/fvwm/core: No such file or directory.
(gdb) core core-jeanney-2000-12-07
Core was generated by `/sup/bin/fvwm2 -cmd FvwmM4 -m4-prefix 
/u/jeanney/.fvwm2rc     .m4'.
Program terminated with signal 11, Segmentation Fault.
Reading symbols from /sup/lib/libXpm.so.4.11...done.
Reading symbols from /usr/openwin/lib/libSM.so.6...done.
Reading symbols from /usr/openwin/lib/libICE.so.6...done.
Reading symbols from /usr/openwin/lib/libXext.so.0...done.
Reading symbols from /usr/openwin/lib/libX11.so.4...done.
Reading symbols from /usr/lib/libsocket.so.1...done.
Reading symbols from /usr/lib/libnsl.so.1...done.
Reading symbols from /usr/lib/libm.so.1...done.
Reading symbols from /usr/lib/libc.so.1...done.
Reading symbols from /usr/lib/libdl.so.1...done.
Reading symbols from /usr/lib/libmp.so.2...done.
Reading symbols from /usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1...done.
#0  0x2c654 in remove_window_from_stack_ring (t=0xbec08) at stack.c:143
143       t->stack_prev->stack_next = t->stack_next;
(gdb) where
#0  0x2c654 in remove_window_from_stack_ring (t=0xbec08) at stack.c:143
#1  0x2cbcc in RaiseOrLowerWindow (t=0xbec08, do_lower=0, allow_recursion=1, 
    is_new_window=0) at stack.c:442
#2  0x2cf8c in RaiseWindow (t=0xbec08) at stack.c:633
#3  0x3167c in HandleConfigureRequest () at events.c:2093
#4  0x32068 in DispatchEvent (preserve_Tmp_win=0) at events.c:2503
#5  0x32134 in HandleEvents () at events.c:2543
#6  0x5142c in main (argc=481280, argv=0x78000) at fvwm.c:730
(gdb) print *t
$1 = {name = 0x601738 <Address 0x601738 out of bounds>, 
  icon_name = 0x601738 <Address 0x601738 out of bounds>, next = 0x601738, 
  prev = 0x601738, stack_next = 0x601738, stack_prev = 0x601738, w = 
6297400,
  old_bw = 6297400, frame = 6297400, decor_w = 6297400, Parent = 5379120, 
  title_w = 5379120, sides = {5379120, 5379120, 5379120, 5379120}, corners = 
{
    5379120, 5379120, 5379120, 5379120}, flags = {common = {is_sticky = 0, 
      has_icon_font = 0, has_window_font = 0, s = {do_circulate_skip = 0, 
        do_circulate_skip_icon = 0, do_circulate_skip_shaded = 0, 
        do_grab_focus_when_created = 0, 
        do_grab_focus_when_transient_created = 0, do_ignore_gnome_hints = 0, 
        do_ignore_restack = 0, do_lower_transient = 0, do_not_show_on_map = 
0,
        do_not_pass_click_focus_click = 1, do_not_raise_click_focus_click = 
0,
        do_raise_mouse_focus_click = 1, do_raise_transient = 0, 
        do_resize_opaque = 0, do_shrink_windowshade = 1, 
        do_stack_transient_parent = 0, do_start_iconic = 0, 
        do_window_list_skip = 0, focus_mode = 1, has_bottom_title = 0, 
        has_depressable_border = 1, has_mwm_border = 0, has_mwm_buttons = 0, 
        has_mwm_override = 0, has_no_icon_title = 0, has_override_size = 1, 
        has_stippled_title = 1, is_fixed = 0, is_icon_sticky = 0, 
        is_icon_suppressed = 0, is_lenient = 0, use_icon_position_hint = 
0}},
    does_wm_delete_window = 0, does_wm_take_focus = 0, 
    do_delete_icon_moved = 0, do_iconify_after_map = 0, 
    do_reuse_destroyed = 0, has_border = 0, has_title = 0, 
    is_deiconify_pending = 0, is_focused_on_other_desk = 0, 
    is_fully_visible = 1, is_iconified = 0, is_iconified_by_parent = 1, 
    is_icon_entered = 0, is_icon_font_loaded = 0, is_icon_moved = 1, 
    is_icon_ours = 0, is_icon_shaped = 0, is_icon_unmapped = 0, is_mapped = 
0,
    is_map_pending = 1, is_maximized = 0, is_name_changed = 1, 
    is_partially_visible = 0, is_pixmap_ours = 0, is_placed_wb3 = 0, 
    is_scheduled_for_raise = 0, is_size_inc_set = 1, is_transient = 1, 
    is_window_drawn_once = 0, is_viewport_moved = 0, 
    is_window_being_moved_opaque = 0, is_window_font_loaded = 0, 
    is_window_shaded = 0, using_default_icon_font = 0, 
    using_default_window_font = 0}, nr_left_buttons = 5379120, 
  nr_right_buttons = 5379120, button_w = {4460584, 4460584, 4460584, 
4460584,
    4460584, 4460584, 4460584, 4460584, 4460584, 4460584}, decor = 0x441028, 
  icon_w = 4460584, icon_pixmap_w = 4460584, wShaped = 0, boundary_width = 
68,
  corner_width = 4136, visual_corner_width = 68, title_g = {x = 4460584, 
    y = 3542304, width = 3542304, height = 3542304}, icon_g = {x = 3542304, 
---Type <return> to continue, or q <return> to quit---
    y = 3542304, width = 3542304, height = 3542304}, icon_xl_loc = 3542304, 
  icon_t_width = 3542304, icon_p_width = 3542304, icon_p_height = 3542304, 
  iconPixmap = 3542304, iconDepth = 3542304, icon_maskPixmap = 3542304, 
  title_font = {font = 0x360d20, height = 3542304, y = 3542304}, icon_font = 
{
    font = 0x290a18, height = 2689560, y = 2689560}, attr = {x = 2689560, 
    y = 2689560, width = 2689560, height = 2689560, border_width = 2689560, 
    depth = 2689560, visual = 0x290a18, root = 2689560, class = 2689560, 
    bit_gravity = 2689560, win_gravity = 2689560, backing_store = 2689560, 
    backing_planes = 2689560, backing_pixel = 2689560, save_under = 1771024, 
    colormap = 1771024, map_installed = 1771024, map_state = 1771024, 
    all_event_masks = 1771024, your_event_mask = 1771024, 
    do_not_propagate_mask = 1771024, override_redirect = 1771024, 
    screen = 0x1b0610}, hints = {flags = 1771024, x = 1771024, y = 1771024, 
    width = 1771024, height = 1771024, min_width = 1771024, 
    min_height = 1771024, max_width = 1771024, max_height = 852744, 
    width_inc = 852744, height_inc = 852744, min_aspect = {x = 852744, 
      y = 852744}, max_aspect = {x = 852744, y = 852744}, base_width = 
852744,
    base_height = 852744, win_gravity = 852744}, wmhints = 0xd0308, class = {
    res_name = 0xd0308 "", res_class = 0xd0308 ""}, Desk = 852744, 
  FocusDesk = 852744, DeIconifyDesk = 852744, transientfor = 852744, 
  mini_pixmap_file = 0x0, mini_icon = 0x0, icon_bitmap_file = 0x0, frame_g = 
{
    x = 0, y = 0, width = 0, height = 0}, normal_g = {x = 0, y = 0, width = 
0,
    height = 0}, max_g = {x = 0, y = 0, width = 0, height = 0}, max_offset = 
{
    x = 0, y = 0}, mwm_hints = 0x0, ol_hints = 1344, functions = 62, 
  cmap_windows = 0x0, number_cmap_windows = 0, colors = {fore = 737784, 
    back = 4620980, hilight = 731368, shadow = 3161932}, hicolors = {fore = 
0,
    back = 9118290, hilight = 14684784, shadow = 3677738}, border_colors = {
    fore = 0, back = 4620980, hilight = 8303841, shadow = 3161932}, 
  border_hicolors = {fore = 0, back = 9118290, hilight = 14684784, 
    shadow = 3677738}, buttons = 0, IconBoxes = 0x86038, default_layer = 4, 
  layer = 4, max_window_width = 32767, max_window_height = 32767, 
  shade_anim_steps = 0, grabbed_buttons = 0 '\000'}
(gdb) 

--
Visit the official FVWM web page at <URL:http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [email-masked].
To report problems, send mail to [email-masked]

---

From: Nils Lohner <[email-masked]>
Date: Thu, 07 Dec 2000 19:03:41 +0100

In message <[email-masked]>, Nils Lohner 
>happened when opening a window.

Same as the last time, but this time only the Icon name is out of 
bounds...

Is this info helpful?  I can't figure out how to see the debug output 
from FVWM...

When I start from the session manager, the console messages get eaten 
up.
When I start from the command line by typing 'openwin' then I the 
console
messages end up there.  my .xinitrc has:
rxvt -C -title console -geometry -0-0 &

I don't see where the console messages are ending up!  Any ideas?  I'm 
sure
they would provide helpful info... the think is that if I launch 
openwin
from the command line the colors are all screwed up and I can't fix 
them.

I'm using the CDE setup with the graphical login manager, and can't 
find the stderr output anywhere in my home dir or in the /var/adm and 
/var/log spaces.

exec /sup/bin/fvwm2 -debug | tee ~/.fvwm/errors
doesn't help either.

Here's the core info.
Thanks,
Nils.

/sup/installed/fvwm-2.3.25/fvwm > gdb fvwm2 core-jeanney-2000-12-07-2 
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and 
you are
welcome to change it and/or distribute copies of it under certain 
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for 
details.
This GDB was configured as "sparc-sun-solaris2.7"...
Core was generated by `fvwm2'.
Program terminated with signal 10, Bus Error.
Reading symbols from /sup/lib/libXpm.so.4.11...done.
Reading symbols from /usr/openwin/lib/libSM.so.6...done.
Reading symbols from /usr/openwin/lib/libICE.so.6...done.
Reading symbols from /usr/openwin/lib/libXext.so.0...done.
Reading symbols from /usr/openwin/lib/libX11.so.4...done.
Reading symbols from /usr/lib/libsocket.so.1...done.
Reading symbols from /usr/lib/libnsl.so.1...done.
Reading symbols from /usr/lib/libm.so.1...done.
Reading symbols from /usr/lib/libc.so.1...done.
Reading symbols from /usr/lib/libdl.so.1...done.
Reading symbols from /usr/lib/libmp.so.2...done.
Reading symbols from /usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1...d
one.
#0  0x2c654 in remove_window_from_stack_ring (t=0x99780) at stack.c:143
143       t->stack_prev->stack_next = t->stack_next;
(gdb) where
#0  0x2c654 in remove_window_from_stack_ring (t=0x99780) at stack.c:143
#1  0x2cbcc in RaiseOrLowerWindow (t=0x99780, do_lower=0, 
allow_recursion=1,
    is_new_window=0) at stack.c:442
#2  0x2cf8c in RaiseWindow (t=0x99780) at stack.c:633
#3  0x3167c in HandleConfigureRequest () at events.c:2093
#4  0x32068 in DispatchEvent (preserve_Tmp_win=0) at events.c:2503
#5  0x32134 in HandleEvents () at events.c:2543
#6  0x5142c in main (argc=-4263760, argv=0x78400) at fvwm.c:730
(gdb) p *t
$1 = {name = 0x93c88 "", 
  icon_name = 0x40000000 <Address 0x40000000 out of bounds>, next = 
0x0,
  prev = 0x4a2056e3, stack_next = 0x9a310, stack_prev = 0x1c00231, w = 
0,
  old_bw = 489, frame = 134, decor_w = 589, Parent = 366, title_w = 1, 
  sides = {4, 16, 327701, 19}, corners = {4, 7, 14, 26}, flags = 
{common = {
      is_sticky = 0, has_icon_font = 0, has_window_font = 0, s = {
        do_circulate_skip = 0, do_circulate_skip_icon = 0, 
        do_circulate_skip_shaded = 0, do_grab_focus_when_created = 0, 
        do_grab_focus_when_transient_created = 0, do_ignore_gnome_hints 
= 0,
        do_ignore_restack = 0, do_lower_transient = 0, 
do_not_show_on_map = 0,
        do_not_pass_click_focus_click = 0, do_not_raise_click_focus_clic
k = 0,
        do_raise_mouse_focus_click = 0, do_raise_transient = 0, 
        do_resize_opaque = 0, do_shrink_windowshade = 0, 
        do_stack_transient_parent = 0, do_start_iconic = 0, 
        do_window_list_skip = 1, focus_mode = 3, has_bottom_title = 1, 
        has_depressable_border = 1, has_mwm_border = 1, has_mwm_buttons 
= 1,
        has_mwm_override = 1, has_no_icon_title = 1, has_override_size 
= 1,
        has_stippled_title = 1, is_fixed = 1, is_icon_sticky = 1, 
        is_icon_suppressed = 1, is_lenient = 1, use_icon_position_hint 
= 0}},
    does_wm_delete_window = 0, does_wm_take_focus = 0, 
    do_delete_icon_moved = 0, do_iconify_after_map = 0, 
    do_reuse_destroyed = 0, has_border = 0, has_title = 0, 
    is_deiconify_pending = 0, is_focused_on_other_desk = 0, 
    is_fully_visible = 0, is_iconified = 0, is_iconified_by_parent = 0, 
    is_icon_entered = 0, is_icon_font_loaded = 0, is_icon_moved = 0, 
    is_icon_ours = 0, is_icon_shaped = 0, is_icon_unmapped = 0, 
is_mapped = 0,
    is_map_pending = 0, is_maximized = 0, is_name_changed = 0, 
    is_partially_visible = 0, is_pixmap_ours = 0, is_placed_wb3 = 0, 
    is_scheduled_for_raise = 0, is_size_inc_set = 0, is_transient = 0, 
    is_window_drawn_once = 0, is_viewport_moved = 0, 
    is_window_being_moved_opaque = 0, is_window_font_loaded = 0, 
    is_window_shaded = 0, using_default_icon_font = 0, 
    using_default_window_font = 0}, nr_left_buttons = 1, 
nr_right_buttons = 0,
  button_w = {11119017, 0, 153690625, 0, 2248417313, 1610612736, 
75497542,
    1272, 75497561, 0}, decor = 0x480006a, icon_w = 628184, 
  icon_pixmap_w = 83886093, wShaped = 0, boundary_width = 1280, 
  corner_width = 71, visual_corner_width = 0, title_g = {x = 83886159, 
    y = 83886167, width = 83886175, height = 83886184}, icon_g = {
    x = 83886191, y = 83886200, width = 83886209, height = 83886218}, 
  icon_xl_loc = 83886226, icon_t_width = 83886233, icon_p_width = 
83886240,
  icon_p_height = 83886259, iconPixmap = 83886271, iconDepth = 
83886266,
  icon_maskPixmap = 92274695, title_font = {font = 0x50000eb, 
    height = 83886278, y = 83886141}, icon_font = {font = 0x50000dd, 
    height = 83886300, y = 29360131}, attr = {x = 29360223, y = 
54525957,
    width = 62914567, height = 62914573, border_width = 62914591, 
    depth = 29360315, visual = 0x1c0005b, root = 83886103, class = 
88080391,
    bit_gravity = 29360316, win_gravity = 29360218, backing_store = 
29360220,
    backing_planes = 29360221, backing_pixel = 29360222, save_under = 
1096,
    colormap = 1243632532, map_installed = 0, map_state = 29360689, 
    all_event_masks = 628184, your_event_mask = 1920497268, 
    do_not_propagate_mask = 631568, override_redirect = 29360315, 
    screen = 0x0}, hints = {flags = 29360221, x = 0, y = 83886103, 
    width = 605320, height = 29360220, min_width = 631568, 
    min_height = 29360218, max_width = 0, max_height = 83886233, 
    width_inc = 0, height_inc = 83886259, min_aspect = {x = 604168, 
      y = 83886266}, max_aspect = {x = 631568, y = 83886315}, 
base_width = 0,
    base_height = 83886141, win_gravity = 83886301}, wmhints = 
0x50000dc,
  class = {res_name = 0x1c00003 <Address 0x1c00003 out of bounds>, 
    res_class = 0x1c0005f <Address 0x1c0005f out of bounds>}, Desk = 
54525957,
  FocusDesk = 62914567, DeIconifyDesk = 62914573, transientfor = 
62914591,
  mini_pixmap_file = 0x1c000bc <Address 0x1c000bc out of bounds>, 
  mini_icon = 0x1c0005a, 
  icon_bitmap_file = 0x1c000bb <Address 0x1c000bb out of bounds>, 
frame_g = {
    x = 29360219, y = 29360221, width = 29360222, height = 83886103}, 
  normal_g = {x = 88080391, y = 29360220, width = 570, height = 920}, 
max_g = {
    x = 0, y = 0, width = 0, height = 628600}, max_offset = {x = 0, 
    y = 631568}, mwm_hints = 0x0, ol_hints = 0, functions = 62, 
  cmap_windows = 0x0, number_cmap_windows = 0, colors = {fore = 0, 
    back = 11119017, hilight = 15592941, shadow = 5526612}, hicolors = {
    fore = 0, back = 12500670, hilight = 16777215, shadow = 6250335}, 
  border_colors = {fore = 0, back = 11119017, hilight = 15592941, 
    shadow = 5526612}, border_hicolors = {fore = 0, back = 12500670, 
    hilight = 16777215, shadow = 6250335}, buttons = 0, IconBoxes = 
0x7d558,
  default_layer = 4, layer = 4, max_window_width = 32767, 
  max_window_height = 32767, shade_anim_steps = 0, grabbed_buttons = 0 
'\000'}
(gdb)

---

From: Nils Lohner <[email-masked]>
Date: Fri, 08 Dec 2000 15:11:45 +0100

>from the command line the colors are all screwed up and I can't fix them.

Found it.  The configuration is in ~/.dtprofile, and there's: 
#echo "This session log file is currently disabled."    > $dtstart_sessionlogfile
#echo "To enable logging, edit $HOME/.dtprofile and" >> $dtstart_sessionlogfile
#echo "remove dtstart_sessionlogfile=/dev/null line."  >> $dtstart_sessionlogfile
 
#export dtstart_sessionlogfile="/dev/null"
#export dtstart_sessionlogfile="/dev/console"

It was set to /dev/null, console sends it to the console, not setting it sets it to
~/.dt/sessionlogs/host_DISPLAY:=0
 or wherever you're displaying.

That said, I'm hoping to have some debug info the next time I get the crash here.

Thanks,
Nils.

---

From: Dominik Vogt <[email-masked]>
Date: Sun, 17 Dec 2000 06:03:53 +0100

> Is this info helpful?  I can't figure out how to see the debug output 

Can we please, *please* keep all info about a single bug in a
single mail thread?  Having to scan through half a dozen different
threads drives me mad.

I have not read all the threads yet, but I have discovered several
places where pointers to already deleted windows may have been
stored.  One of these might cause your crash, but only if you
have some badly broken application which asks fvwm to raise
or lower its window below or above itself.  The responsible code
was unable to handle this situation which lead to a corrupt stack
ring.  This will be fixed with my next commit.  But before you
upgrade, please do the following change in stack.c.  Replace this
piece of code

  void remove_window_from_stack_ring(FvwmWindow *t)
  {
    t->stack_prev->stack_next = t->stack_next; /* <-- crash line */
    t->stack_next->stack_prev = t->stack_prev;
    return;
  }

with this:

  void remove_window_from_stack_ring(FvwmWindow *t)
  {
    t->stack_next->stack_prev = t->stack_prev;
    t->stack_prev->stack_next = t->stack_next; /* <-- crash line */
    return;
  }

Then check if fvwm still crashes in the marked line.  If my theory
is correct, fvwm will crash in the '...->stack_next = ...' line
with the new code also.  If the theory is incorrect it will almost
certainly crash in the '...->stack_prev = ...' line.  I dont want
to believe that any application programmer can be *this* stupid,
though.

Bye

Dominik ^_^  ^_^

--
Dominik Vogt, [email-masked]
Reply-To: [email-masked]
--
Visit the official FVWM web page at <URL:http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [email-masked].
To report problems, send mail to [email-masked]