Skip to content

Commit 270f8fe

Browse files
committed
simulator: drop isDialError() alltogether
Will come up with a workable approach.
1 parent a382821 commit 270f8fe

File tree

3 files changed

+7
-19
lines changed

3 files changed

+7
-19
lines changed

simulator/miner.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,7 @@ func (s *StratumMiner) Simulate(ctx context.Context, dst string) error {
4444
conn.Close()
4545
}
4646

47-
// TODO Dropping isDialError() as an error as it's causing too many io-timeout messages.
48-
if isSoftError(err, "connect: connection refused") || isDialError(err) {
47+
if isSoftError(err, "connect: connection refused") {
4948
return nil
5049
}
5150
return err

simulator/simulator.go

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ func (s *TCPConnectSimulator) Simulate(ctx context.Context, dst string) error {
7272
if conn != nil {
7373
conn.Close()
7474
}
75-
// TODO: Dropping isDialError() check, as it's causing too many io-timeout messages.
76-
if err != nil && !isSoftError(err, "connect: connection refused") && !isDialError(err) {
75+
// Ignore "connection refused" and timeouts.
76+
if err != nil && !isSoftError(err, "connect: connection refused") {
7777
return err
7878
}
7979
return nil
@@ -110,25 +110,14 @@ func (s *DNSResolveSimulator) Simulate(ctx context.Context, dst string) error {
110110
host = utils.FQDN(host)
111111

112112
_, err := r.LookupHost(ctx, host)
113-
// Ignore "no such host". Will ignore timeouts as well, so check for dial errors.
114-
// TODO: Dropping isDialError() check, as it's causing too many io-timeout messages.
115-
if err != nil && !isSoftError(err, "no such host") && !isDialError(err) {
113+
// Ignore "no such host" and timeouts.
114+
if err != nil && !isSoftError(err, "no such host") {
116115
return err
117116
}
118117

119118
return nil
120119
}
121120

122-
// isDialError scans an error message for signs of a dial error, returning a boolean.
123-
func isDialError(err error) bool {
124-
// Errors we're after are of the form:
125-
// lookup abc.sandbox.alphasoc.xyz. on A.B.C.D:53: dial udp E.F.G.H:0->A.B.C.D:53: i/o timeout
126-
// TODO: something more robust? I don't want to double-dial though.
127-
return isTimeout(err) &&
128-
strings.Contains(err.Error(), "dial") &&
129-
strings.Count(err.Error(), "->") == 1
130-
}
131-
132121
func isTimeout(err error) bool {
133122
netErr, ok := err.(net.Error)
134123
if !ok {

simulator/tunnel-dns.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ func (s *Tunnel) Simulate(ctx context.Context, host string) error {
5656
defer cancelFn()
5757
_, err := r.LookupTXT(ctx, fmt.Sprintf("%s.%s", label, host))
5858

59-
// Ignore "no such host". Will ignore timeouts as well, so check for dial errors.
60-
if err != nil && !isSoftError(err, "no such host") && !isDialError(err) {
59+
// Ignore "no such host". Will ignore timeouts as well.
60+
if err != nil && !isSoftError(err, "no such host") {
6161
return err
6262
}
6363

0 commit comments

Comments
 (0)