Bug#654783: about test_socket hang

April 16th, 2012 - 05:20 pm ET by Robert Millan | Report spam

Hi,

I found something about test_socket hang. The problem I'm seeing
looks like a race condition. kdump -H yields:

73334 100505 python CALL thr_kill(0x1884e,SIG(null))
73334 100505 python RET thr_kill 0
73334 100505 python CALL thr_exit(0xccab78)
73334 100430 python CALL thr_kill(0x187f9,SIG(null))
73334 100430 python RET thr_kill 0
73334 100430 python CALL poll(0xc6eee0,0x1,0x7d0)

As you can see in this log, thread 100505 sends restart signal to
thread 100430 *BEFORE* thread 100430 has started poll() kernel call.
Then thread 100430 is stuck in poll() with nobody to restart it.

If I hit ^Z, poll is interrupted, then "fg" makes it progress. By
doing this a couple of times I managed to make test_socket finish.
Alternatively, I patched glibc with this workaround (see attachment).
This makes the test finish in about 16 seconds.

Going back to the race between thr_kill() and poll(), any idea what
could be causing this? To begin with I don't even know how to get a
backtrace for the relevant calls :-/

Robert Millan

X-Attachment-Id: f_h140jkrl0

SW5kZXg6IGVnbGliYy0yLjEzL2xpbnV4dGhyZWFkcy9tYW5hZ2VyLmMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
ZWdsaWJjLTIuMTMub3JpZy9saW51eHRocmVhZHMvbWFuYWdlci5jCTIwMTItMDQtMTYgMjE6MDM6
NTUuMzkzMzY2NjkzICswMjAwCisrKyBlZ2xpYmMtMi4xMy9saW51eHRocmVhZHMvbWFuYWdlci5j
CTIwMTItMDQtMTYgMjE6MDM6NTUuNzA4MzY0Nzc4ICswMjAwCkBAIC0xNDksNyArMTQ5LDcgQEAK
ICAgdWZkLmV2ZW50cyA9IFBPTExJTjsKICAgLyogRW50ZXIgc2VydmVyIGxvb3AgKi8KICAgd2hp
bGUoMSkgewotICAgIG4gPSBfX3BvbGwoJnVmZCwgMSwgMjAwMCk7CisgICAgbiA9IF9fcG9sbCgm
dWZkLCAxLCAyKTsKIAogI2lmIDAKICAgICAvKiBpZmYgdGhlIG1haW4gdGhyZWFkIHRlcm1pbmF0
ZWQgYWJub3JtYWxseSwgdGhlIHNpZ25hbCBzaG91bGQga2lsbCBhbGwgdGhyZWFkcyBhbHJlYWR5
ICovCg=--14dae934097ba7678404bdd23727--



To UNSUBSCRIBE, email to debian-bugs-rc-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
email Follow the discussionReplies 11 repliesReplies Make a reply

Replies

#1 Steven Chamberlain
April 17th, 2012 - 10:50 pm ET | Report spam
On 16/04/12 22:08, Robert Millan wrote:
If I hit ^Z, poll is interrupted, then "fg" makes it progress. By
doing this a couple of times I managed to make test_socket finish.
Alternatively, I patched glibc with this workaround (see attachment).
This makes the test finish in about 16 seconds.



Strange, the workaround hasn't really changed anything for me on
kfreebsd-i386: test_socket still hangs some of the time. When that
happens the ^Z / fg trick doesn't help me.

Regards,
Steven Chamberlain




To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact

Similar topics