diff options
author | Eric Wong <normalperson@yhbt.net> | 2013-02-11 02:07:41 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2013-02-11 09:41:32 +0000 |
commit | f54e27e0ec0a520c0a079d6e8428eeefdcd366ab (patch) | |
tree | 86145efbbc12cca3746d5562534a22cb7cb60b6d | |
parent | 384c801cced851e782cbe94b548a31b1deaa70f3 (diff) | |
download | cmogstored-f54e27e0ec0a520c0a079d6e8428eeefdcd366ab.tar.gz |
Use SO_REUSEADDR, since Linux requires both the new program (cmogstored) and this test both use SO_REUSEADDR for SO_REUSEADDR to be effective. Also, minimize the window for port conflicts. While there are hard-to-avoid race windows for conflicts when binding random ports, we can minimize those windows by holding those ports open in the parent as long as possible.
-rw-r--r-- | test/mogilefs_integration.perl | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/test/mogilefs_integration.perl b/test/mogilefs_integration.perl index dbdbb63..aa55df9 100644 --- a/test/mogilefs_integration.perl +++ b/test/mogilefs_integration.perl @@ -57,7 +57,7 @@ my %lopts = ( LocalAddr => $TEST_HOST, LocalPort => 0, Proto => "tcp", - ReuseAddr => 0, + ReuseAddr => 1, Listen => 1024 ); @@ -70,13 +70,12 @@ my $mgmt_port = $mgmt->sockport; my $http = IO::Socket::INET->new(%lopts); my $http_host = $http->sockhost; my $http_port = $http->sockport; -$mgmt = $mgmt_host . ':' . $mgmt_port; $tracker = $tracker_host . ':' . $tracker_port; -$http = $http_host . ':' . $http_port; $mogilefsd_pid = fork; fail("fork for mogilefsd failed: $!") unless defined $mogilefsd_pid; if ($mogilefsd_pid == 0) { + $http = $mgmt = undef; my $mogilefsd_conf = "$docroot/mogilefsd.conf"; open(my $fh, ">", $mogilefsd_conf); $fh or die "failed to open $mogilefsd_conf: $!"; @@ -110,6 +109,8 @@ mogadm(qw/device add localhost dev2/); ok(mkdir("$docroot/dev1"), "mkdir $docroot/dev1"); ok(mkdir("$docroot/dev2"), "mkdir $docroot/dev2"); +$mgmt = $mgmt_host . ':' . $mgmt_port; +$http = $http_host . ':' . $http_port; $cmogstored_pid = fork; fail("fork for cmogstored failed: $!") unless defined $cmogstored_pid; if ($cmogstored_pid == 0) { |