Subject NEED HELP: possible bug in packet_receive() method.
Author nitaligavino <Dan.Crea@apropos.com>
Hello All:

I posted this yesterday but did not hear anything so...I really need
to get to the bottom of this as it's a serious stability issue with
our product.

I need some help understanding what is going on here? I seem to have
found a bug in the method packet_receive(...) in file inet.c. There
are some comments about an "error-detection protocol" and sending a
dummy packet to see if the client is still active.

Anyway, what I'm seeing is the following:

Within the packet_receive(...) function there is a loop for(;;) that
is
waiting on a socket select call. What ends up happing however is the
select call is timing out after 60 seconds and the following code is
executed:

packet.p_operation = op_dummy;
if (!send_full (port, &packet))
return FALSE;
continue;

the continue forces a retry which calls select and again waits 60
seconds unit it times out. This loop is never ending so the client
that made the original call is blocked indefinitely. I don't know if
this is a problem in the client code or if the server is not
responding to this dummy packet.

Can someone explain what is supposed to happen here? Is there a
configuration flag that can be changed to prevent this end-less
looping?

Best regards,
Dan