mirror of
https://github.com/rsyslog/rsyslog.git
synced 2025-12-20 02:40:42 +01:00
Suspension during beginTransaction() did not properly cause the action to be suspended, thus we entered an endless loop.
35 lines
930 B
Plaintext
35 lines
930 B
Plaintext
// This file is part of rsyslog.
|
|
//
|
|
// rsyslog message state diagram
|
|
//
|
|
// see http://www.graphviz.org for how to obtain the graphviz processor
|
|
// which is used to build the actual graph.
|
|
//
|
|
// generate the graph with
|
|
// $ dot file.dot -Tpng >file.png
|
|
|
|
digraph msgState {
|
|
compound=true; nodesep=1.0
|
|
//label="\n\nrsyslog action transaction states\nhttp://www.rsyslog.com";
|
|
//fontsize=20;
|
|
|
|
rdy [label="ready" group="main"];
|
|
itx [label="in Tx" group="main"];
|
|
comm [label="commit"]
|
|
rtry [label="retry"]
|
|
susp [label="suspended"]
|
|
|
|
rdy -> itx [label="transaction begins"]
|
|
rdy -> rtry [label="begin tx\nerror"]
|
|
itx -> itx [label="success"]
|
|
itx -> comm [label="commit\n(caller or auto)"]
|
|
itx -> rtry [label="error"]
|
|
comm -> rdy [label="success"]
|
|
comm -> rtry [label="error"]
|
|
rtry -> rdy [label="recovered"]
|
|
rtry -> susp [label="could not\nrecover"]
|
|
susp -> rtry [label="timeout expired"]
|
|
|
|
{rank=same; comm rtry}
|
|
}
|