That bug that no-one else was able to reproduce came back for long enough for me to 
investigate it.  I think that's good... :-p

The issue: when reading a trailing field, on my particular system (java 1.4.1_01, 
linux), in ReceiveInputStream.read(Byte[], int, int) the call to in.read(Byte[], int, 
int) will hang if the accumulator is empty, but more data is still to come, and of 
course die when the stream is ripped away from it when it times out.

This, of course, only manifests itself in certain situations, but I'm not sure of 
exactly which race is happening... it seems to be that python is feeding the node too 
slowly, or java is processing the data too fast (I assume the former, since it doesn't 
occour if you have a faster system than mine, it seems, and python seems to buffer 
sends in weird ways that I don't really undersatnd).

The weird thing: adding Thread.sleep(100) after the aforementioned read() causes it to 
work, but of course this si a stupid fix, and so I've been attemption to chase up a 
real fix, until I realised that I'm too tired to care right now, and I just want to 
insert my site and go to sleep :-p.  I suspect, tho, someone who actually understands 
the code in question, as opposed to me just sorta pretending to and hoping that my 
hacks help, should be able to fix this relatively quickly, or at least suggest one for 
me to implent :)

        -- fish

-- 
I can me your wish come true

Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to