syswrite() in _send_request_to_shard returns 6963 bytes written, so it seems syswrite() believes the packet is being sent to the server ok.
$check_val = $client_sock->sysread( $buf, 4 ); ...always returns 4 in serve(), so at least the start of the packet looks good, so it passes the two tests on $check_val. $len = unpack( 'N', $buf ); ...returns 6959 (6963-4 for the check_val) which matches what the client is sending, so we know unpack is brimming with goodness. could be autoflush or some such buffering bugger-up. /me starts googling.
