X widget question

Marco Atzeri marco.atzeri@gmail.com
Tue Mar 22 11:30:00 GMT 2016


On 22/03/2016 11:18, Jon Turney wrote:
> On 20/03/2016 09:57, Marco Atzeri wrote:
>> I have finally identified where ncview was
>> segfaulting on X86_64
>>
>> The solution was to reverse the order of destruction
>> for a chain of widgets
>
> Nice to see that you have resolved this.
>
> It's not clear from what you write if you are sure there is an
> undocumented ordering constraint (which just happens to not crash on
> 32-bit), or if reversing the ordering just happens to make things not
> crash on 64-bit

I suspect the second:
Reversing the order just don't trigger the crash as no reformatting of
the constraint chain is needed.
As ncview view works on other 64 bit platform, it seems a
cygwin specific issue.

Debugging the issue I always noted mismatch of 16 bytes in related
  pointers. But as I know little of libXt internals I could 
misunderstand it.

>> The segfault was inside Xlib when managing the constraints.
>>
>> As the segfault did not happened on i686, is it possible
>> that is a race inside Xlib  ?
>> I have not found in the X Documentation nothing about
>> requested order of widget destruction in this case.
>
> Possible, yes.  It seems more likely that there is a documentation
> error, or a bug in handling widgets which share a constraint being
> destroyed out of order.
>
> I'm afraid finding someone who cares greatly about libXt will be hard,
> but do you think it would now be possible to craft a test case which
> demonstrates the problem?

I was considering it, as ncview is likely not the only program
with this potential problem.
Time to learn a bit of X programming...

Regards
Marco



--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list