<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/openstack/taskflow.git/taskflow, branch queens-eol</title>
<subtitle>opendev.org: openstack/taskflow.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/'/>
<entry>
<title>Fix invalid json unit test</title>
<updated>2018-02-18T11:24:00+00:00</updated>
<author>
<name>Ben Nemec</name>
<email>bnemec@redhat.com</email>
</author>
<published>2018-02-08T16:58:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=50897c0b0a5d389f1571d4079e10643ab537fa53'/>
<id>50897c0b0a5d389f1571d4079e10643ab537fa53</id>
<content type='text'>
Recent versions of oslo.serialization have made it possible to dump
exceptions to JSON, which broke a unit test in taskflow that
assumed exceptions were unserializable.  This change switches to an
explicitly unserializable class for that test.

Change-Id: If6d19bc9fcf1f1813cb087d42dc7ba6a61c71b3d
Closes-Bug: 1748241
(cherry picked from commit 44ce6eae918d44c0ee85998d0526e916dee8de26)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Recent versions of oslo.serialization have made it possible to dump
exceptions to JSON, which broke a unit test in taskflow that
assumed exceptions were unserializable.  This change switches to an
explicitly unserializable class for that test.

Change-Id: If6d19bc9fcf1f1813cb087d42dc7ba6a61c71b3d
Closes-Bug: 1748241
(cherry picked from commit 44ce6eae918d44c0ee85998d0526e916dee8de26)
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Avoid log warning when closing is underway (on purpose)"</title>
<updated>2017-12-12T22:33:40+00:00</updated>
<author>
<name>Zuul</name>
<email>zuul@review.openstack.org</email>
</author>
<published>2017-12-12T22:33:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=4caeea11cc5fd755050653b89962397aee5218f1'/>
<id>4caeea11cc5fd755050653b89962397aee5218f1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove class StopWatch from timing</title>
<updated>2017-10-24T05:44:27+00:00</updated>
<author>
<name>chenghuiyu</name>
<email>yuchenghui@unionpay.com</email>
</author>
<published>2017-09-05T03:54:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=d0a2f8046251696e2f23a7689440b7b0f6e74f4d'/>
<id>d0a2f8046251696e2f23a7689440b7b0f6e74f4d</id>
<content type='text'>
In new release timeutils.StopWatch can be used from oslo.uitls, so it was deprecated for removal in
timing.py

Change-Id: I138b8d276998a4ea2537966767cbd14f96daf757
Closes-Bug: #1715043
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In new release timeutils.StopWatch can be used from oslo.uitls, so it was deprecated for removal in
timing.py

Change-Id: I138b8d276998a4ea2537966767cbd14f96daf757
Closes-Bug: #1715043
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Remove method blather in log adapter"</title>
<updated>2017-10-24T03:17:54+00:00</updated>
<author>
<name>Zuul</name>
<email>zuul@review.openstack.org</email>
</author>
<published>2017-10-24T03:17:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=8ca9a30599972a3e2d6d2cd6d5cd8e08f7496b33'/>
<id>8ca9a30599972a3e2d6d2cd6d5cd8e08f7496b33</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove method blather in log adapter</title>
<updated>2017-09-04T06:06:56+00:00</updated>
<author>
<name>chenghuiyu</name>
<email>yuchenghui@unionpay.com</email>
</author>
<published>2017-09-04T06:06:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=00b5d3f2455931ada04b32effcee40416f414ea6'/>
<id>00b5d3f2455931ada04b32effcee40416f414ea6</id>
<content type='text'>
As method blather was using in new place, it was deprecated for removal
in new release.

Change-Id: Ic8d425e1774d6b7090ec105f2b37467a90c6e1e6
Closes-Bug: #1714873
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As method blather was using in new place, it was deprecated for removal
in new release.

Change-Id: Ic8d425e1774d6b7090ec105f2b37467a90c6e1e6
Closes-Bug: #1714873
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove kwarg timeout in executor conductor</title>
<updated>2017-09-01T12:27:58+00:00</updated>
<author>
<name>chenghuiyu</name>
<email>yuchenghui@unionpay.com</email>
</author>
<published>2017-09-01T12:27:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=4bf1db9f438a8d95d007ec36be87cdfb9590f6a0'/>
<id>4bf1db9f438a8d95d007ec36be87cdfb9590f6a0</id>
<content type='text'>
The method stop returns immediately regardless of whether the conductor has been
stopped, so kwarg timeout is no longer necessary, and it is deprecated for removal.

Change-Id: I50e5cbb1a00eb9b6f358f150716d2a5d682a49c9
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The method stop returns immediately regardless of whether the conductor has been
stopped, so kwarg timeout is no longer necessary, and it is deprecated for removal.

Change-Id: I50e5cbb1a00eb9b6f358f150716d2a5d682a49c9
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid log warning when closing is underway (on purpose)</title>
<updated>2017-08-01T11:28:26+00:00</updated>
<author>
<name>Joshua Harlow</name>
<email>harlowja@gmail.com</email>
</author>
<published>2016-03-18T05:48:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=c985dbb63de2b2890d1b4a050171195bbb123771'/>
<id>c985dbb63de2b2890d1b4a050171195bbb123771</id>
<content type='text'>
Related-Bug: #1557107

Change-Id: I8b2f327dadbf038cd050f05fbc46a428282a3d82
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Related-Bug: #1557107

Change-Id: I8b2f327dadbf038cd050f05fbc46a428282a3d82
</pre>
</div>
</content>
</entry>
<entry>
<title>Update URLs in documents according to document migration</title>
<updated>2017-07-13T04:05:18+00:00</updated>
<author>
<name>ChangBo Guo(gcb)</name>
<email>eric.guo@easystack.cn</email>
</author>
<published>2017-07-13T04:05:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=40645e19a7036f8e7b1e5d7d1a37a5ef874cfc4c'/>
<id>40645e19a7036f8e7b1e5d7d1a37a5ef874cfc4c</id>
<content type='text'>
Change-Id: I9ca92fdcec388e02462332e04fe7c1bf8b5f64b8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I9ca92fdcec388e02462332e04fe7c1bf8b5f64b8
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Fix process based executor task proxying-back events"</title>
<updated>2017-07-11T10:48:25+00:00</updated>
<author>
<name>Jenkins</name>
<email>jenkins@review.openstack.org</email>
</author>
<published>2017-07-11T10:48:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=eea48a18d7b015661432e6b6496ffe3e42c3f044'/>
<id>eea48a18d7b015661432e6b6496ffe3e42c3f044</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix process based executor task proxying-back events</title>
<updated>2017-07-11T03:14:04+00:00</updated>
<author>
<name>Joshua Harlow</name>
<email>harlowja@yahoo-inc.com</email>
</author>
<published>2016-01-25T23:56:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=84c7a7b2c7dcbade1bc802cac7c93ccd9b746cb3'/>
<id>84c7a7b2c7dcbade1bc802cac7c93ccd9b746cb3</id>
<content type='text'>
Let's dive into what the problem is here.

First a description of what happens to a task that
is to be executed in a external (but local) process
via the process executor mechanism.

When a task is about to be sent to execute in the
external (but local) process its first cloned, this
is mainly done so that its notification callbacks can
be altered in a safe manner (ie not altering the
original task object to do this) and that clone has
its notifier emptied out.

What replaces the clone's notifier callbacks though
is a new object (that has a __call__ method so it
looks like just another callback) that will send
messages to the parent process (the one that has
the engine in it) over a secure(ish) channel whenever
the local task triggers its notifier notify() method.

This allows for callbacks in the parent process to
get triggered because once the messages recieved the
original tasks notifier object has its notify() method
called (therefore those callbacks do not really know
the task they are getting messages from is executing out
of process).

The issue though is that if the ANY(*) event type is registered
due to how it works in the notifier is that if the child/cloned
notifier has the ANY event type registered and the cloned task
calls notify() with a specific event this will cause the ANY
callback (in the clone) to transmit a message *and* it will
cause the *specific* event callback to also transmit a message
back to the parent process.

On the engine process side it will get 2 messages and trigger
the callbacks 3 times (twice for the specific event callback
because how the local notifier has the ANY callback registered
and one more time when the local process also sends the same
event based on its registration of the ANY event in the child
process).

This is not what is expected (the message rcved on the engine
process should only trigger one callback to get triggered
if the engine process task has no ANY callback registered or two
engine process callbacks to get triggered if the engine process
task has the ANY callback registered).

Closes-Bug: #1537948

Change-Id: I271bf1f23ad73df6c177cf00fd902c4881ba44ae
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Let's dive into what the problem is here.

First a description of what happens to a task that
is to be executed in a external (but local) process
via the process executor mechanism.

When a task is about to be sent to execute in the
external (but local) process its first cloned, this
is mainly done so that its notification callbacks can
be altered in a safe manner (ie not altering the
original task object to do this) and that clone has
its notifier emptied out.

What replaces the clone's notifier callbacks though
is a new object (that has a __call__ method so it
looks like just another callback) that will send
messages to the parent process (the one that has
the engine in it) over a secure(ish) channel whenever
the local task triggers its notifier notify() method.

This allows for callbacks in the parent process to
get triggered because once the messages recieved the
original tasks notifier object has its notify() method
called (therefore those callbacks do not really know
the task they are getting messages from is executing out
of process).

The issue though is that if the ANY(*) event type is registered
due to how it works in the notifier is that if the child/cloned
notifier has the ANY event type registered and the cloned task
calls notify() with a specific event this will cause the ANY
callback (in the clone) to transmit a message *and* it will
cause the *specific* event callback to also transmit a message
back to the parent process.

On the engine process side it will get 2 messages and trigger
the callbacks 3 times (twice for the specific event callback
because how the local notifier has the ANY callback registered
and one more time when the local process also sends the same
event based on its registration of the ANY event in the child
process).

This is not what is expected (the message rcved on the engine
process should only trigger one callback to get triggered
if the engine process task has no ANY callback registered or two
engine process callbacks to get triggered if the engine process
task has the ANY callback registered).

Closes-Bug: #1537948

Change-Id: I271bf1f23ad73df6c177cf00fd902c4881ba44ae
</pre>
</div>
</content>
</entry>
</feed>
