Replicator stopped with WebSocket 1008 / SocketTimeoutException when disable WiFi: Backport to 3.0.2

Description

Steps:

1. Create a continuous Push-Pull Replicator with the heartbeat set to 10 seconds. The replicator will connect to a local SG using the machine IP Address.

2. Start the replicator and wait until the replicator is idle.

3. Turn off WiFi on the machine (Mac)

4. Wait until heartbeat is sent (About 10 Seconds).

5. The replicator stops with "error=WebSocket error 1008, "java.net.SocketTimeoutException: sent ping but didn't receive pong within 10000ms (after 0 successful ping/pongs)".

Env:
1. Android Emulator (I used Pixel 3a, API 32 arm64-v8a) running an Android App
2. SG 3.0 running on local mac (Use Mac's IP Address (not loopback or localhost) such as ws://192.168.86.122:4984/db

See the attached logcat.txt for more detail.

I expect that the timeout error is a transient error instead of a permanent error. I have checked with 2.8.6, and the behavior is similar but with an Unexpected Exception Error instead. I haven't checked the behavior on the other platforms.

Activity

Show:

Blake Meike April 14, 2022 at 4:55 PM

fixed in couchbase-lite-java-common @b53d62e5159c0eea64ac1

Fixed
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Story Points

Components

Fix versions

Affects versions

Priority

Instabug

Open Instabug

PagerDuty

Sentry

Zendesk Support

Created April 7, 2022 at 10:40 PM
Updated August 31, 2024 at 10:56 AM
Resolved April 7, 2022 at 11:24 PM
Instabug