querying properties in tight loop hangs

Bug #1266689 reported by Dan Chapman  on 2014-01-07
This bug affects 1 person
Affects Status Importance Assigned to Milestone
autopilot-gtk (Ubuntu)
Martin Pitt

Bug Description

This is a continuation from bug 1261685

It would appear this bug is still occurring after the recent fix. After trying to simplify the cause of the problem it appears to be caused when running a loop of repeated calls on the same/group of objects. I tried to dig into a bit further but with little success, attached is a simplified script to reproduce locally

Related branches

Dan Chapman  (dpniel) wrote :
Martin Pitt (pitti) wrote :

Thanks! I'll add some stress tests to the test suite like in your test script (but use the existing tests/hello_color.py for simplicity). With something like http://paste.ubuntu.com/6708207/ I reliably get a crash at the 57th iteration, even with a "sleep(0.3)".

Changed in autopilot-gtk (Ubuntu):
assignee: nobody → Martin Pitt (pitti)
importance: Undecided → High
status: New → Triaged
milestone: none → ubuntu-14.01
status: Triaged → In Progress
Dan Chapman  (dpniel) wrote :

No problem :-) Yes I should have switched it to use the existing tests as it turned out quite simple.

Initially I started with recreating a simplified version of the point-of-fail in the ubiquity tests, hence progressbar and 3 dialogs and worked from there


Martin Pitt (pitti) wrote :

I can't actually get this to crash. What I see is that the test application greys out (i. e. no UI response), and the test aborts with a DBus.NoReply error; but I don't see a SIGSEGV anywhere in dmesg, apport, or an attached gdb. Does that match what you see?

Curiously enough, it seems that the g_warning → g_debug change from bug 1250452 fixes this. It seems all this WARNING spewage might take too much time to get fed into autopilot's stdout/stderr capturing buffers, so the GetState query times out at some point? This also explains why it works better with a "sleep", which gives the out/err capturing some breathing room.

summary: - SIGSEGV in GtkNode::MatchStringProperty
+ querying properties in tight loop hangs
Dan Chapman  (dpniel) wrote :

I can confirm it all seems to be working now with the changes in the linked branch, I no longer get the greyed out hanging windows and all seems to be fine in the ubiquity runner after 2 runs on Ubuntu and 1 on Edubuntu.

+1 from me :-)

Martin Pitt (pitti) on 2014-01-07
Changed in autopilot-gtk (Ubuntu):
status: In Progress → Fix Committed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package autopilot-gtk - 1.4+14.04.20140107-0ubuntu2

autopilot-gtk (1.4+14.04.20140107-0ubuntu2) trusty; urgency=medium

  * No-change rebuild against trusty's xpathselect. The previous auto-upload
    was built against the PPA's xpathselect which isn't in trusty yet, making
    this uninstallable.
 -- Martin Pitt <email address hidden> Wed, 08 Jan 2014 07:30:56 +0100

Changed in autopilot-gtk (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers