Comments (5)
Interesting. It worked for me.
[root@st2el7 /]# st2 run examples.orchestra-join
....
id: 5b332e8addf0ce22553f5c6d
action.ref: examples.orchestra-join
parameters: None
status: succeeded
start_timestamp: Wed, 27 Jun 2018 06:28:26 UTC
end_timestamp: Wed, 27 Jun 2018 06:28:34 UTC
result:
output:
messages:
- Fee fi fo fum
- I smell the blood of an English man
- Be alive, or be he dead
- I'll grind his bones to make my bread
+--------------------------+------------------------+--------+-----------+-------------------------------+
| id | status | task | action | start_timestamp |
+--------------------------+------------------------+--------+-----------+-------------------------------+
| 5b332e8bddf0ce176b9c6c53 | succeeded (1s elapsed) | task1 | core.noop | Wed, 27 Jun 2018 06:28:26 UTC |
| 5b332e8bddf0ce174e601c58 | succeeded (1s elapsed) | task2 | core.echo | Wed, 27 Jun 2018 06:28:27 UTC |
| 5b332e8cddf0ce174e601c5b | succeeded (0s elapsed) | task4 | core.echo | Wed, 27 Jun 2018 06:28:28 UTC |
| 5b332e8cddf0ce174e601c60 | succeeded (1s elapsed) | task6 | core.noop | Wed, 27 Jun 2018 06:28:28 UTC |
| 5b332e8dddf0ce174e601c61 | succeeded (1s elapsed) | task3 | core.echo | Wed, 27 Jun 2018 06:28:28 UTC |
| 5b332e8dddf0ce174e601c65 | succeeded (1s elapsed) | task5 | core.noop | Wed, 27 Jun 2018 06:28:29 UTC |
| 5b332e8eddf0ce174e601c67 | succeeded (2s elapsed) | task8 | core.noop | Wed, 27 Jun 2018 06:28:29 UTC |
| 5b332e8fddf0ce174e601c6a | succeeded (1s elapsed) | task7 | core.echo | Wed, 27 Jun 2018 06:28:31 UTC |
| 5b332e90ddf0ce174e601c6d | succeeded (0s elapsed) | task9 | core.noop | Wed, 27 Jun 2018 06:28:32 UTC |
| 5b332e91ddf0ce174e601c70 | succeeded (1s elapsed) | task10 | core.noop | Wed, 27 Jun 2018 06:28:33 UTC |
+--------------------------+------------------------+--------+-----------+-------------------------------+
[root@st2el7 /]# st2 execution re-run 5b332e8addf0ce22553f5c6d
.....
id: 5b332ea2ddf0ce22553f5c70
action.ref: examples.orchestra-join
parameters: None
status: succeeded
start_timestamp: Wed, 27 Jun 2018 06:28:50 UTC
end_timestamp: Wed, 27 Jun 2018 06:28:59 UTC
result:
output:
messages:
- Fee fi fo fum
- I smell the blood of an English man
- Be alive, or be he dead
- I'll grind his bones to make my bread
+--------------------------+------------------------+--------+-----------+-------------------------------+
| id | status | task | action | start_timestamp |
+--------------------------+------------------------+--------+-----------+-------------------------------+
| 5b332ea2ddf0ce176b9c6c56 | succeeded (1s elapsed) | task1 | core.noop | Wed, 27 Jun 2018 06:28:50 UTC |
| 5b332ea3ddf0ce174e601c73 | succeeded (1s elapsed) | task2 | core.echo | Wed, 27 Jun 2018 06:28:51 UTC |
| 5b332ea4ddf0ce174e601c76 | succeeded (1s elapsed) | task4 | core.echo | Wed, 27 Jun 2018 06:28:51 UTC |
| 5b332ea5ddf0ce174e601c7a | succeeded (1s elapsed) | task6 | core.noop | Wed, 27 Jun 2018 06:28:52 UTC |
| 5b332ea5ddf0ce174e601c7d | succeeded (1s elapsed) | task3 | core.echo | Wed, 27 Jun 2018 06:28:53 UTC |
| 5b332ea5ddf0ce174e601c7f | succeeded (1s elapsed) | task5 | core.noop | Wed, 27 Jun 2018 06:28:53 UTC |
| 5b332ea6ddf0ce174e601c82 | succeeded (2s elapsed) | task8 | core.noop | Wed, 27 Jun 2018 06:28:53 UTC |
| 5b332ea8ddf0ce174e601c85 | succeeded (2s elapsed) | task7 | core.echo | Wed, 27 Jun 2018 06:28:55 UTC |
| 5b332ea8ddf0ce174e601c88 | succeeded (1s elapsed) | task9 | core.noop | Wed, 27 Jun 2018 06:28:56 UTC |
| 5b332eaaddf0ce174e601c8b | succeeded (1s elapsed) | task10 | core.noop | Wed, 27 Jun 2018 06:28:58 UTC |
+--------------------------+------------------------+--------+-----------+-------------------------------+
from orquesta.
that's why we manually test across the board, I guess
from orquesta.
After reinstalling st2, the example started acting as there's some kind of race: sometimes it succeeds while other times fail.
from orquesta.
So, when a DB write conflict occurs, the workflow engine should retry the operation. We do this because we don't use distributed locking. I think I identified the root cause. The task execution requested an action execution and then update the task execution. The action execution completed before the task execution finish processing its original request. I didn't add a retry decorator there because I didn't think there was a race. I will patch and test this tomorrow.
from orquesta.
Fix with StackStorm/st2#4207
from orquesta.
Related Issues (20)
- Workflow stuck in running state
- Exception running workflow - 'ValueError: malformed node or string: <_ast.BinOp object at 0x7f80d29946d8>' HOT 3
- Workflow join is not triggered on complete for failed task(s) HOT 8
- The ujson 2.0.x doesn't compatible with Orquesta HOT 1
- Retries using with-items runs a retry even on objects that succeeded as well HOT 5
- Add ability in task spec to wait for a lock before proceeding HOT 4
- Join failure within nested workflows can cause Parent workflow to run indefinitely.
- Join ALL and conditional branches conflict? HOT 6
- Incomplete next staged concurrent task with items if last running nested item fails.
- KeyValue DataStore does not load in Workflow HOT 2
- 'Inspect the workflow spec' and 'Instantiate the workflow conductor' take too long HOT 7
- Workflow join is not properly working if one step fails HOT 4
- Disable action notify triggers when action is executed under workflow context HOT 3
- Naming a workflow task "get_task" causes "'TaskSpec' object is not callable" error
- Valid YAQL in With Items Input Fails HOT 8
- JOIN all with condition HOT 2
- Investigate using `rustworkx` instead of `networkx` HOT 1
- Workflow stuck with concurrency value of 0.
- Orquesta workflow inquiries responder user ID not found
- task with join: all starts without waiting for all the previous task completed when there is a loop
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 orquesta.