This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: X widget question


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]