launchdarkly / android-client-sdk

LaunchDarkly Client-side SDK for Android
Other
45 stars 23 forks source link

`identify()` future may not complete if device is backgrounded during the call #91

Closed gwhelanLD closed 4 years ago

gwhelanLD commented 4 years ago

Are you sure it's correctly fixed? I'm facing a similar issue with 2.9.0.

I basically have wrapped all LD interactions in Rx streams. And at some point it involves having identify calls running on a specific (non-main) thread.

But if the app goes into the background when identify() is being called, the call is cancelled, the event, the connection is shut down

And identify().get() will never return, no matter if I retry it after a timeout.

I had to downgrade to 2.7.0 to have it work as expected.

Originally posted by @drommk in https://github.com/launchdarkly/android-client-sdk/issues/86#issuecomment-555067351

gwhelanLD commented 4 years ago

@drommk,

We'll investigate this issue and try to replicate. Any more specific info on your Rx streams involved in the interactions with the LaunchDarkly Android SDK may be helpful in tracking the issue down.

Thanks, @gwhelanLD

bwoskow-ld commented 4 years ago

Filed internally as 62120

gwhelanLD commented 4 years ago

Hi @drommk,

We revisited the completion cases of the Future returned by the init and identify for the 2.11.0 release and improved our test coverage of this area. Hopefully the changes should address your difficulties with the completion of the Future. I'm closing this issue as I believe we have addressed the cases that could lead to the cases you described, but feel free to reopen if you run into the same issue.

Thanks, @gwhelanLD