Comments (4)
From @krancour on October 16, 2017 20:17
This is a duplicate of #10
but the best practice is to make steps idempotent which makes failure handling less important (because the steps can be re-run with minimal negative consequence)
This is true to a very limited extent. There are lots of things that could go wrong that will continue to fail no matter how many times they are retried.
Here's a real world example (for which we should probably open a separate issue, tbh)...
On a normal CI run, I saw provisioning fail because either a UUID or randomly generated name had the misfortune of having the character sequence xbox
occur (in that precise order) within it. This actually caused provisioning to fail because ARM seems to disallow names that resemble MSFT brands in any way.
No amount of retrying this would make it succeed. I'm certain there are many, many other unanticipated errors that would suffer from the same fate. As it stands now, there are no retries at all for this reason.
For clarity, the reason we (currently) try to make tasks idempotent isn't due to explicit failure of a task, but rather due to the possibility that the process executing a task (or waiting on a task to complete) just completely tips over and dies (for presumably unrelated reasons, like an OOM, for instance). The reliable queue pattern we use will reassign the outstanding task to another worker and that's the current impetus for creating idempotent tasks.
We still absolutely need to tackle this. I only wanted to add some clarity around the current behavior and design choices that were made very early on.
from open-service-broker-azure.
@krancour sorry for the dupe, and thanks for the added clarity! Feel free to close if appropriate.
from open-service-broker-azure.
From @krancour on October 16, 2017 20:23
No worries on the dupe. I think I'll close #10 instead because this thread has a more valuable level of context in it that #10 now.
from open-service-broker-azure.
Close as async engine was separated into its own project via #560.
from open-service-broker-azure.
Related Issues (20)
- Break down lifecycle test into several pieces
- Error: error validating "": error validating data: field spec.dataSource for v1.PersistentVolumeClaimSpec is required HOT 1
- adminAccountSettings - unrecognized field HOT 2
- OSBA can't create a cosmosDB collection? HOT 7
- Is subscriptionId and tenantId configurable during service creation? HOT 3
- Enable content moderator service in the broker
- Reapplying ServiceInstance yaml fails HOT 3
- Child (azure-mysql-5-7-database) stuck in Provisioning if deployed with parent (azure-mysql-5-7-dbms). HOT 1
- MySql dbms serverName restrictions more strict than documentation
- Kubernetes Operator for OSBA? HOT 3
- Provision a new database on an elastic SQL-Pool HOT 4
- Adding Switzerland North and Switzerland West HOT 3
- extensions/v1beta1 is used >> deployment on k8s v1.16+ not possible HOT 3
- Cosmos DB: Cassandra support
- Support Provisioning Parameters: "Tags" for new Databases not only DBMS (MSSQL)
- Enable Service Binding secrets to be stored in Azure Key vault HOT 1
- Problem in China Azure environment HOT 3
- Status of the repository HOT 3
- Errors will happen when upgrading the libraries HOT 1
- Open service broker Azure does not support upgrade.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from open-service-broker-azure.