On Sun, May 25, 2003 at 01:20:55AM +0200, [EMAIL PROTECTED] wrote:
> On Thu, May 22, 2003 at 07:10:51PM +0200, Olivier Chapuis wrote:
> > On Tue, May 20, 2003 at 04:39:22AM -0500, FVWM CVS wrote:
> > > CVSROOT:  /home/cvs/fvwm
> > > Module name:      fvwm
> > > Changes by:       olicha  03/05/20 04:39:22
> > > 
> > > Modified files:
> > >   .              : ChangeLog 
> > >   fvwm           : add_window.c focus.c screen.h update.c 
> > >   libs           : FGettext.c Flocale.c Makefile.am 
> > > Added files:
> > >   libs           : flist.c flist.h 
> > > 
> > > Log message:
> > > * Added a list for the windows which are scheduled for destroy
> > > * Always remove a fw from the fw list when destroy_window
> > 
> > There is something broken in this commit. Please, Mikhael do
> > not release 2.5.7 before I (or Dominik) fix it.
> 
> What exactly is the problem?
> 

I would like to have an answer. I get a core dump (stacking ring
corruption?)  or fvwm windows which have lost its client window when I
"run" purify.fvwm2rc.  Here the story.

* Before the 2003-05-18, one logic in destroy_window was to
    - remove the window from the fvwm window list
    - test if the window should be scheduled for destroy
       if yes, return after some job
       if no, really destroy/free the fvwm window
The problem was: when it is the time to really destroy/free the fvwm
windows which are scheduled for destroy (in update.c) as the window
has been removed from the fvwm window list fvwm do not found these
fvwm windows!
  
* On the 2003-05-18 I commit a fix by inverting the logic above:
    - test if the window should be scheduled for destroy
         if yes, return after some job
    - if no remove the window from the fvwm window list
    - really destroy/free the fvwm window
I thought that was not so bad as the scheduled_for_destroy flags is
maybe here to forbid certain operations on the fvwm windows in the
fvwm window list which are scheduled for destroy.  Indeed, I've _no_
problems with this logic (no core dump no fvwm windows which have lost
is client). But, you suggest that this logic is bad (and yes some
"operations" are performed on some fvwm windows which are scheduled
for destroy).

* So, I restored the previous logic (2003-05-20) and add a simple list
of the windows which are scheduled for destroy. This list is used in
update.c to really destroy/free the fvwm window.

I do not know what is the problem ... maybe under certain situation
the window which are scheduled for destroy are put back in the fvwm
window list in a strange way, that I do no understand.

Here the core dump I get when I "run" purify.fvwm2rc. It is not 100%
reproducible (but always happen at the same place during the Iconify
test). I reproduce it more easily if I proceed as follows (need to cvs
update first for my last purify.fvwm2rc commit):

  - install "purify"
  - run fvwm without config
  - Open a FvwmConsole and type:
     Read path_to_fvwm_cvs_tree/tests/purify/purify.fvwm2rc
     PurifyInit
  - pop-up the purify menu and select
      "Some Setup" -> "Bloc on Pick after each test"
  - Then, "run all test". You should click and click again to progress
    in the tests 

When I've no core dump I've a "window7" which has lost its
client. The same core dump occur with fvwm version prior to
the 2003-05-18.

#0  0x0808d968 in __raise_or_lower_window (t=0x0, mode=8389217,
    allow_recursion=1, is_new_window=135186360) at stack.c:823
823                                     XRaiseWindow (dpy, FW_W_FRAME(t2));
(gdb) where
#0  0x0808d968 in __raise_or_lower_window (t=0x0, mode=8389217,
    allow_recursion=1, is_new_window=135186360) at stack.c:823
#1  0x0808e1eb in RaiseWindow (t=0x81ae9e0) at stack.c:1417
#2  0x080813b6 in DeIconify (fw=0x81ae9e0) at icons.c:2405
#3  0x08081b19 in CMD_Iconify (cond_rc=0xbfffeb04, exc=0x1,
    action=0x81dba30 " 0 \"True\" üpikü") at icons.c:2671
#4  0x08099b22 in __execute_function (cond_rc=0xbfffeb04, exc=0x81ebe08,
    action=0x81d0598 "E", exec_flags=0 '\0', args=0x81dba30) at functions.c:636
#5  0x0809a7ef in execute_function (cond_rc=0xbfffeb04, exc=0x81ebe08,
    action=0x81de636 " Iconify  0 \"True\" üpikü", exec_flags=0 '\0')
    at functions.c:1228
#6  0x0809d1e3 in circulate_cmd (cond_rc=0xbfffeb04, exc=0x81ebe08,
    action=0x81de62d "(window2) Iconify  0 \"True\" üpikü", new_context=1,
    circ_dir=1, do_use_found=1, do_exec_on_match=1) at conditional.c:198
#7  0x0809e1ef in CMD_Next (cond_rc=0xbfffeb04, exc=0x81b4bf8,
    action=0x81de62d "(window2) Iconify  0 \"True\" üpikü")
    at conditional.c:876
#8  0x08099b22 in __execute_function (cond_rc=0xbfffeb04, exc=0x81ef898,
    action=0x81b4bf8 "E", exec_flags=128 '\200', args=0x81de62d)
    at functions.c:636
#9  0x0809a037 in __run_complex_function_items (cond_func_rc=0xbfffeb04,
    cond=105 'i', func=0x1, exc=0x81ef898, args=0xbfffeb90) at functions.c:822
#10 0x0809a28f in execute_complex_function (cond_rc=0xbfffed24, exc=0x81eb248,
    action=0x81ef898 "E", desperate=0x5) at functions.c:992
#11 0x08099bcf in __execute_function (cond_rc=0xbfffed24, exc=0x817a750,
    action=0x81eb248 "E", exec_flags=128 '\200', args=0x81db9a1)
    at functions.c:655
#12 0x0809a037 in __run_complex_function_items (cond_func_rc=0xbfffed24,
    cond=105 'i', func=0x1, exc=0x817a750, args=0xbfffedb0) at functions.c:822
#13 0x0809a28f in execute_complex_function (cond_rc=0xbfffee4c, exc=0x817a6c8,
    action=0x817a750 "E", desperate=0x5) at functions.c:992
#14 0x08099bcf in __execute_function (cond_rc=0xbfffee4c, exc=0x817a640,
    action=0x817a6c8 "E", exec_flags=64 '@', args=0x811f719) at functions.c:655
#15 0x0809a7ef in execute_function (cond_rc=0x0, exc=0x817a640,
    action=0x811f710 "function TestFunc", exec_flags=64 '@')
    at functions.c:1228
#16 0x0804e2e0 in __menu_execute_function (pexc=0xbffff0b8,
    action=0x811f710 "function TestFunc") at menus.c:228
#17 0x080566f7 in do_menu (pmp=0x0, pmret=0xbffff0c0) at menus.c:6439
#18 0x080ad7f8 in menu_func (cond_rc=0xbffff1bc, exc=0x8177ca0, action=0x0,
    fStaysUp=1) at menucmd.c:116
#19 0x080ad908 in CMD_Menu (cond_rc=0xbffff1bc, exc=0x8177ca0,
    action=0x81201b5 "TestMenu") at menucmd.c:145
#20 0x08099b22 in __execute_function (cond_rc=0xbffff1bc, exc=0x8177ea8,
    action=0x811fac0 "Hû\021\bHþ\021\bh", exec_flags=0 '\0', args=0xbffff0d0)
    at functions.c:636
#21 0x0809a7ef in execute_function (cond_rc=0x0, exc=0x8177ea8,
    action=0x8177dd8 "Menu TestMenu", exec_flags=0 '\0') at functions.c:1228
#22 0x08060676 in __handle_bpress_on_root (exc=0x8177ea8) at events.c:607
#23 0x08060859 in HandleButtonPress (ea=0xbffff2e4) at events.c:721
#24 0x08063aa8 in dispatch_event (e=0xbffff330) at events.c:3261
 
--
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 PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]

Reply via email to