Re: Trouble upgrading to 4.0.1

Terran Melconian <[email protected]>
Newsgroups gmane.comp.window-managers.ctwm
Message-ID <[email protected]>
Matthew Fuller wrote:

> easy enough to just grab and run trunk instead of the release; there's
> not a ton of churn between.

Done.  From now on everything I say will refer to trunk, although I'm not
changing the subject line for threading reasons.
 
> So, as that local bit of code stands, I'd say the assertion _is_ wrong
> for multi-Screen incarnations, so just removing it isn't exactly
> wrong.  Might be worth looking more into what crashes later, whether
> it's in OTP or elsewhere, to see if it's strictly related or
> coincidental.

When I remove that assertion, I can run until I try to change workspaces.
At that point I get another OTP related error:

    ReparentWindow: w=16000f1 type=0
    InsertOwlAbove owl->pri=8 w=0x16000f1 parent_vs:(x,y)=(0,0)
      other_owl->pri=8 w=0x16000ed parent_vs:(x,y)=(0,0)
    General case
    OtpCheckConsistencyVS: vs:(x,y)=(0,0)
    XQueryTree: 49 children:
    [0]=1600002 [1]=400002 [2]=c00002 [3]=800002 [4]=c00004 [5]=1200002 [6]=160002e [7]=160002f [8]=1600030 [9]=1600031 [10]=1600032 [11]=1600033 [12]=1600034 [13]=1600035 [14]=1600036 [15]=1600037 [16]=1600038 [17]=1600039 [18]=160004b [19]=160004f [20]=1600053 [21]=1600057 [22]=160005b [23]=160005f [24]=1600063 [25]=1600067 [26]=160006b [27]=160006f [28]=1600087 [29]=1600098 [30]=16000a4 [31]=1600153 [32]=1600160 [33]=160016e [34]=160017c [35]=160018a [36]=1600198 [37]=16001a6 [38]=16000b1 [39]=16000b2 [40]=16000b3 [41]=1200045 [42]=140001d [43]=180001d [44]=100001d [45]=1a00002 [46]=1e0001d [47]=1c0001d [48]=200001d 
    checking owl: pri 8 w=160004b stack=-1 title=TWM Icon Manager occupation=1  vs:(x,y)=(0,0) parent_vs:(x,y)=(0,0) Window

    ...

    checking owl: pri 8 w=16000f1 stack=30 title=TWM Icon Manager occupation=4  vs:(x,y)=(0,0) parent_vs:(x,y)=(0,0) Window
    search for owl in stack -> i=49
    ctwm4: /usr/local/src/ctwm-trunk/otp.c:309: OtpCheckConsistencyVS: Assertion `i < nchildren && "Window was not found in stack"' failed.

I don't deeply understand this, but it seems consistent with your idea that
the issues come from OTP making assumptions that do not hold in the case of
multiple displays.  If I also remove both of these assertions at line 308:

    assert(i > stack && "Window not in good place in stack");
    assert(i < nchildren && "Window was not found in stack");

I can then get ctwm to run with no obviously broken behavior.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.