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

Crashes on OS 13 Samsung Galaxy #618

Open
ber4444 opened this issue Aug 24, 2023 · 4 comments
Open

Crashes on OS 13 Samsung Galaxy #618

ber4444 opened this issue Aug 24, 2023 · 4 comments

Comments

@ber4444
Copy link

ber4444 commented Aug 24, 2023

Following are the stack traces from Crashlytics, they show Open Telemetry which you use under the hood (we use your android sdk):

Fatal Exception: java.net.UnknownHostException: Unable to resolve host "xxxxxx": No address associated with hostname
       at java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:156)
       at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:103)
       at java.net.InetAddress.getAllByName(InetAddress.java:1152)
       at okhttp3.Dns$Companion$DnsSystem.lookup(Dns.java:49)
       at okhttp3.internal.connection.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:169)
       at okhttp3.internal.connection.RouteSelector.nextProxy(RouteSelector.java:131)
       at okhttp3.internal.connection.RouteSelector.next(RouteSelector.java:73)
       at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:205)
       at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
       at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
       at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.java:255)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at io.opentelemetry.instrumentation.okhttp.v3_0.TracingInterceptor.intercept(TracingInterceptor.java:44)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
       at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)

and

Fatal Exception: java.net.SocketTimeoutException: timeout
       at okhttp3.internal.http2.Http2Stream$StreamTimeout.newTimeoutException(Http2Stream.kt:675)
       at okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut(Http2Stream.kt:684)
       at okhttp3.internal.http2.Http2Stream.takeHeaders(Http2Stream.kt:143)
       at okhttp3.internal.http2.Http2ExchangeCodec.readResponseHeaders(Http2ExchangeCodec.kt:97)
       at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.kt:110)
       at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:93)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.kt:154)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:34)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at io.opentelemetry.instrumentation.okhttp.v3_0.TracingInterceptor.intercept(TracingInterceptor.java:44)
       at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
       at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
       at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)

It would be good if we had a way to swallow these exceptions as they run through Open Telemetry. It is hard to know where they originate from.

@mateuszrzeszutek
Copy link
Contributor

Hey @ber4444 ,

I'm not sure I follow, how is the fact that you're getting these exceptions connected to the OTel instrumentation? They seem to be caused by actual network issues happening with your app.

The TracingInterceptor juts means that that particular HTTP call was instrumented; it's not the cause of the exception.

@ber4444
Copy link
Author

ber4444 commented Aug 24, 2023

It's definitely an exception handling issue on our end, just saying that pinpointing the source is not easy, perhaps you could you provide a helpful stacktrace as you see these IOExceptions come through.

@breedx-splk
Copy link
Contributor

@ber4444 Just checking the obvious -- are you actually configuring a hostname of "xxxxxx" somewhere? Or did you just xxxxx that out manually because it is sensitive?

In any case, I think that both Fatal Exception: java.net.UnknownHostException: Unable to resolve host "xxxxxx": No address associated with hostname and Fatal Exception: java.net.SocketTimeoutException: timeout are pretty helpful and descriptive.

What kind of additional helpful information are you looking for?

@ber4444
Copy link
Author

ber4444 commented Sep 8, 2023

Yes, that is X'd out to hide the actual host name. I am looking for the REST API path to know which call is missing proper exception handling, since we have a numbers of API's on the same domain (the second exception isn't even descriptive of the domain btw). We actually fixed it already by hunting through the codebase but in a much larger project it would have been a massive pain.

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

3 participants