java.net.SocketTimeoutException при пиковом трафике на производстве - PullRequest
1 голос
/ 17 мая 2019

Мы столкнулись с этой проблемой в Prodcution. Теперь эта проблема возникает всякий раз, когда уведомление распространяется для всех мобильных приложений и приложений для настольных компьютеров. В уведомлении есть одно изображение, которое кэшируется в CDN (Akamai). Таким образом, многие пользователи получают следующее исключение. Я пытался выяснить проблему, но многие люди говорят, что это может быть связано с Сетевая проблема на устройстве, но мой вопрос DNS DNS XXXX.XXXX.com был решен в IP-адрес akamai (117.239.141.27). Так что это не должно быть проблемой. Более того, у меня была работа с ребятами из Akamai, которые не могли найти никаких проблем с их стороны. Итак, у меня есть следующие вопросы:

1) Как мне определить причину проблемы? Во-вторых, кто-нибудь сталкивался с подобной проблемой на производстве при пике трафика?

2) Как упомянуто в следующей дорожке стека, которую я получил от crashlytics. В некоторых случаях мы получаем частный клиент IP (192.168.1.33), почему это так? Не следует публичный IP-адрес клиента должен быть зарегистрирован в crashlytics.

Caused by java.net.SocketTimeoutException: failed to connect to XXXX.XXXX.com/117.239.141.27 (port 80) from /192.168.1.33 (port 50974) after 15000ms
       at libcore.io.IoBridge.connectErrno(IoBridge.java:185)
       at libcore.io.IoBridge.connect(IoBridge.java:129)
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:137)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
       at java.net.Socket.connect(Socket.java:621)
       at com.android.okhttp.internal.Platform.connectSocket(Platform.java:145)
       at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:1416)
       at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:1368)
       at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:219)
       at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:142)
       at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:104)
       at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:392)
       at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:325)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:488)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:434)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:565)
       at com.squareup.picasso.UrlConnectionDownloader.load(UrlConnectionDownloader.java:125)
       at com.squareup.picasso.NetworkRequestHandler.load$71fa0c91(NetworkRequestHandler.java:6)
       at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:72)
       at com.XXXXX.XXXXX.utils.AppNotificationHandler.getTabCategoryIdForScreen(AppNotificationHandler.java:82)
       at com.XXXXX.XXXXX.utils.AppNotificationHandler.handleExtras(AppNotificationHandler.java:806)
       at com.XXXXX.XXXXX.fcm.FCMIntentService.onMessageReceived(FCMIntentService.java:112)
       at com.google.firebase.messaging.FirebaseMessagingService.zzd(FirebaseMessagingService.java:394)
       at com.google.firebase.iid.zzg.run(zzg.java:26)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at com.google.android.gms.common.util.concurrent.zza.run(zza.java:7)
       at java.lang.Thread.run(Thread.java:764)
...