[openssl-project] update on sporadic test failures

Bernd Edlinger bernd.edlinger at hotmail.de
Fri Jan 12 12:56:59 UTC 2018


Hi Richard,

I am not sure if the missing packet may be split between two sysreads,
if that is possible may depend on the linux version.

I used:

Linux version 3.13.0-139-lowlatency (buildd at lgw01-amd64-031) (gcc 
version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) ) #188-Ubuntu SMP PREEMPT 
Tue Jan 9 15:04:54 UTC 2018


However, if I reduce the buffer space, the test fails every time:

diff --git a/util/perl/TLSProxy/Proxy.pm b/util/perl/TLSProxy/Proxy.pm
index 99b0ded..b436388 100644
--- a/util/perl/TLSProxy/Proxy.pm
+++ b/util/perl/TLSProxy/Proxy.pm
@@ -304,12 +304,12 @@ sub clientstart
          }
          foreach my $hand (@ready) {
              if ($hand == $server_sock) {
-                $server_sock->sysread($indata, 16384) or goto END;
+                $server_sock->sysread($indata, 16) or goto END;
                  $indata = $self->process_packet(1, $indata);
                  $client_sock->syswrite($indata);
                  $ctr = 0;
              } elsif ($hand == $client_sock) {
-                $client_sock->sysread($indata, 16384) or goto END;
+                $client_sock->sysread($indata, 16) or goto END;
                  $indata = $self->process_packet(0, $indata);
                  $server_sock->syswrite($indata);
                  $ctr = 0;

I could imagine that the system returns either a partial message
or both at once under stress.


Bernd.


More information about the openssl-project mailing list