Re: [Sablevm-developer] SableVM hangs during database connection
Brought to you by:
egagnon
|
From: Roman K. <ro...@on...> - 2004-06-17 23:26:50
|
Hi,
> >>>>I found another issue, this time related to a database connection with
> >>>>MySQL. During sending an update, the hole connection seems to hang
> >>>>infinitely.
> >>>
> >>>
> >>>Update: I've done a lot of tests, during which I got it running on
> >>>Linux. I used a new MySQL driver for this. Unfortunately my testprog
> >>>does still not run under FreeBSD. I will attach my testprog.
> >>
> I have no idea either, but it's apparently another threading bug. If
> you have linuxthreads available for FreeBSD and it's not a pain to use
> them, that would be worth trying out.
Grzegorz Prokopski has helped me to narrow the bug. It seems to be an
issue in Classpaths network handling. I'll send a new test-case: a
simple server and a simple client. When trying to send big arrays >22k,
the network layer hangs. At least in FreeBSD.
Running sablevm through strace gives the following:
(last few lines only)
write(2, "sending 220000 bytes...\n", 24) = 24
break(0x9408000) = 0
sendto(6, "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1"...,
220000, 0, NULL, 0) = 220000
break(0x93d2000) = 0
write(2, "receiving status bytes...\n", 26) = 26
recvfrom(6, 0x91b2070, 1, 0, 0, 0) = -1 EAGAIN (Resource
temporarily unavailable)
poll([{fd=6, events=POLLRDNORM}], 1, 0) = 0
poll(
Grzegorz Prokopski assumed, that Classpath does not handle EAGAIN
correcly, and doesn't try to recvfrom again, as it should.
I hope this is helpful.
/Roman
|