Giter Club home page Giter Club logo

Comments (9)

cflewis avatar cflewis commented on May 3, 2024

Interesting.
Do you have AWS/GCP creds? They're going to be required if you run tests without -short. We've been using vgo internally and make no claims that go is going to work. What happens if you use vgo instead?

Ignore the test failure, I think #84 fixes it.

$ time vgo test $(vgo list ./... | grep -v wire)
?   	github.com/google/go-cloud/aws	[no test files]
ok  	github.com/google/go-cloud/aws/awscloud	(cached) [no tests to run]
ok  	github.com/google/go-cloud/blob	(cached)
?   	github.com/google/go-cloud/blob/driver	[no test files]
ok  	github.com/google/go-cloud/blob/fileblob	(cached)
ok  	github.com/google/go-cloud/blob/gcsblob	(cached)
ok  	github.com/google/go-cloud/blob/s3blob	(cached)
?   	github.com/google/go-cloud/gcp	[no test files]
ok  	github.com/google/go-cloud/gcp/gcpcloud	(cached) [no tests to run]
ok  	github.com/google/go-cloud/health	(cached)
ok  	github.com/google/go-cloud/health/sqlhealth	(cached)
ok  	github.com/google/go-cloud/mysql/cloudmysql	(cached) [no tests to run]
ok  	github.com/google/go-cloud/mysql/rdsmysql	(cached) [no tests to run]
ok  	github.com/google/go-cloud/requestlog	(cached)
ok  	github.com/google/go-cloud/runtimevar	(cached)
?   	github.com/google/go-cloud/runtimevar/driver	[no test files]
ok  	github.com/google/go-cloud/runtimevar/filevar	(cached)
ok  	github.com/google/go-cloud/runtimevar/paramstore	6.290s
--- FAIL: TestInitialStringWatch (0.38s)
	runtimeconfigurator_test.go:136: Golden file is at testdata/initial-string-watch.replay
	runtimeconfigurator_test.go:136: Recording into golden file
	runtimeconfigurator_test.go:136: Proto begins as name:"projects//configs/runtimeconfigurator_test" 
	runtimeconfigurator_test.go:136: Proto ends as name:"projects/REDACTED/configs/runtimeconfigurator_test" 
	runtimeconfigurator_test.go:136: Proto begins as 
	runtimeconfigurator_test.go:136: Proto ends as 
	runtimeconfigurator_test.go:136: Proto begins as parent:"projects/" config:<name:"projects//configs/runtimeconfigurator_test" description:"Config for test variables created by runtimeconfigurator_test.go" > 
	runtimeconfigurator_test.go:136: Proto ends as parent:"projects/REDACTED" config:<name:"projects/REDACTED/configs/runtimeconfigurator_test" description:"Config for test variables created by runtimeconfigurator_test.go" > 
	runtimeconfigurator_test.go:136: Proto begins as 
	runtimeconfigurator_test.go:136: Proto ends as 
	runtimeconfigurator_test.go:152: unable to create parent config for projects//configs/runtimeconfigurator_test/variables/TestStringWatch: rpc error: code = InvalidArgument desc = Invalid resource field value in the request.
--- FAIL: TestInitialJSONWatch (0.22s)
	runtimeconfigurator_test.go:136: Golden file is at testdata/initial-json-watch.replay
	runtimeconfigurator_test.go:136: Recording into golden file
	runtimeconfigurator_test.go:136: Proto begins as name:"projects//configs/runtimeconfigurator_test" 
	runtimeconfigurator_test.go:136: Proto ends as name:"projects/REDACTED/configs/runtimeconfigurator_test" 
	runtimeconfigurator_test.go:136: Proto begins as 
	runtimeconfigurator_test.go:136: Proto ends as 
	runtimeconfigurator_test.go:136: Proto begins as parent:"projects/" config:<name:"projects//configs/runtimeconfigurator_test" description:"Config for test variables created by runtimeconfigurator_test.go" > 
	runtimeconfigurator_test.go:136: Proto ends as parent:"projects/REDACTED" config:<name:"projects/REDACTED/configs/runtimeconfigurator_test" description:"Config for test variables created by runtimeconfigurator_test.go" > 
	runtimeconfigurator_test.go:136: Proto begins as 
	runtimeconfigurator_test.go:136: Proto ends as 
	runtimeconfigurator_test.go:198: unable to create parent config for projects//configs/runtimeconfigurator_test/variables/TestJSONWatch: rpc error: code = InvalidArgument desc = Invalid resource field value in the request.
FAIL
FAIL	github.com/google/go-cloud/runtimevar/runtimeconfigurator	1.021s
?   	github.com/google/go-cloud/server	[no test files]
?   	github.com/google/go-cloud/server/sdserver	[no test files]
?   	github.com/google/go-cloud/server/xrayserver	[no test files]
?   	github.com/google/go-cloud/testing/replay	[no test files]
?   	github.com/google/go-cloud/tests/gcp/app	[no test files]
?   	github.com/google/go-cloud/tests/gcp/test-driver	[no test files]
Command exited with non-zero status 1
4.88user 1.18system 0:07.84elapsed 77%CPU (0avgtext+0avgdata 194972maxresident)k
0inputs+51072outputs (0major+212476minor)pagefaults 0swaps

from go-cloud.

cflewis avatar cflewis commented on May 3, 2024

If creds aren't available I would expect the test suite to barf.

Can you also try running with -v so we can try to figure out what test might be hanging?

from go-cloud.

enocom avatar enocom commented on May 3, 2024

Running it right now. I'll update the issue when I see where the hanging occurs.

I think we should add instructions to the README on how to run tests, both with and without the -short flag, what credentials are required and where, etc.

from go-cloud.

enocom avatar enocom commented on May 3, 2024

Here is the test output for the two tests that time out after 10 minutes of no activity.

The problems seem to be that the following invocations assume a healthy connection and otherwise hang indefinitely:

  1. blob/s3blob/s3blob_test.go:292, and
  2. runtimevar/paramstore/paramstore_test.go:178.

The tests should fail quickly on a bad connection or missing configuration.

PASS
ok      github.com/google/go-cloud/blob/gcsblob 0.071s

2018/06/12 12:09:36 Golden file is at testdata/blob
2018/06/12 12:09:36 Recording into golden file
=== RUN   TestNewBucketNaming
--- PASS: TestNewBucketNaming (0.00s)
=== RUN   TestNewWriterObjectNaming
--- PASS: TestNewWriterObjectNaming (0.00s)
=== RUN   TestRead
--- FAIL: TestRead (120.36s)
        s3blob_test.go:153: error uploading test object: NoCredentialProviders: no valid providers in chain. Deprecated.
                        For verbose messaging see aws.Config.CredentialsChainVerboseErrors
=== RUN   TestWrite
--- FAIL: TestWrite (229.71s)
        s3blob_test.go:248: error closing writer: NoCredentialProviders: no valid providers in chain. Deprecated.
                        For verbose messaging see aws.Config.CredentialsChainVerboseErrors
        s3blob_test.go:230: error deleting object: NoCredentialProviders: no valid providers in chain. Deprecated.
                        For verbose messaging see aws.Config.CredentialsChainVerboseErrors
=== RUN   TestCloseWithoutWrite
SIGQUIT: quit
PC=0x105bbf3 m=0 sigcode=0

goroutine 0 [idle]:
runtime.mach_semaphore_timedwait(0x1d00002603, 0x3b95f468, 0x7ffeefbff75c, 0xc40000001d, 0x3b95f468efbff778, 0x1b1e8a0, 0x7ffeefbff790, 0x1056263, 0x6fc1ed668, 0x1035432, ...)
        /usr/local/go/src/runtime/sys_darwin_amd64.s:550 +0x13
runtime.semasleep1(0x6fc1ed668, 0x1035432)
        /usr/local/go/src/runtime/os_darwin.go:427 +0xdf
runtime.semasleep.func1()
        /usr/local/go/src/runtime/os_darwin.go:457 +0x33
runtime.systemstack(0x0)
        /usr/local/go/src/runtime/asm_amd64.s:409 +0x79
runtime.mstart()
        /usr/local/go/src/runtime/proc.go:1175

goroutine 51 [syscall]:
runtime.notetsleepg(0x1b224e0, 0x6fc1ed668, 0x1)
        /usr/local/go/src/runtime/lock_sema.go:280 +0x4b fp=0xc42038a760 sp=0xc42038a720 pc=0x10113db
runtime.timerproc(0x1b224c0)
        /usr/local/go/src/runtime/time.go:261 +0x2e7 fp=0xc42038a7d8 sp=0xc42038a760 pc=0x104ad07
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:2361 +0x1 fp=0xc42038a7e0 sp=0xc42038a7d8 pc=0x105a611
created by runtime.(*timersBucket).addtimerLocked
        /usr/local/go/src/runtime/time.go:160 +0x107

goroutine 1 [chan receive, 5 minutes]:
testing.(*T).Run(0xc4203521e0, 0x17347be, 0x15, 0x1752a20, 0x1086400)
        /usr/local/go/src/testing/testing.go:825 +0x301
testing.runTests.func1(0xc420226000)
        /usr/local/go/src/testing/testing.go:1063 +0x64
testing.tRunner(0xc420226000, 0xc4201abd28)
        /usr/local/go/src/testing/testing.go:777 +0xd0
testing.runTests(0xc420205460, 0x1b13c60, 0x6, 0x6, 0x1b1eda0)
        /usr/local/go/src/testing/testing.go:1061 +0x2c4
testing.(*M).Run(0xc420112100, 0x0)
        /usr/local/go/src/testing/testing.go:978 +0x171
github.com/google/go-cloud/blob/s3blob_test.TestMain(0xc420112100)
        /Users/enocom/go/src/github.com/go-cloud/blob/s3blob/s3blob_test.go:85 +0x38c
main.main()
        _testmain.go:52 +0x151

goroutine 80 [select]:
net/http.(*Transport).getConn(0x1b147e0, 0xc4202dc3c0, 0x0, 0xc420026800, 0x4, 0xc420334100, 0x12, 0x0, 0x0, 0x4)
        /usr/local/go/src/net/http/transport.go:962 +0x558
net/http.(*Transport).RoundTrip(0x1b147e0, 0xc420322900, 0x0, 0x0, 0x1000)
        /usr/local/go/src/net/http/transport.go:409 +0x632
github.com/dnaeon/go-vcr/recorder.requestHandler(0xc420322900, 0xc4200747e0, 0x0, 0x17d52c0, 0x1b147e0, 0xf2, 0xc42039cc78, 0x100d799)
        /Users/enocom/go/src/v/github.com/dnaeon/[email protected]/recorder/recorder.go:102 +0x27f
github.com/dnaeon/go-vcr/recorder.(*Recorder).RoundTrip(0xc420204fe0, 0xc420322900, 0xc420204fe0, 0x0, 0x0)
        /Users/enocom/go/src/v/github.com/dnaeon/[email protected]/recorder/recorder.go:192 +0x75
net/http.send(0xc420322900, 0x17d4a20, 0xc420204fe0, 0x0, 0x0, 0x0, 0xc420374088, 0xb, 0xc42039ce10, 0x1)
        /usr/local/go/src/net/http/client.go:252 +0x185
net/http.(*Client).send(0xc4201b2db0, 0xc420322900, 0x0, 0x0, 0x0, 0xc420374088, 0x0, 0x1, 0xc420370f20)
        /usr/local/go/src/net/http/client.go:176 +0xfa
net/http.(*Client).Do(0xc4201b2db0, 0xc420322900, 0xc42039cff0, 0x10, 0xc42039cfe8)
        /usr/local/go/src/net/http/client.go:615 +0x28d
github.com/aws/aws-sdk-go/aws/corehandlers.sendFollowRedirects(0xc420265800, 0x17521d0, 0xc420322800, 0xc420265800)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/corehandlers/handlers.go:120 +0x3b
github.com/aws/aws-sdk-go/aws/corehandlers.glob..func3(0xc420265800)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/corehandlers/handlers.go:112 +0x87
github.com/aws/aws-sdk-go/aws/request.(*HandlerList).Run(0xc420265998, 0xc420265800)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/request/handlers.go:195 +0x9d
github.com/aws/aws-sdk-go/aws/request.(*Request).Send(0xc420265800, 0x0, 0x0)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/request/request.go:490 +0x17f
github.com/aws/aws-sdk-go/aws/ec2metadata.(*EC2Metadata).GetMetadata(0xc42000e0d8, 0x1736e68, 0x19, 0x1cb76c8, 0xc420224180, 0x101230d, 0xc420057380)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/ec2metadata/api.go:28 +0x181
github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds.requestCredList(0xc42000e0d8, 0x27, 0x1634c7d, 0x1634c8a, 0xc42039d4e0, 0x10a5759)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/credentials/ec2rolecreds/ec2_role_provider.go:133 +0x58
github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds.(*EC2RoleProvider).Retrieve(0xc4201b2e70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38280f0, ...)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/credentials/ec2rolecreds/ec2_role_provider.go:89 +0x6a
github.com/aws/aws-sdk-go/aws/credentials.(*ChainProvider).Retrieve(0xc4201b2ea0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x16a4aa0, ...)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/credentials/chain_provider.go:77 +0x122
github.com/aws/aws-sdk-go/aws/credentials.(*Credentials).Get(0xc420074840, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/credentials/credentials.go:208 +0x13b
github.com/aws/aws-sdk-go/aws/signer/v4.Signer.signWithBody(0xc420074840, 0x0, 0x17d4980, 0xc42000e0b8, 0x10100, 0x1753c58, 0x0, 0xc420322700, 0x17d7460, 0xc420205840, ...)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/signer/v4/v4.go:338 +0x275
github.com/aws/aws-sdk-go/aws/signer/v4.signSDKRequestWithCurrTime(0xc420265400, 0x1753c58, 0x0, 0x0, 0x0)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/signer/v4/v4.go:477 +0x339
github.com/aws/aws-sdk-go/aws/signer/v4.SignSDKRequest(0xc420265400)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/signer/v4/v4.go:423 +0x48
github.com/aws/aws-sdk-go/aws/request.(*HandlerList).Run(0xc420265578, 0xc420265400)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/request/handlers.go:195 +0x9d
github.com/aws/aws-sdk-go/aws/request.(*Request).Sign(0xc420265400, 0x1752260, 0xc420265400)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/request/request.go:382 +0xb0
github.com/aws/aws-sdk-go/aws/request.(*Request).Send(0xc420265400, 0x0, 0x0)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/request/request.go:483 +0x132
github.com/google/go-cloud/blob/s3blob.(*bucket).Delete(0xc4202052c0, 0x17dc220, 0xc4200240d8, 0x1736d44, 0x18, 0xc420384000, 0xb4)
        /Users/enocom/go/src/github.com/go-cloud/blob/s3blob/s3blob.go:244 +0xee
github.com/google/go-cloud/blob.(*Bucket).Delete(0xc420057f60, 0x17dc220, 0xc4200240d8, 0x1736d44, 0x18, 0x2, 0xc42025a430)
        /Users/enocom/go/src/github.com/go-cloud/blob/blob.go:120 +0x5b
github.com/google/go-cloud/blob/s3blob_test.TestCloseWithoutWrite(0xc4203521e0)
        /Users/enocom/go/src/github.com/go-cloud/blob/s3blob/s3blob_test.go:292 +0x37f
testing.tRunner(0xc4203521e0, 0x1752a20)
        /usr/local/go/src/testing/testing.go:777 +0xd0
created by testing.(*T).Run
        /usr/local/go/src/testing/testing.go:824 +0x2e0

goroutine 183 [select]:
net.(*netFD).connect.func2(0x17dc260, 0xc42030a180, 0xc42031e180, 0xc42007e2a0, 0xc42007e240)
        /usr/local/go/src/net/fd_unix.go:129 +0xde
created by net.(*netFD).connect
        /usr/local/go/src/net/fd_unix.go:128 +0x286

goroutine 182 [IO wait]:
internal/poll.runtime_pollWait(0x3828ee0, 0x77, 0xc420366480)
        /usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc42031e198, 0x77, 0xc42021f300, 0xc42021f368, 0x1035c64)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9b
internal/poll.(*pollDesc).waitWrite(0xc42031e198, 0xc42021f300, 0x28, 0x11babe6)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:94 +0x3d
internal/poll.(*FD).WaitWrite(0xc42031e180, 0x17531d0, 0x17dc260)
        /usr/local/go/src/internal/poll/fd_unix.go:440 +0x37
net.(*netFD).connect(0xc42031e180, 0x17dc260, 0xc42030a180, 0x0, 0x0, 0x17d56c0, 0xc420334000, 0x0, 0x0, 0x0, ...)
        /usr/local/go/src/net/fd_unix.go:152 +0x299
net.(*netFD).dial(0xc42031e180, 0x17dc260, 0xc42030a180, 0x17ddec0, 0x0, 0x17ddec0, 0xc4202dc120, 0xc420050588, 0x11d3c6e)
        /usr/local/go/src/net/sock_posix.go:142 +0xe9
net.socket(0x17dc260, 0xc42030a180, 0x1727a8b, 0x3, 0x2, 0x1, 0x0, 0x0, 0x17ddec0, 0x0, ...)
        /usr/local/go/src/net/sock_posix.go:93 +0x1a6
net.internetSocket(0x17dc260, 0xc42030a180, 0x1727a8b, 0x3, 0x17ddec0, 0x0, 0x17ddec0, 0xc4202dc120, 0x1, 0x0, ...)
        /usr/local/go/src/net/ipsock_posix.go:141 +0x129
net.doDialTCP(0x17dc260, 0xc42030a180, 0x1727a8b, 0x3, 0x0, 0xc4202dc120, 0x1b3bc08, 0x0, 0x0)
        /usr/local/go/src/net/tcpsock_posix.go:62 +0xb9
net.dialTCP(0x17dc260, 0xc42030a180, 0x1727a8b, 0x3, 0x0, 0xc4202dc120, 0x90827ebee5, 0x1b1e400, 0x6fc232101)
        /usr/local/go/src/net/tcpsock_posix.go:58 +0xe4
net.dialSingle(0x17dc260, 0xc42030a180, 0xc42031e080, 0x17d81a0, 0xc4202dc120, 0x0, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/dial.go:547 +0x375
net.dialSerial(0x17dc260, 0xc42030a180, 0xc42031e080, 0xc420376070, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/dial.go:515 +0x22d
net.(*Dialer).DialContext(0xc420074120, 0x17dc220, 0xc4200240d8, 0x1727a8b, 0x3, 0xc420334100, 0x12, 0x0, 0x0, 0x0, ...)
        /usr/local/go/src/net/dial.go:397 +0x678
net.(*Dialer).DialContext-fm(0x17dc220, 0xc4200240d8, 0x1727a8b, 0x3, 0xc420334100, 0x12, 0x10050a6, 0x12495a9, 0xc4200240d8, 0x1658300)
        /usr/local/go/src/net/http/transport.go:46 +0x73
net/http.(*Transport).dial(0x1b147e0, 0x17dc220, 0xc4200240d8, 0x1727a8b, 0x3, 0xc420334100, 0x12, 0x0, 0x0, 0x0, ...)
        /usr/local/go/src/net/http/transport.go:898 +0x20d
net/http.(*Transport).dialConn(0x1b147e0, 0x17dc220, 0xc4200240d8, 0x0, 0xc420026800, 0x4, 0xc420334100, 0x12, 0x1, 0x0, ...)
        /usr/local/go/src/net/http/transport.go:1143 +0x317
net/http.(*Transport).getConn.func4(0x1b147e0, 0x17dc220, 0xc4200240d8, 0xc4202dc3f0, 0xc42007e660)
        /usr/local/go/src/net/http/transport.go:957 +0x78
created by net/http.(*Transport).getConn
        /usr/local/go/src/net/http/transport.go:956 +0x363

rax    0xe
rbx    0x1d
rcx    0x7ffeefbff730
rdx    0x3b95f468
rdi    0x2603
rsi    0x1d
rbp    0x7ffeefbff768
rsp    0x7ffeefbff730
r8     0xc420266a80
r9     0x14b
r10    0x15a9db26be246
r11    0x206
r12    0x161000f8d56a1
r13    0x3
r14    0x0
r15    0x0
rip    0x105bbf3
rflags 0x206
cs     0x7
fs     0x0
gs     0x0
*** Test killed with quit: ran too long (10m0s).
FAIL    github.com/google/go-cloud/blob/s3blob  600.084s

// Some unrelated test output omitted.
PASS
ok      github.com/google/go-cloud/runtimevar/filevar   10.242s
=== RUN   TestWriteReadDelete
=== RUN   TestWriteReadDelete/Good_param_name_and_value_should_pass
=== RUN   TestWriteReadDelete/Bad_param_name_should_fail
=== RUN   TestWriteReadDelete/Good_param_name_with_an_empty_value_should_fail
=== RUN   TestWriteReadDelete/Empty_param_name_should_fail
=== RUN   TestWriteReadDelete/Long_param_name_should_fail
=== RUN   TestWriteReadDelete/Good_value_of_4096_should_pass
=== RUN   TestWriteReadDelete/Bad_value_of_a_really_long_parameter_should_fail
--- FAIL: TestWriteReadDelete (590.70s)
        paramstore_test.go:329: Golden file is at testdata/write_read_delete
        paramstore_test.go:329: Recording into golden file
    --- FAIL: TestWriteReadDelete/Good_param_name_and_value_should_pass (120.33s)
        paramstore_test.go:114: got error NoCredentialProviders: no valid providers in chain. Deprecated.
                        For verbose messaging see aws.Config.CredentialsChainVerboseErrors; want nil
    --- PASS: TestWriteReadDelete/Bad_param_name_should_fail (120.35s)
    --- PASS: TestWriteReadDelete/Good_param_name_with_an_empty_value_should_fail (0.00s)
    --- PASS: TestWriteReadDelete/Empty_param_name_should_fail (0.00s)
    --- PASS: TestWriteReadDelete/Long_param_name_should_fail (109.36s)
    --- FAIL: TestWriteReadDelete/Good_value_of_4096_should_pass (120.35s)
        paramstore_test.go:114: got error NoCredentialProviders: no valid providers in chain. Deprecated.
                        For verbose messaging see aws.Config.CredentialsChainVerboseErrors; want nil
    --- PASS: TestWriteReadDelete/Bad_value_of_a_really_long_parameter_should_fail (120.28s)
=== RUN   TestInitialWatch
=== RUN   TestInitialWatch/Good_param_should_return_OK
SIGQUIT: quit
PC=0x105bec3 m=0 sigcode=0

goroutine 0 [idle]:
runtime.mach_semaphore_timedwait(0x1d00001603, 0x3b98044b, 0x7ffeefbff74c, 0xc40000001d, 0x3b98044befbff768, 0x1b7ac20, 0x7ffeefbff780, 0x1056533, 0x6fc20e64b, 0x1035642, ...)
        /usr/local/go/src/runtime/sys_darwin_amd64.s:550 +0x13
runtime.semasleep1(0x6fc20e64b, 0x1035642)
        /usr/local/go/src/runtime/os_darwin.go:427 +0xdf
runtime.semasleep.func1()
        /usr/local/go/src/runtime/os_darwin.go:457 +0x33
runtime.systemstack(0x0)
        /usr/local/go/src/runtime/asm_amd64.s:409 +0x79
runtime.mstart()
        /usr/local/go/src/runtime/proc.go:1175

goroutine 19 [syscall]:
runtime.notetsleepg(0x1b7e760, 0x6fc20e64b, 0x1)
        /usr/local/go/src/runtime/lock_sema.go:280 +0x4b fp=0xc420042760 sp=0xc420042720 pc=0x10115eb
runtime.timerproc(0x1b7e740)
        /usr/local/go/src/runtime/time.go:261 +0x2e7 fp=0xc4200427d8 sp=0xc420042760 pc=0x104af17
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:2361 +0x1 fp=0xc4200427e0 sp=0xc4200427d8 pc=0x105a8e1
created by runtime.(*timersBucket).addtimerLocked
        /usr/local/go/src/runtime/time.go:160 +0x107

goroutine 1 [chan receive]:
testing.(*T).Run(0xc4202081e0, 0x176d93b, 0x10, 0x1790898, 0x1079600)
        /usr/local/go/src/testing/testing.go:825 +0x301
testing.runTests.func1(0xc420208000)
        /usr/local/go/src/testing/testing.go:1063 +0x64
testing.tRunner(0xc420208000, 0xc42013ddf8)
        /usr/local/go/src/testing/testing.go:777 +0xd0
testing.runTests(0xc4201f95c0, 0x1b6f8e0, 0x4, 0x4, 0x1012309)
        /usr/local/go/src/testing/testing.go:1061 +0x2c4
testing.(*M).Run(0xc420126100, 0x0)
        /usr/local/go/src/testing/testing.go:978 +0x171
main.main()
        _testmain.go:48 +0x151

goroutine 112 [chan receive]:
testing.(*T).Run(0xc4202082d0, 0x1775359, 0x1b, 0xc42000c6c0, 0xc420308330)
        /usr/local/go/src/testing/testing.go:825 +0x301
github.com/google/go-cloud/runtimevar/paramstore.TestInitialWatch(0xc4202081e0)
        /Users/enocom/go/src/github.com/go-cloud/runtimevar/paramstore/paramstore_test.go:177 +0x19f
testing.tRunner(0xc4202081e0, 0x1790898)
        /usr/local/go/src/testing/testing.go:777 +0xd0
created by testing.(*T).Run
        /usr/local/go/src/testing/testing.go:824 +0x2e0

goroutine 156 [IO wait]:
internal/poll.runtime_pollWait(0x1f98ec0, 0x77, 0xc420074480)
        /usr/local/go/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420126218, 0x77, 0xc420067300, 0xc420067368, 0x1035e74)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x9b
internal/poll.(*pollDesc).waitWrite(0xc420126218, 0xc420067300, 0x28, 0x11eec26)
        /usr/local/go/src/internal/poll/fd_poll_runtime.go:94 +0x3d
internal/poll.(*FD).WaitWrite(0xc420126200, 0x1791040, 0x181af80)
        /usr/local/go/src/internal/poll/fd_unix.go:440 +0x37
net.(*netFD).connect(0xc420126200, 0x181af80, 0xc42031c240, 0x0, 0x0, 0x1814520, 0xc4202fc0a0, 0x0, 0x0, 0x0, ...)
        /usr/local/go/src/net/fd_unix.go:152 +0x299
net.(*netFD).dial(0xc420126200, 0x181af80, 0xc42031c240, 0x181cd80, 0x0, 0x181cd80, 0xc42018c600, 0xc42004f588, 0x1207cae)
        /usr/local/go/src/net/sock_posix.go:142 +0xe9
net.socket(0x181af80, 0xc42031c240, 0x1764a64, 0x3, 0x2, 0x1, 0x0, 0x0, 0x181cd80, 0x0, ...)
        /usr/local/go/src/net/sock_posix.go:93 +0x1a6
net.internetSocket(0x181af80, 0xc42031c240, 0x1764a64, 0x3, 0x181cd80, 0x0, 0x181cd80, 0xc42018c600, 0x1, 0x0, ...)
        /usr/local/go/src/net/ipsock_posix.go:141 +0x129
net.doDialTCP(0x181af80, 0xc42031c240, 0x1764a64, 0x3, 0x0, 0xc42018c600, 0x1b97fd8, 0x0, 0x0)
        /usr/local/go/src/net/tcpsock_posix.go:62 +0xb9
net.dialTCP(0x181af80, 0xc42031c240, 0x1764a64, 0x3, 0x0, 0xc42018c600, 0x9084b5342a, 0x1b7a780, 0x6fc234eb3)
        /usr/local/go/src/net/tcpsock_posix.go:58 +0xe4
net.dialSingle(0x181af80, 0xc42031c240, 0xc420126180, 0x1816fc0, 0xc42018c600, 0x0, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/dial.go:547 +0x375
net.dialSerial(0x181af80, 0xc42031c240, 0xc420126180, 0xc4202a60e0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0)
        /usr/local/go/src/net/dial.go:515 +0x22d
net.(*Dialer).DialContext(0xc420080120, 0x181af40, 0xc4200240d8, 0x1764a64, 0x3, 0xc4202fc060, 0x12, 0x0, 0x0, 0x0, ...)
        /usr/local/go/src/net/dial.go:397 +0x678
net.(*Dialer).DialContext-fm(0x181af40, 0xc4200240d8, 0x1764a64, 0x3, 0xc4202fc060, 0x12, 0x10052b6, 0x127d6a9, 0xc4200240d8, 0x168ad00)
        /usr/local/go/src/net/http/transport.go:46 +0x73
net/http.(*Transport).dial(0x1b70980, 0x181af40, 0xc4200240d8, 0x1764a64, 0x3, 0xc4202fc060, 0x12, 0x1006992, 0x1013e4f, 0x1011e05, ...)
        /usr/local/go/src/net/http/transport.go:898 +0x20d
net/http.(*Transport).dialConn(0x1b70980, 0x181af40, 0xc4200240d8, 0x0, 0xc42029c0c0, 0x4, 0xc4202fc060, 0x12, 0x1, 0x0, ...)
        /usr/local/go/src/net/http/transport.go:1143 +0x317
net/http.(*Transport).getConn.func4(0x1b70980, 0x181af40, 0xc4200240d8, 0xc42018c540, 0xc42008c360)
        /usr/local/go/src/net/http/transport.go:957 +0x78
created by net/http.(*Transport).getConn
        /usr/local/go/src/net/http/transport.go:956 +0x363

goroutine 113 [select]:
net/http.(*Transport).getConn(0x1b70980, 0xc42018c4b0, 0x0, 0xc42029c0c0, 0x4, 0xc4202fc060, 0x12, 0x0, 0x0, 0xc4202fc011)
        /usr/local/go/src/net/http/transport.go:962 +0x558
net/http.(*Transport).RoundTrip(0x1b70980, 0xc42026a400, 0x0, 0x0, 0x1000)
        /usr/local/go/src/net/http/transport.go:409 +0x632
github.com/dnaeon/go-vcr/recorder.requestHandler(0xc42026a400, 0xc420270240, 0x0, 0x1814120, 0x1b70980, 0xc42027c580, 0xc420120be0, 0x100da3c)
        /Users/enocom/go/src/v/github.com/dnaeon/[email protected]/recorder/recorder.go:102 +0x27f
github.com/dnaeon/go-vcr/recorder.(*Recorder).RoundTrip(0xc42000c5c0, 0xc42026a400, 0xc42000c5c0, 0x0, 0x0)
        /Users/enocom/go/src/v/github.com/dnaeon/[email protected]/recorder/recorder.go:192 +0x75
net/http.send(0xc42026a400, 0x1813880, 0xc42000c5c0, 0x0, 0x0, 0x0, 0xc42031e058, 0xb, 0xc420120d78, 0x1)
        /usr/local/go/src/net/http/client.go:252 +0x185
net/http.(*Client).send(0xc420308360, 0xc42026a400, 0x0, 0x0, 0x0, 0xc42031e058, 0x0, 0x1, 0xc42027c420)
        /usr/local/go/src/net/http/client.go:176 +0xfa
net/http.(*Client).Do(0xc420308360, 0xc42026a400, 0xc420120f58, 0x10, 0xc420120f50)
        /usr/local/go/src/net/http/client.go:615 +0x28d
github.com/aws/aws-sdk-go/aws/corehandlers.sendFollowRedirects(0xc420045c00, 0x17900a8, 0xc42026a300, 0xc420045c00)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/corehandlers/handlers.go:120 +0x3b
github.com/aws/aws-sdk-go/aws/corehandlers.glob..func3(0xc420045c00)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/corehandlers/handlers.go:112 +0x87
github.com/aws/aws-sdk-go/aws/request.(*HandlerList).Run(0xc420045d98, 0xc420045c00)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/request/handlers.go:195 +0x9d
github.com/aws/aws-sdk-go/aws/request.(*Request).Send(0xc420045c00, 0x0, 0x0)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/request/request.go:490 +0x17f
github.com/aws/aws-sdk-go/aws/ec2metadata.(*EC2Metadata).GetMetadata(0xc42031e020, 0x1773bc1, 0x19, 0x0, 0xc420121348, 0x1012309, 0xc420057ef0)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/ec2metadata/api.go:28 +0x181
github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds.requestCredList(0xc42031e020, 0x6, 0xc4200b81c0, 0x17668af, 0x6, 0x198)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/credentials/ec2rolecreds/ec2_role_provider.go:133 +0x58
github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds.(*EC2RoleProvider).Retrieve(0xc4203084b0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f99060, ...)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/credentials/ec2rolecreds/ec2_role_provider.go:89 +0x6a
github.com/aws/aws-sdk-go/aws/credentials.(*ChainProvider).Retrieve(0xc420308540, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x16d9480, ...)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/credentials/chain_provider.go:77 +0x122
github.com/aws/aws-sdk-go/aws/credentials.(*Credentials).Get(0xc420270300, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/credentials/credentials.go:208 +0x13b
github.com/aws/aws-sdk-go/aws/signer/v4.Signer.signWithBody(0xc420270300, 0x0, 0x1813800, 0xc42031e018, 0x10000, 0x1791ac8, 0x0, 0xc42026a200, 0x18162c0, 0xc420106ac0, ...)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/signer/v4/v4.go:338 +0x275
github.com/aws/aws-sdk-go/aws/signer/v4.signSDKRequestWithCurrTime(0xc420045800, 0x1791ac8, 0x0, 0x0, 0x0)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/signer/v4/v4.go:477 +0x339
github.com/aws/aws-sdk-go/aws/signer/v4.SignSDKRequest(0xc420045800)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/signer/v4/v4.go:423 +0x48
github.com/aws/aws-sdk-go/aws/request.(*HandlerList).Run(0xc420045978, 0xc420045800)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/request/handlers.go:195 +0x9d
github.com/aws/aws-sdk-go/aws/request.(*Request).Sign(0xc420045800, 0x1790138, 0xc420045800)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/request/request.go:382 +0xb0
github.com/aws/aws-sdk-go/aws/request.(*Request).Send(0xc420045800, 0x0, 0x0)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/aws/request/request.go:483 +0x132
github.com/aws/aws-sdk-go/service/ssm.(*SSM).PutParameter(0xc42031e030, 0xc420300340, 0x0, 0x0, 0x0)
        /Users/enocom/go/src/v/github.com/aws/[email protected]/service/ssm/api.go:7810 +0x4d
github.com/google/go-cloud/runtimevar/paramstore.writeParam(0x1813840, 0xc420001b00, 0x176f5ff, 0x12, 0x17668af, 0x6, 0x10e7a1d, 0x18f5978, 0x18f59b8)
        /Users/enocom/go/src/github.com/go-cloud/runtimevar/paramstore/paramstore_test.go:354 +0x190
github.com/google/go-cloud/runtimevar/paramstore.TestInitialWatch.func2(0xc4202082d0)
        /Users/enocom/go/src/github.com/go-cloud/runtimevar/paramstore/paramstore_test.go:178 +0x80
testing.tRunner(0xc4202082d0, 0xc42000c6c0)
        /usr/local/go/src/testing/testing.go:777 +0xd0
created by testing.(*T).Run
        /usr/local/go/src/testing/testing.go:824 +0x2e0

goroutine 157 [select]:
net.(*netFD).connect.func2(0x181af80, 0xc42031c240, 0xc420126200, 0xc42008c540, 0xc42008c4e0)
        /usr/local/go/src/net/fd_unix.go:129 +0xde
created by net.(*netFD).connect
        /usr/local/go/src/net/fd_unix.go:128 +0x286

rax    0xe
rbx    0x1d
rcx    0x7ffeefbff720
rdx    0x3b98044b
rdi    0x1603
rsi    0x1d
rbp    0x7ffeefbff758
rsp    0x7ffeefbff720
r8     0xc420074600
r9     0x14b
r10    0x15a9db26be246
r11    0x202
r12    0x161000f8d56a1
r13    0x0
r14    0x0
r15    0x0
rip    0x105bec3
rflags 0x202
cs     0x7
fs     0x0
gs     0x0
*** Test killed with quit: ran too long (10m0s).
FAIL    github.com/google/go-cloud/runtimevar/paramstore        600.048s

// More unrelated test output omitted.

from go-cloud.

cflewis avatar cflewis commented on May 3, 2024

I'm going to investigate this morning and see if I can repro.

from go-cloud.

cflewis avatar cflewis commented on May 3, 2024

OK, I can repro this.

[I] ➜  go-cloud git:(eno-test) mv ~/.aws ~/.aws.bak
[I] ➜  go-cloud git:(eno-test) cd runtimevar/paramstore/
[I] ➜  paramstore git:(eno-test) vgo test -v .
=== RUN   TestWriteReadDelete
=== RUN   TestWriteReadDelete/Good_param_name_and_value_should_pass
<take a nap>

I can't imagine why the AWS SDK would block like this. It's such a weird behavior. It's clearly waiting for something and then times out after 120s; but what would it think would change in those 120s? That's strange to me.

I will investigate further to see why the SDK might be doing this.

from go-cloud.

cflewis avatar cflewis commented on May 3, 2024

r.Sign() is the offending code line. This is where dlv stops for about a minute and then returns the NoCredentialProviders error. Investigating further.

from go-cloud.

cflewis avatar cflewis commented on May 3, 2024

OK, here's what I think is happening.

It looks like the AWS SDK lists the request as being retryable, but doesn't make any differentiation between whether the retry is a temporary network issue, or if it's because there aren't any creds. Because there aren't any creds, it just loops round waiting to see if the request will complete successfully, which it never does.

I think this is WAI for the SDK, I think I need to fiddle the retry logic.

from go-cloud.

cflewis avatar cflewis commented on May 3, 2024

I think #92 has fixed this as best as can be hoped for right now. We can cycle back later on if it continues to frustrate.

from go-cloud.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.