This is the mail archive of the
mailing list for the Cygwin project.
Re: X widget question
- From: Marco Atzeri <marco dot atzeri at gmail dot com>
- To: cygwin at cygwin dot com
- Date: Tue, 22 Mar 2016 12:30:12 +0100
- Subject: Re: X widget question
- Authentication-results: sourceware.org; auth=none
- References: <56EE7412 dot 8080708 at gmail dot com> <56F11C12 dot 80900 at dronecode dot org dot uk>
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
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...
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple