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 |