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

Google.Cloud.PubSub.V1 does not work on Wine #9561

Closed
tpapaj-CKPL opened this issue Jan 16, 2023 · 2 comments
Closed

Google.Cloud.PubSub.V1 does not work on Wine #9561

tpapaj-CKPL opened this issue Jan 16, 2023 · 2 comments

Comments

@tpapaj-CKPL
Copy link

tpapaj-CKPL commented Jan 16, 2023

I can't get the library to work on a project that is ran with Wine. I am getting the same error when trying to reach topics.

00d0:fixme:path:parse_url failed to parse L"Google.Cloud.Iam.V1"

00d0:fixme:bcrypt:BCryptGenRandom ignoring selected algorithm

00d0:fixme:iphlpapi:GetBestRoute2 (000000001FCEB480, 0, 0000000000000000, 000000001FCEB628, 0x00000000, 000000000041D3D0, 000000000041D3B0): stub

I0116 07:20:16.164736 0 ..\..\..\src\core\lib\iomgr\socket_windows.cc:164: Disabling AF_INET6 sockets because socket() failed.

I0116 07:20:16.282727 0 ..\..\..\src\core\ext\filters\client_channel\subchannel.cc:948: subchannel 000000001FE4D740 {address=ipv4:142.250.203.138:443, args=grpc.client_channel_factory=0x1fccc7c0, grpc.def
ault_authority=pubsub.googleapis.com:443, grpc.http2_scheme=https, grpc.internal.channel_credentials=0x1fccb0c0, grpc.internal.security_connector=0x1fe4be20, grpc.internal.subchannel_pool=0x1fcce460, grpc
.keepalive_time_ms=60000, grpc.max_receive_message_length=2147483647, grpc.primary_user_agent=grpc-csharp/2.46.3 (.NET Framework 4.7.3062.0; CLR 4.0.30319.42000; net45; x64), grpc.resource_quota=0x1fccb56
0, grpc.server_uri=dns:///pubsub.googleapis.com:443, grpc.service_config_disable_resolution=1}: connect failed: {"created":"@1673850016.282000000","description":"Failed to connect","file":"..\..\..\src\co
re\lib\iomgr\tcp_client_windows.cc","file_line":219,"referenced_errors":[{"created":"@1673850016.282000000","description":"OS Error","file":"..\..\..\src\core\lib\iomgr\tcp_client_windows.cc","file_line":
152,"grpc_status":14,"os_error":"Unable to retrieve error string","syscall":"WSASocket","wsa_error":10047}],"target_address":"ipv4:142.250.203.138:443"}

(... error from above shows multiple times)

07:20:16 fail: Application[0] Grpc.Core.RpcException: Status(StatusCode="Unavailable", Detail="failed to connect to all addresses", DebugException="Grpc.Core.Internal.CoreErrorDetailException: {"created":
"@1673850016.617000000","description":"Failed to pick subchannel","file":"..\..\..\src\core\ext\filters\client_channel\client_channel.cc","file_line":3218,"referenced_errors":[{"created":"@1673850016.6170
00000","description":"failed to connect to all addresses","file":"..\..\..\src\core\lib\transport\error_utils.cc","file_line":165,"grpc_status":14}]}")    at System.Runtime.ExceptionServices.ExceptionDisp
atchInfo.Throw()    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)    at Grpc.Core.Internal.AsyncCall`2.UnaryCall(TRequest msg)    at Grpc.Core.DefaultCa
llInvoker.BlockingUnaryCall[TRequest,TResponse](Method`2 method, String host, CallOptions options, TRequest request)    at Grpc.Core.Interceptors.InterceptingCallInvoker.<BlockingUnaryCall>b__3_0[TRequest
,TResponse](TRequest req, ClientInterceptorContext`2 ctx)    at Grpc.Core.ClientBase.ClientBaseConfiguration.ClientBaseConfigurationInterceptor.BlockingUnaryCall[TRequest,TResponse](TRequest request, Clie
ntInterceptorContext`2 context, BlockingUnaryCallContinuation`2 continuation)    at Grpc.Core.Interceptors.InterceptingCallInvoker.BlockingUnaryCall[TRequest,TResponse](Method`2 method, String host, CallO
ptions options, TRequest request)    at Google.Cloud.PubSub.V1.Publisher.PublisherClient.GetTopic(GetTopicRequest request, CallOptions options)    at Google.Api.Gax.Grpc.ApiCall.GrpcCallAdapter`2.CallSync
(TRequest request, CallSettings callSettings)    at Google.Api.Gax.Grpc.ApiCallRetryExtensions.<>c__DisplayClass1_0`2.<WithRetry>b__0(TRequest request, CallSettings callSettings)    at MT5EventConsumer.Pu
bSubClient..ctor(String project, String topic)    at MT5EventConsumer.Application.Main(String[] args)

D0116 07:20:16.723318 0 ..\..\..\src\core\lib\surface\init.cc:248: grpc_shutdown starts clean-up now

The "wsa_error":10047 that shows in the first error menas Address family not supported by protocol family. I am making request in non-google library before trying to reach PubSub topic and it these requests works.

Environment details

  • OS: Ubuntu 20.04 and 18.04(docker)
  • .NET version: .NET Framework 4.7.2
  • Package name and version: Google.Cloud.PubSub.V1, Version 3.2.0
  • Disabled IPv6

Steps to reproduce

  1. Install wine wine-7.0.1
  2. Install winetricks(https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks) and install dotnet472 winetricks --unattended --force dotnet472
  3. Try to run .NET Framework 4.7.2 application with included PubSub library. The error shows only when trying to do an action(not just creating a publisher but trying to publish or get topic metadata:
TopicName topicName = new TopicName(project,topic);
PublisherServiceApiClient.Create().GetTopic(topicName);
``
@jskeet
Copy link
Collaborator

jskeet commented Jan 16, 2023

It seems very unlikely that this is a Google Cloud Client Libraries issue - I strongly suspect that this is just "Grpc.Core doesn't work with Wine". The call you've shown would not be doing anything particularly Google-specific.

I'm afraid the Google Cloud Client Libraries team doesn't have the resources to investigate every possible combination of platforms when the evidence suggests the issue isn't with the Google Cloud libraries themselves. You might want to raise an issue on the gRPC repo, but as Grpc.Core is in maintenance mode now, it's possible that the gRPC team won't have the resources to investigate this either. (That said, I see some Wine-specific changes in the C-core (example) so it's possible that they could do a release to include that.)

@tpapaj-CKPL
Copy link
Author

You are right.
I will write on gRPC repo, thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants