Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TestHappyEyeballsStreamDialer_DialStream/IP_order fails sometimes #277

Open
amircybersec opened this issue Sep 6, 2024 · 1 comment · May be fixed by #320
Open

TestHappyEyeballsStreamDialer_DialStream/IP_order fails sometimes #277

amircybersec opened this issue Sep 6, 2024 · 1 comment · May be fixed by #320
Labels
bug Something isn't working

Comments

@amircybersec
Copy link
Contributor

I was re-running the jobs to reproduce issue reported here: #276

but the tests are sometimes throwing a different error. @fortuna do you know why this happyeyeballs_test.go:252 test fails?

https://github.com/Jigsaw-Code/outline-sdk/actions/runs/10733360009/job/29798026057?pr=272

##[debug]Evaluating condition for step: 'Test SDK'
##[debug]Evaluating: success()
##[debug]Evaluating success:
##[debug]=> true
##[debug]Result: true
##[debug]Starting: Test SDK
##[debug]Loading inputs
##[debug]Loading env
Run go test -tags nettest -race -bench '.' ./... -benchtime=100ms
##[debug]/bin/bash -e /Users/runner/work/_temp/44[2](https://github.com/Jigsaw-Code/outline-sdk/actions/runs/10733360009/job/29798026057?pr=272#step:11:2)0ef1c-7f75-4d11-a385-5ff70f5c1616.sh
PASS
ok  	github.com/Jigsaw-Code/outline-sdk/dns	1.604s
goos: darwin
goarch: arm64
pkg: github.com/Jigsaw-Code/outline-sdk/internal/slicepool
BenchmarkPool-[3](https://github.com/Jigsaw-Code/outline-sdk/actions/runs/10733360009/job/29798026057?pr=272#step:11:3)   	  214087	       648.8 ns/op
PASS
ok  	github.com/Jigsaw-Code/outline-sdk/internal/slicepool	1.312s
PASS
ok  	github.com/Jigsaw-Code/outline-sdk/network	1.13[4](https://github.com/Jigsaw-Code/outline-sdk/actions/runs/10733360009/job/29798026057?pr=272#step:11:4)s
PASS
ok  	github.com/Jigsaw-Code/outline-sdk/network/dnstruncate	1.133s
PASS
ok  	github.com/Jigsaw-Code/outline-sdk/network/lwip2transport	1.19[5](https://github.com/Jigsaw-Code/outline-sdk/actions/runs/10733360009/job/29798026057?pr=272#step:11:5)s
--- FAIL: TestHappyEyeballsStreamDialer_DialStream (0.09s)
    --- FAIL: TestHappyEyeballsStreamDialer_DialStream/IP_order (0.00s)
        happyeyeballs_test.go:252: 
            	Error Trace:	/Users/runner/work/outline-sdk/outline-sdk/transport/happyeyeballs_test.go:252
            	Error:      	Not equal: 
            	            	expected: []string{"[::1]:53", "1.1.1.1:53", "[::2]:53", "2.2.2.2:53", "[::3]:53", "3.3.3.3:53"}
            	            	actual  : []string{"[::1]:53", "[::2]:53", "[::3]:53", "1.1.1.1:53", "2.2.2.2:53", "3.3.3.3:53"}
            	            	
            	            	Diff:
            	            	--- Expected
            	            	+++ Actual
            	            	@@ -2,[6](https://github.com/Jigsaw-Code/outline-sdk/actions/runs/10733360009/job/29798026057?pr=272#step:11:6) +2,6 @@
            	            	  (string) (len=8) "[::1]:53",
            	            	+ (string) (len=8) "[::2]:53",
            	            	+ (string) (len=8) "[::3]:53",
            	            	  (string) (len=10) "1.1.1.1:53",
            	            	- (string) (len=8) "[::2]:53",
            	            	  (string) (len=10) "2.2.2.2:53",
            	            	- (string) (len=8) "[::3]:53",
            	            	  (string) (len=10) "3.3.3.3:53"
            	Test:       	TestHappyEyeballsStreamDialer_DialStream/IP_order
FAIL
exit status 1
FAIL	github.com/Jigsaw-Code/outline-sdk/transport	0.164s
goos: darwin
goarch: arm64
pkg: github.com/Jigsaw-Code/outline-sdk/transport/shadowsocks
BenchmarkShadowsocksPacketListener_ListenPacket-3   	     362	    29623[7](https://github.com/Jigsaw-Code/outline-sdk/actions/runs/10733360009/job/29798026057?pr=272#step:11:7) ns/op
--- BENCH: BenchmarkShadowsocksPacketListener_ListenPacket-3
    packet_listener_test.go:90: Starting SS UDP echo proxy at 127.0.0.1:53325
    packet_listener_test.go:101: Failed to read from UDP conn: read udp 127.0.0.1:53325: use of closed network connection
    packet_listener_test.go:90: Starting SS UDP echo proxy at 127.0.0.1:56215
    packet_listener_test.go:101: Failed to read from UDP conn: read udp 127.0.0.1:56215: use of closed network connection
    packet_listener_test.go:90: Starting SS UDP echo proxy at 127.0.0.1:49732
    packet_listener_test.go:101: Failed to read from UDP conn: read udp 127.0.0.1:49732: use of closed network connection
BenchmarkPack-3                                     	    2596	     47176 ns/op	       246.1 mbps
BenchmarkRandomSaltGenerator-3                      	  22975[8](https://github.com/Jigsaw-Code/outline-sdk/actions/runs/10733360009/job/29798026057?pr=272#step:11:8)	       501.3 ns/op
BenchmarkStreamDialer_Dial-3                        	     618	    211334 ns/op
--- BENCH: BenchmarkStreamDialer_Dial-3
    stream_dialer_test.go:1[9](https://github.com/Jigsaw-Code/outline-sdk/actions/runs/10733360009/job/29798026057?pr=272#step:11:9)6: Starting SS TCP echo proxy at 127.0.0.1:49199
    stream_dialer_test.go:206: AcceptTCP failed: accept tcp 127.0.0.1:49199: use of closed network connection
    stream_dialer_test.go:196: Starting SS TCP echo proxy at 127.0.0.1:49201
    stream_dialer_test.go:206: AcceptTCP failed: accept tcp 127.0.0.1:49201: use of closed network connection
    stream_dialer_test.go:196: Starting SS TCP echo proxy at 127.0.0.1:49203
    stream_dialer_test.go:206: AcceptTCP failed: accept tcp 127.0.0.1:49203: use of closed network connection
BenchmarkWriter-3                                   	10639908	        [14](https://github.com/Jigsaw-Code/outline-sdk/actions/runs/10733360009/job/29798026057?pr=272#step:11:15).85 ns/op	       538.6 mbps
PASS
ok  	github.com/Jigsaw-Code/outline-sdk/transport/shadowsocks	2.[15](https://github.com/Jigsaw-Code/outline-sdk/actions/runs/10733360009/job/29798026057?pr=272#step:11:16)1s
goos: darwin
goarch: arm64
pkg: github.com/Jigsaw-Code/outline-sdk/transport/socks5
BenchmarkReadAddr/IPv4-3         	  [17](https://github.com/Jigsaw-Code/outline-sdk/actions/runs/10733360009/job/29798026057?pr=272#step:11:18)0833	       773.7 ns/op
BenchmarkReadAddr/IPv6-3         	  141547	       903.7 ns/op
BenchmarkReadAddr/Domain-3       	  145312	       914.6 ns/op
PASS
ok  	github.com/Jigsaw-Code/outline-sdk/transport/socks5	1.467s
goos: darwin
goarch: arm64
pkg: github.com/Jigsaw-Code/outline-sdk/transport/split
BenchmarkReadFrom-3   	   151[27](https://github.com/Jigsaw-Code/outline-sdk/actions/runs/10733360009/job/29798026057?pr=272#step:11:28)	      8692 ns/op
PASS
ok  	github.com/Jigsaw-Code/outline-sdk/transport/split	1.273s
PASS
ok  	github.com/Jigsaw-Code/outline-sdk/transport/tls	2.880s
PASS
ok  	github.com/Jigsaw-Code/outline-sdk/transport/tlsfrag	1.090s
FAIL
Error: Process completed with exit code 1.
##[debug]Finishing: Test SDK
@fortuna
Copy link
Contributor

fortuna commented Sep 6, 2024

I've seen that before. This test has a race condition too. Depending on which case triggers in the select inn the Happy Eyeballs, we get different results. We probably need to tweak the test or the algorithm

@sbruens sbruens added the bug Something isn't working label Sep 10, 2024
@fortuna fortuna linked a pull request Nov 7, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants