Skip to content

Conversation

@tkashem
Copy link

@tkashem tkashem commented Sep 1, 2020

No description provided.

@openshift-ci-robot openshift-ci-robot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Sep 1, 2020
@tkashem
Copy link
Author

tkashem commented Sep 1, 2020

/retest

@tkashem tkashem force-pushed the etcd-retry branch 2 times, most recently from 1d09507 to bb7a0d3 Compare September 1, 2020 21:54
@tkashem
Copy link
Author

tkashem commented Sep 1, 2020

/retest

@tkashem
Copy link
Author

tkashem commented Sep 2, 2020

/retest

@tkashem tkashem force-pushed the etcd-retry branch 2 times, most recently from 6fd0f1f to 8a7c1ce Compare September 2, 2020 04:28

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if the err could be read as rpctypes.Error(err) (https://github.com/etcd-io/etcd/blob/master/etcdserver/api/v3rpc/rpctypes/error.go#L230) then according to https://github.com/etcd-io/etcd/blob/master/clientv3/retry.go#L53 all immutable errors that map to codes.Unavailable are safe to retry

@tkashem
Copy link
Author

tkashem commented Sep 2, 2020

/retest

2 similar comments
@tkashem
Copy link
Author

tkashem commented Sep 2, 2020

/retest

@tkashem
Copy link
Author

tkashem commented Sep 2, 2020

/retest

@tkashem tkashem force-pushed the etcd-retry branch 2 times, most recently from 9e18ee5 to e11df03 Compare September 2, 2020 19:03
@tkashem
Copy link
Author

tkashem commented Sep 2, 2020

/retest

@tkashem tkashem force-pushed the etcd-retry branch 2 times, most recently from de5fe83 to ab2788b Compare September 3, 2020 21:12
@tkashem
Copy link
Author

tkashem commented Sep 4, 2020

/retest

1 similar comment
@tkashem
Copy link
Author

tkashem commented Sep 4, 2020

/retest

@tkashem
Copy link
Author

tkashem commented Sep 4, 2020

/retest

@tkashem
Copy link
Author

tkashem commented Sep 6, 2020

/retest

@tkashem tkashem force-pushed the etcd-retry branch 3 times, most recently from f215018 to 243d8fd Compare September 9, 2020 21:54
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Aug 6, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Aug 9, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Aug 12, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Aug 15, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Aug 21, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Aug 24, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Aug 27, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Aug 30, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Sep 8, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Sep 15, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Sep 16, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Sep 18, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Sep 19, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Sep 24, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors

UPSTREAM: <carry>: Don't retry storage calls with side effects.

The existing patch retried any etcd error returned from storage with the code "Unavailable". Writes
can only be safely retried if the client can be absolutely sure that the initial attempt ended
before persisting any changes. The "Unavailable" code includes errors like "timed out" that can't be
safely retried for writes.
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Sep 24, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors

UPSTREAM: <carry>: Don't retry storage calls with side effects.

The existing patch retried any etcd error returned from storage with the code "Unavailable". Writes
can only be safely retried if the client can be absolutely sure that the initial attempt ended
before persisting any changes. The "Unavailable" code includes errors like "timed out" that can't be
safely retried for writes.

UPSTREAM: <carry>: Add retries for GetCurrentResourceVersion.

UPSTREAM: <carry>: squash: storage interface underlying the retryClient has changed

Removed methods:
- Count

Added methods:
- Stats
- SetKeysFunc
- CompactRevision
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Sep 25, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors

UPSTREAM: <carry>: Don't retry storage calls with side effects.

The existing patch retried any etcd error returned from storage with the code "Unavailable". Writes
can only be safely retried if the client can be absolutely sure that the initial attempt ended
before persisting any changes. The "Unavailable" code includes errors like "timed out" that can't be
safely retried for writes.

UPSTREAM: <carry>: Add retries for GetCurrentResourceVersion.

UPSTREAM: <carry>: squash: storage interface underlying the retryClient has changed

Removed methods:
- Count

Added methods:
- Stats
- SetKeysFunc
- CompactRevision
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Sep 25, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors

UPSTREAM: <carry>: Don't retry storage calls with side effects.

The existing patch retried any etcd error returned from storage with the code "Unavailable". Writes
can only be safely retried if the client can be absolutely sure that the initial attempt ended
before persisting any changes. The "Unavailable" code includes errors like "timed out" that can't be
safely retried for writes.

UPSTREAM: <carry>: Add retries for GetCurrentResourceVersion.

UPSTREAM: <carry>: squash: storage interface underlying the retryClient has changed

Removed methods:
- Count

Added methods:
- Stats
- SetKeysFunc
- CompactRevision
bertinatto pushed a commit to bertinatto/kubernetes that referenced this pull request Oct 1, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors

UPSTREAM: <carry>: Don't retry storage calls with side effects.

The existing patch retried any etcd error returned from storage with the code "Unavailable". Writes
can only be safely retried if the client can be absolutely sure that the initial attempt ended
before persisting any changes. The "Unavailable" code includes errors like "timed out" that can't be
safely retried for writes.

UPSTREAM: <carry>: Add retries for GetCurrentResourceVersion.

UPSTREAM: <carry>: squash: storage interface underlying the retryClient has changed

Removed methods:
- Count

Added methods:
- Stats
- SetKeysFunc
- CompactRevision
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Oct 1, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors

UPSTREAM: <carry>: Don't retry storage calls with side effects.

The existing patch retried any etcd error returned from storage with the code "Unavailable". Writes
can only be safely retried if the client can be absolutely sure that the initial attempt ended
before persisting any changes. The "Unavailable" code includes errors like "timed out" that can't be
safely retried for writes.

UPSTREAM: <carry>: Add retries for GetCurrentResourceVersion.

UPSTREAM: <carry>: squash: storage interface underlying the retryClient has changed

Removed methods:
- Count

Added methods:
- Stats
- SetKeysFunc
- CompactRevision
bertinatto pushed a commit to bertinatto/kubernetes that referenced this pull request Oct 2, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors

UPSTREAM: <carry>: Don't retry storage calls with side effects.

The existing patch retried any etcd error returned from storage with the code "Unavailable". Writes
can only be safely retried if the client can be absolutely sure that the initial attempt ended
before persisting any changes. The "Unavailable" code includes errors like "timed out" that can't be
safely retried for writes.

UPSTREAM: <carry>: Add retries for GetCurrentResourceVersion.

UPSTREAM: <carry>: squash: storage interface underlying the retryClient has changed

Removed methods:
- Count

Added methods:
- Stats
- SetKeysFunc
- CompactRevision
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Oct 2, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors

UPSTREAM: <carry>: Don't retry storage calls with side effects.

The existing patch retried any etcd error returned from storage with the code "Unavailable". Writes
can only be safely retried if the client can be absolutely sure that the initial attempt ended
before persisting any changes. The "Unavailable" code includes errors like "timed out" that can't be
safely retried for writes.

UPSTREAM: <carry>: Add retries for GetCurrentResourceVersion.

UPSTREAM: <carry>: squash: storage interface underlying the retryClient has changed

Removed methods:
- Count

Added methods:
- Stats
- SetKeysFunc
- CompactRevision
bertinatto pushed a commit to bertinatto/kubernetes that referenced this pull request Oct 6, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors

UPSTREAM: <carry>: Don't retry storage calls with side effects.

The existing patch retried any etcd error returned from storage with the code "Unavailable". Writes
can only be safely retried if the client can be absolutely sure that the initial attempt ended
before persisting any changes. The "Unavailable" code includes errors like "timed out" that can't be
safely retried for writes.

UPSTREAM: <carry>: Add retries for GetCurrentResourceVersion.

UPSTREAM: <carry>: squash: storage interface underlying the retryClient has changed

Removed methods:
- Count

Added methods:
- Stats
- SetKeysFunc
- CompactRevision
bertinatto pushed a commit to bertinatto/kubernetes that referenced this pull request Oct 6, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors

UPSTREAM: <carry>: Don't retry storage calls with side effects.

The existing patch retried any etcd error returned from storage with the code "Unavailable". Writes
can only be safely retried if the client can be absolutely sure that the initial attempt ended
before persisting any changes. The "Unavailable" code includes errors like "timed out" that can't be
safely retried for writes.

UPSTREAM: <carry>: Add retries for GetCurrentResourceVersion.

UPSTREAM: <carry>: squash: storage interface underlying the retryClient has changed

Removed methods:
- Count

Added methods:
- Stats
- SetKeysFunc
- CompactRevision
bertinatto pushed a commit to bertinatto/kubernetes that referenced this pull request Oct 7, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors

UPSTREAM: <carry>: Don't retry storage calls with side effects.

The existing patch retried any etcd error returned from storage with the code "Unavailable". Writes
can only be safely retried if the client can be absolutely sure that the initial attempt ended
before persisting any changes. The "Unavailable" code includes errors like "timed out" that can't be
safely retried for writes.

UPSTREAM: <carry>: Add retries for GetCurrentResourceVersion.

UPSTREAM: <carry>: squash: storage interface underlying the retryClient has changed

Removed methods:
- Count

Added methods:
- Stats
- SetKeysFunc
- CompactRevision
bertinatto pushed a commit to bertinatto/kubernetes that referenced this pull request Oct 8, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors

UPSTREAM: <carry>: Don't retry storage calls with side effects.

The existing patch retried any etcd error returned from storage with the code "Unavailable". Writes
can only be safely retried if the client can be absolutely sure that the initial attempt ended
before persisting any changes. The "Unavailable" code includes errors like "timed out" that can't be
safely retried for writes.

UPSTREAM: <carry>: Add retries for GetCurrentResourceVersion.

UPSTREAM: <carry>: squash: storage interface underlying the retryClient has changed

Removed methods:
- Count

Added methods:
- Stats
- SetKeysFunc
- CompactRevision
bertinatto pushed a commit to bertinatto/kubernetes that referenced this pull request Oct 9, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors

UPSTREAM: <carry>: Don't retry storage calls with side effects.

The existing patch retried any etcd error returned from storage with the code "Unavailable". Writes
can only be safely retried if the client can be absolutely sure that the initial attempt ended
before persisting any changes. The "Unavailable" code includes errors like "timed out" that can't be
safely retried for writes.

UPSTREAM: <carry>: Add retries for GetCurrentResourceVersion.

UPSTREAM: <carry>: squash: storage interface underlying the retryClient has changed

Removed methods:
- Count

Added methods:
- Stats
- SetKeysFunc
- CompactRevision
bertinatto pushed a commit to bertinatto/kubernetes that referenced this pull request Oct 14, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors

UPSTREAM: <carry>: Don't retry storage calls with side effects.

The existing patch retried any etcd error returned from storage with the code "Unavailable". Writes
can only be safely retried if the client can be absolutely sure that the initial attempt ended
before persisting any changes. The "Unavailable" code includes errors like "timed out" that can't be
safely retried for writes.

UPSTREAM: <carry>: Add retries for GetCurrentResourceVersion.

UPSTREAM: <carry>: squash: storage interface underlying the retryClient has changed

Removed methods:
- Count

Added methods:
- Stats
- SetKeysFunc
- CompactRevision
bertinatto pushed a commit to bertinatto/kubernetes that referenced this pull request Oct 15, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors

UPSTREAM: <carry>: Don't retry storage calls with side effects.

The existing patch retried any etcd error returned from storage with the code "Unavailable". Writes
can only be safely retried if the client can be absolutely sure that the initial attempt ended
before persisting any changes. The "Unavailable" code includes errors like "timed out" that can't be
safely retried for writes.

UPSTREAM: <carry>: Add retries for GetCurrentResourceVersion.

UPSTREAM: <carry>: squash: storage interface underlying the retryClient has changed

Removed methods:
- Count

Added methods:
- Stats
- SetKeysFunc
- CompactRevision
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Nov 20, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors

UPSTREAM: <carry>: Don't retry storage calls with side effects.

The existing patch retried any etcd error returned from storage with the code "Unavailable". Writes
can only be safely retried if the client can be absolutely sure that the initial attempt ended
before persisting any changes. The "Unavailable" code includes errors like "timed out" that can't be
safely retried for writes.

UPSTREAM: <carry>: Add retries for GetCurrentResourceVersion.

UPSTREAM: <carry>: squash: storage interface underlying the retryClient has changed

Removed methods:
- Count

Added methods:
- Stats
- SetKeysFunc
- CompactRevision
jacobsee pushed a commit to jacobsee/kubernetes that referenced this pull request Nov 24, 2025
This commit renews openshift#327

What has changed compared to the original PR is:
- The retryClient interface has been adapted to storage.Interface.
- The isRetriableEtcdError method has been completely changed; it seems that previously the error we wanted to retry was not being retried. Even the unit tests were failing.

Overall, I still think this is not the correct fix. The proper fix should be added to the etcd client.

UPSTREAM: <carry>: retry etcd Unavailable errors

This is the second commit for the retry logic.
This commit adds unit tests and slightly improves the logging.

During a rebase squash with the previous one.

UPSTREAM: <carry>: retry_etcdclient: expose retry logic functionality

during rebase merge with: UPSTREAM: <carry>: retry etcd Unavailable errors

UPSTREAM: <carry>: Don't retry storage calls with side effects.

The existing patch retried any etcd error returned from storage with the code "Unavailable". Writes
can only be safely retried if the client can be absolutely sure that the initial attempt ended
before persisting any changes. The "Unavailable" code includes errors like "timed out" that can't be
safely retried for writes.

UPSTREAM: <carry>: Add retries for GetCurrentResourceVersion.

UPSTREAM: <carry>: squash: storage interface underlying the retryClient has changed

Removed methods:
- Count

Added methods:
- Stats
- SetKeysFunc
- CompactRevision
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. bugzilla/severity-medium Referenced Bugzilla bug's severity is medium for the branch this PR is targeting. bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants