amazon-archives / aws-sdk-unity

ARCHIVED: The aws sdk for unity is now distributed as a part of aws sdk for dotnet:
https://github.com/aws/aws-sdk-net
Other
105 stars 43 forks source link

UnityWebRequestFactory stuck forever when getting signed policy #106

Closed designzoo-peter closed 8 years ago

designzoo-peter commented 8 years ago

The method S3PostUploadSignedPolicy GetSignedPolicy which gets called from PostObjectAsync results in a UnityWebRequest that never finishes, as it constantly hangs here

The stack trace for the infinite hanging is

System.Threading.WaitHandle.WaitOne () in /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Threading/WaitHandle.cs:334 Amazon.Runtime.Internal.UnityWebRequest.GetResponse () in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/HttpHandler/_unity/UnityWebRequestFactory.cs:173 Amazon.Runtime.Internal.HttpHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/HttpHandler/HttpHandler.cs:87 Amazon.Runtime.Internal.PipelineHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs:59 Amazon.Runtime.Internal.Unmarshaller.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/Handlers/Unmarshaller.cs:50 Amazon.Runtime.Internal.PipelineHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs:59 Amazon.Runtime.Internal.ErrorHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/ErrorHandler/ErrorHandler.cs:76 Amazon.Runtime.Internal.PipelineHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs:59 Amazon.Runtime.Internal.CallbackHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/Handlers/CallbackHandler.cs:47 Amazon.Runtime.Internal.PipelineHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs:59 Amazon.Runtime.Internal.Signer.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/Handlers/Signer.cs:40 Amazon.Runtime.Internal.PipelineHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs:59 Amazon.Runtime.Internal.CredentialsRetriever.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/Handlers/CredentialsRetriever.cs:74 Amazon.Runtime.Internal.PipelineHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs:59 Amazon.Runtime.Internal.RetryHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/RetryHandler/RetryHandler.cs:76 Amazon.Runtime.Internal.PipelineHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs:59 Amazon.Runtime.Internal.CallbackHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/Handlers/CallbackHandler.cs:47 Amazon.Runtime.Internal.PipelineHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs:59 Amazon.Runtime.Internal.EndpointResolver.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/Handlers/EndpointResolver.cs:36 Amazon.Runtime.Internal.PipelineHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs:59 Amazon.Runtime.Internal.Marshaller.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/Handlers/Marshaller.cs:39 Amazon.Runtime.Internal.PipelineHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs:59 Amazon.Runtime.Internal.CallbackHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/Handlers/CallbackHandler.cs:47 Amazon.Runtime.Internal.PipelineHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs:59 Amazon.Runtime.Internal.ErrorCallbackHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/Handlers/ErrorCallbackHandler.cs:41 Amazon.Runtime.Internal.PipelineHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs:59 Amazon.Runtime.Internal.MetricsHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/Handlers/MetricsHandler.cs:42 Amazon.Runtime.Internal.PipelineHandler.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/PipelineHandler.cs:59 Amazon.Runtime.Internal.RuntimePipeline.InvokeSync (executionContext={Amazon.Runtime.Internal.ExecutionContext}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/Pipeline/RuntimePipeline.cs:137 Amazon.Runtime.AmazonServiceClient.Invoke (request={Amazon.CognitoIdentity.Model.GetCredentialsForIdentityRequest}, marshaller={Amazon.CognitoIdentity.Model.Internal.MarshallTransformations.GetCredentialsForIdentityRequestMarshaller}, unmarshaller={Amazon.CognitoIdentity.Model.Internal.MarshallTransformations.GetCredentialsForIdentityResponseUnmarshaller}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/AmazonServiceClient.cs:141 Amazon.CognitoIdentity.AmazonCognitoIdentityClient.GetCredentialsForIdentity (request={Amazon.CognitoIdentity.Model.GetCredentialsForIdentityRequest}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Services/CognitoIdentity/Generated/_unity/AmazonCognitoIdentityClient.cs:670 Amazon.CognitoIdentity.CognitoAWSCredentials.GetCredentialsForIdentity (getCredentialsRequest={Amazon.CognitoIdentity.Model.GetCredentialsForIdentityRequest}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Services/CognitoIdentity/Custom/_unity/CognitoAWSCredentials.unity.cs:68 Amazon.CognitoIdentity.CognitoAWSCredentials.GetPoolCredentials () in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Services/CognitoIdentity/Custom/CognitoAWSCredentials.cs:676 Amazon.CognitoIdentity.CognitoAWSCredentials.GenerateNewCredentials () in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Services/CognitoIdentity/Custom/CognitoAWSCredentials.cs:647 Amazon.Runtime.RefreshingAWSCredentials.GetCredentials () in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Core/Amazon.Runtime/AWSCredentials.cs:707 Amazon.S3.Util.S3PostUploadSignedPolicy.GetSignedPolicy (policy="{\"conditions\": [{\"bucket\": \"testify-staging\"},[\"starts-with\", \"$key\", \"41/65/226/342.mp4\"],{\"acl\": \"…", credentials={Amazon.CognitoIdentity.CognitoAWSCredentials}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/AWSSDK/src/Services/S3/Custom/Util/_bcl/S3PostUploadSignedPolicy.cs:50 Amazon.S3.AmazonS3Client.CreateSignedPolicy (request={Amazon.S3.Model.PostObjectRequest}, policyString="{\"conditions\": [{\"bucket\": \"testify-staging\"},[\"starts-with\", \"$key\", \"41/65/226/342.mp4\"],{\"acl\": \"…", credentials={Amazon.CognitoIdentity.CognitoAWSCredentials}) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/Testify/Scripts/AWS/TestifyAmazonS3Client.cs:55 Amazon.S3.AmazonS3Client.PostObjectAsync.AnonymousMethod__DF (arg0=(null)) in /Users/dzoo/Projects/Unity/Plugins/user-testing-plugin-tool/Assets/Testify/Scripts/AWS/TestifyAmazonS3Client.cs:46

designzoo-peter commented 8 years ago

This issue is caused when the Time.timeScale unity property is set to 0. I was hoping to upload some data in the pause screen but I cannot do that, as the time never elapses, as 'InvokeRepeating' is timescale dependent.

karthiksaligrama commented 8 years ago

Thanks for bringing this up. I can see why altering the Time.timeScale can cause some problems in the SDK. I'll work in a fix and get back to you.

karthiksaligrama commented 8 years ago

fixed in v 2.1.0.1 & Unity V3 (https://github.com/aws/aws-sdk-net/tree/unityv3)