[Development] What to do if tests hang on the CI and I can't reproduce that locally?

Ilya Fedin fedin-ilja2010 at ya.ru
Tue May 14 22:24:12 CEST 2024


On Tue, 14 May 2024 12:59:29 -0700
Thiago Macieira <thiago.macieira at intel.com> wrote:

> Assuming that Canonical did not patch libgdk,

Well, that is a very optimistic assumption:
http://archive.ubuntu.com/ubuntu/pool/main/g/gtk+3.0/gtk+3.0_3.24.33-1ubuntu2.1.debian.tar.xz

I see 24 pathes in there.

> this is stuck trying to 
> XInternAtom for "_GTK_EDGE_CONSTRAINTS", reacting to an xevent of
> type PropertyNotify.
> https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/gdk/x11/gdkdisplay-x11.c#L1068
> 
> I can't tell you why it's stuck. Why would the X server not send a
> reply to that?
> 

I don't know any reason for _GTK_EDGE_CONSTRAINTS exactly but generally
I saw reports X11 deliberately not answering to clients using GLX when
on another tty. I'm doubt that's the case here though given that it
doesn't hang with other patches. The only theory I can wrap my head of
is that querying RESOURCE_MANAGER property momentally after it changes
breaks X server somehow. I tried to queue reading the property in event
loop to delay it a bit in earlier versions of the patch, I also tried
replacing blocking wait for more bytes with event loop based approach,
none of which helped.

The only thing I haven't tried is delaying reading with a second or
something like that. Maybe that will make GTK doing its things before
Qt does and X server wouldn't react in such a way.

Although I remember that Liang Qi once reproduced it only with
`-sanitize address` (while it was ok without it for him, too). So
perhaps there's a chance ASAN breaks poll() in some way? And I guess
it's possible nothing will help then...


More information about the Development mailing list