|
From: <php...@li...> - 2008-11-13 19:09:14
|
Hi, thank you very much for the bug report. Your script contains the following code: java(...) wait(more than 30sec) java(...) Since the bridge avoids write/write/read to accommodate BSD's socket implementation, it has no chance to do a context switch before the ContextFactory times out after 30 seconds, checked every 10 minutes. Hence the spurious protocol error and the exceptions. Since John Nagle has fixed this TCP problem and all operating systems (except *BSD and probably OSX) seem to contain this fix, I will revert this change. The delayed ack will make the bridge slower on *BSD and OSX (~500ms per request), but I don't see a way to fix this on app level without introducing another network round-trip, which will make the bridge slower on *all* operating systems.[3] The change will be in PHP/Java Bridge version 5.3.3, which will be released this week. Again, thank you very much for reporting this problem! Regards, Jost Boekemeier [1] A program demonstrating this problem: http://lists.freebsd.org/pipermail/freebsd-bugs/2006-April/018144.html [2] John Nagle's explanation: http://developers.slashdot.org/comments.pl?sid=174457&cid=14515105 and http://freebsd.monkey.org/freebsd-net/200601/msg00156.html [3] As far as I know osx and bsd don't have a modern java environment, anyway. Users who want to run the bridge on these os may as well use unix domain sockets instead, see the README for details. |