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

Enqueued item gets lost when the client stops and reconnects sooner than hazelcast.client.endpoint.remove.delay.seconds #11700

Closed
ncherkas opened this issue Oct 31, 2017 · 0 comments

Comments

@ncherkas
Copy link

@ncherkas ncherkas commented Oct 31, 2017

Issue reproduces in the following scenario

  1. Consumer application uses Hazelcast client to call take method on IQueue and gets blocked, IQueue is empty
  2. Consumer application stopped, no items received
  3. Up to 10 sec. delay
  4. Consumer application starts again and calls take method
  5. Producer application calls Hazelcast client API to populate IQueue with 5 items
  6. Consumer application receives only 4 items, 1st one gets lost

10 sec. delay here is related to a system property hazelcast.client.endpoint.remove.delay.seconds which specifies a delay which triggers client connection removal if it's not alive.

We probably should track which operations were applied since the moment when connectivity problem arrived and roll back them if we detected that client is not alive longer than hazelcast.client.endpoint.remove.delay.seconds.

@ncherkas ncherkas changed the title Enqueued item gets lost when the client stops and reconnects sooner than `hazelcast.client.endpoint.remove.delay.seconds` Enqueued item gets lost when the client stops and reconnects sooner than hazelcast.client.endpoint.remove.delay.seconds Oct 31, 2017
sancar added a commit to sancar/hazelcast that referenced this issue Nov 2, 2017
Client operations cleanup were delayed with lock/semaphore
cleanup. Since operations don't have a value when related
connection is dead(they have no way to return response),
they should be cleaned right after client disconnected.

fixes hazelcast#11700
sancar added a commit to sancar/hazelcast that referenced this issue Nov 2, 2017
Client operations cleanup were delayed as lock/semaphore
cleanup. Since operations don't have a value when related
connection is dead(they have no way to return response),
they should be cleaned right after client disconnected.

fixes hazelcast#11700
sancar added a commit to sancar/hazelcast that referenced this issue Nov 2, 2017
Client operations cleanup were delayed as lock/semaphore
cleanup. Since operations don't have a value when related
connection is dead(they have no way to return response),
they should be cleaned right after client disconnected.

fixes hazelcast#11700
@sancar sancar removed the Team: Core label Nov 2, 2017
@sancar sancar added this to the 3.9.1 milestone Nov 2, 2017
@sancar sancar closed this in #11714 Nov 7, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

3 participants
You can’t perform that action at this time.