LiteCore has overlooked the fact that a socket read operation will return 0 when it reaches the end of the stream, and continue to do so forever. The socket read operation needs to take this into account, and not schedule itself again in this event. Instead in the event of EOF on a read call, LiteCore should either initiate a close (if EOF write has not been recorded) or close the socket right then and there (if EOF write has been recorded).
Activity
Show:
CB robot April 21, 2021 at 9:16 PM
Build couchbase-lite-net-3.0.0-47 contains couchbase-lite-core commit f5e06ee with commit message: : Fix infinite loop on socket POLLHUP (#1120)
CB robot March 24, 2021 at 12:44 AM
Build couchbase-lite-java-3.0.0-66 contains couchbase-lite-core commit f5e06ee with commit message: : Fix infinite loop on socket POLLHUP (#1120)
CB robot March 24, 2021 at 12:35 AM
Build couchbase-lite-android-3.0.0-66 contains couchbase-lite-core commit f5e06ee with commit message: : Fix infinite loop on socket POLLHUP (#1120)
CB robot February 23, 2021 at 12:41 AM
Build couchbase-lite-net-3.0.0-34 contains couchbase-lite-core commit f5e06ee with commit message: : Fix infinite loop on socket POLLHUP (#1120)
CB robot February 17, 2021 at 2:01 AM
Build couchbase-lite-log-3.0.0-53 contains couchbase-lite-core commit f5e06ee with commit message: : Fix infinite loop on socket POLLHUP (#1120)
Fixed
Pinned fields
Click on the next to a field label to start pinning.
LiteCore has overlooked the fact that a socket read operation will return 0 when it reaches the end of the stream, and continue to do so forever. The socket read operation needs to take this into account, and not schedule itself again in this event. Instead in the event of EOF on a read call, LiteCore should either initiate a close (if EOF write has not been recorded) or close the socket right then and there (if EOF write has been recorded).