pypushflow issueshttps://gitlab.esrf.fr/workflow/pypushflow/-/issues2024-01-31T10:28:27+01:00https://gitlab.esrf.fr/workflow/pypushflow/-/issues/21Mongo serializaion can fail2024-01-31T10:28:27+01:00Wout De NolfMongo serializaion can failThe exception instance `WorkflowExceptionInstance` is added in `PythonActor.errorHandler` by https://gitlab.esrf.fr/workflow/pypushflow/-/merge_requests/70 to solve https://gitlab.esrf.fr/workflow/pypushflow/-/issues/20.
This might be t...The exception instance `WorkflowExceptionInstance` is added in `PythonActor.errorHandler` by https://gitlab.esrf.fr/workflow/pypushflow/-/merge_requests/70 to solve https://gitlab.esrf.fr/workflow/pypushflow/-/issues/20.
This might be the cause of the following error (reported by @svensson )
```
bson.errors.InvalidDocument: cannot encode object: RuntimeError("Task 'Check move of phi' failed"), of type: <class 'RuntimeError'>
2024-01-30 16:56:37,207 DEBUG [TroubleShooting] Thread ended for 'Name mapper <Check move of phi -only on error- CommonErrorReporter/Log error message>' (1 threads running)
2024-01-30 16:56:37,209 ERROR [TroubleShooting] [<EwoksPythonActor> Check move of phi] In errorHandler for 'Check move of phi'
concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/ewokscore/task.py", line 401, in execute
self.run()
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/ewokscore/ppftasks.py", line 30, in run
result = method(**method_kwargs)
File "/mnt/multipath-shares/sware/exp/pxsoft/mxworkflows/id30a2/bes/src/bes/actors/checkMoveOfPhi.py", line 39, in run
print(1/0)
ZeroDivisionError: division by zero
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/concurrent/futures/process.py", line 246, in _process_worker
r = call_item.fn(*call_item.args, **call_item.kwargs)
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pypushflow/concurrent/interrupt/process.py", line 14, in task_main
return fn(*args, **kwargs)
File "/mnt/multipath-shares/sware/exp/pxsoft/mxworkflows/id30a2/ewoksppf/src/ewoksppf/ppfrunscript.py", line 27, in run
task.execute()
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/ewokscore/task.py", line 407, in execute
raise RuntimeError(f"Task '{self.label}' failed") from e
RuntimeError: Task 'Check move of phi' failed
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pypushflow/concurrent/process.py", line 78, in cb
result = future.result()
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/concurrent/futures/_base.py", line 440, in result
return self.__get_result()
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/concurrent/futures/_base.py", line 391, in __get_result
raise self._exception
RuntimeError: Task 'Check move of phi' failed
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pypushflow/PythonActor.py", line 147, in errorHandler
self._triggerErrorHandlers(downstreamData)
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pypushflow/PythonActor.py", line 162, in _triggerErrorHandlers
errorHandler.trigger(downstreamData)
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pypushflow/ThreadCountingActor.py", line 13, in wrapper
return trigger(self, *args, **kw)
File "/mnt/multipath-shares/sware/exp/pxsoft/mxworkflows/id30a2/ewoksppf/src/ewoksppf/bindings.py", line 198, in trigger
actor.trigger(newInData, source=self)
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pypushflow/ThreadCountingActor.py", line 13, in wrapper
return trigger(self, *args, **kw)
File "/mnt/multipath-shares/sware/exp/pxsoft/mxworkflows/id30a2/ewoksppf/src/ewoksppf/bindings.py", line 255, in trigger
actor.trigger(newInData)
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pypushflow/ThreadCountingActor.py", line 13, in wrapper
return trigger(self, *args, **kw)
File "/mnt/multipath-shares/sware/exp/pxsoft/mxworkflows/id30a2/ewoksppf/src/ewoksppf/bindings.py", line 84, in trigger
return super().trigger(inData)
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pypushflow/ThreadCountingActor.py", line 13, in wrapper
return trigger(self, *args, **kw)
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pypushflow/PythonActor.py", line 53, in trigger
self.uploadInDataToMongo(actorData={"inData": inData}, script=self.script)
File "/mnt/multipath-shares/sware/exp/pxsoft/mxworkflows/id30a2/ewoksppf/src/ewoksppf/bindings.py", line 90, in uploadInDataToMongo
super().uploadInDataToMongo(**kw)
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pypushflow/AbstractActor.py", line 61, in uploadInDataToMongo
self.actorId = self.parent.db_client.startActor(name=name, info=info)
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pypushflow/persistence/mongo.py", line 69, in startActor
self._appendActorInfo(actorInfo)
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pypushflow/persistence/pymongo.py", line 35, in _appendActorInfo
self._collection.update_one(
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pymongo/collection.py", line 998, in update_one
self._update_retryable(
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pymongo/collection.py", line 854, in _update_retryable
return self.__database.client._retryable_write(
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pymongo/mongo_client.py", line 1491, in _retryable_write
return self._retry_with_session(retryable, func, s, None)
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pymongo/mongo_client.py", line 1384, in _retry_with_session
return func(session, sock_info, retryable)
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pymongo/collection.py", line 846, in _update
return self._update(
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pymongo/collection.py", line 815, in _update
result = sock_info.command(
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pymongo/pool.py", line 618, in command
self._raise_connection_failure(error)
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pymongo/pool.py", line 603, in command
return command(self.sock, dbname, spec, slave_ok,
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pymongo/network.py", line 127, in command
request_id, msg, size, max_doc_size = message._op_msg(
File "/opt/pxsoft/mxworkflows/id30a2/miniconda3/envs/id30a2/lib/python3.9/site-packages/pymongo/message.py", line 706, in _op_msg
return _op_msg_uncompressed(
bson.errors.InvalidDocument: cannot encode object: RuntimeError("Task 'Check move of phi' failed"), of type: <class 'RuntimeError'>
2024-01-30 16:56:37,213 DEBUG [TroubleShooting] Thread ended for 'Check move of phi' (0 threads running)
2024-01-30 16:56:37,216 DEBUG [TroubleShooting] [<StopActor> Stop] scheduler threads are finished
2024-01-30 16:56:37,220 DEBUG [TroubleShooting] [<StopActor> Stop] finished
```https://gitlab.esrf.fr/workflow/pypushflow/-/issues/20Engine should re-raise the original exception2024-01-30T17:57:53+01:00Wout De NolfEngine should re-raise the original exception```
ewoks execute demo --test -p a=wrong
```
```python
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/ewokscore/task.py", line 401, in execute
self.run()
File "/usr/local/lib/python3.8/dist-packa...```
ewoks execute demo --test -p a=wrong
```
```python
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/ewokscore/task.py", line 401, in execute
self.run()
File "/usr/local/lib/python3.8/dist-packages/ewokscore/tests/examples/tasks/sumtask.py", line 14, in run
result += self.inputs.b
TypeError: can only concatenate str (not "int") to str
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/ewokscore/events/contexts.py", line 88, in _context
yield execinfo
File "/usr/local/lib/python3.8/dist-packages/ewokscore/events/contexts.py", line 54, in job_context
yield execinfo
File "/usr/local/lib/python3.8/dist-packages/ewoks/bindings.py", line 78, in execute_graph
result = mod.execute_graph(graph, execinfo=execinfo, **execute_options)
File "/usr/local/lib/python3.8/dist-packages/ewokscore/events/contexts.py", line 25, in wrapper
return method(*args, execinfo=execinfo, **kw)
File "/usr/local/lib/python3.8/dist-packages/ewokscore/bindings.py", line 56, in execute_graph
return sequential.execute_graph(taskgraph.graph, **execute_options)
File "/usr/local/lib/python3.8/dist-packages/ewokscore/graph/execute/sequential.py", line 122, in execute_graph
task.execute(
File "/usr/local/lib/python3.8/dist-packages/ewokscore/task.py", line 407, in execute
raise RuntimeError(f"Task '{self.label}' failed") from e
RuntimeError: Task 'ewokscore.tests.examples.tasks.sumtask.SumTask' failed
```
```
ewoks execute demo --test -p a=wrong --engine=ppf
```
```python
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/ewokscore/events/contexts.py", line 88, in _context
yield execinfo
File "/usr/local/lib/python3.8/dist-packages/ewokscore/events/contexts.py", line 54, in job_context
yield execinfo
File "/usr/local/lib/python3.8/dist-packages/ewoks/bindings.py", line 78, in execute_graph
result = mod.execute_graph(graph, execinfo=execinfo, **execute_options)
File "/usr/local/lib/python3.8/dist-packages/ewokscore/events/contexts.py", line 25, in wrapper
return method(*args, execinfo=execinfo, **kw)
File "/usr/local/lib/python3.8/dist-packages/ewoksppf/bindings.py", line 600, in execute_graph
return ppfgraph.run(**execute_options)
File "/usr/local/lib/python3.8/dist-packages/ewoksppf/bindings.py", line 569, in run
raise RuntimeError(ex["errorMessage"])
RuntimeError: Task 'ewokscore.tests.examples.tasks.sumtask.SumTask' failed
```Wout De NolfWout De Nolfhttps://gitlab.esrf.fr/workflow/pypushflow/-/issues/19CI: test_stop_workflow[0-True] hangs2023-06-26T13:27:38+02:00Wout De NolfCI: test_stop_workflow[0-True] hangshttps://gitlab.esrf.fr/workflow/pypushflow/-/jobs/688965https://gitlab.esrf.fr/workflow/pypushflow/-/jobs/688965https://gitlab.esrf.fr/workflow/pypushflow/-/issues/18Stopping a workflow: sometimes causes RuntimeError instead of WorkflowException2023-06-05T08:39:46+02:00Wout De NolfStopping a workflow: sometimes causes RuntimeError instead of WorkflowExceptionStopping a workflow does two things: https://gitlab.esrf.fr/workflow/pypushflow/-/blob/main/src/pypushflow/Workflow.py#L155
1. set `stop_exception`
2. close the pool
When executing `PythonActor` we check `stop_exception` before using a...Stopping a workflow does two things: https://gitlab.esrf.fr/workflow/pypushflow/-/blob/main/src/pypushflow/Workflow.py#L155
1. set `stop_exception`
2. close the pool
When executing `PythonActor` we check `stop_exception` before using a pool https://gitlab.esrf.fr/workflow/pypushflow/-/blob/main/src/pypushflow/PythonActor.py#L53. However this introduces a race condition because the workflow can be stopped between passing the check and using the pool
https://gitlab.esrf.fr/workflow/pypushflow/-/jobs/665325Wout De NolfWout De Nolfhttps://gitlab.esrf.fr/workflow/pypushflow/-/issues/17add "solo" concurrency2023-03-26T10:45:47+02:00Wout De Nolfadd "solo" concurrencyWout De NolfWout De Nolfhttps://gitlab.esrf.fr/workflow/pypushflow/-/issues/16Refactoring of the BesDB connetcion2023-03-26T10:44:32+02:00Olof SvenssonRefactoring of the BesDB connetcionI'm in the process of installing new database server for the BES (Beamline Expert System). In doing so I'm renaming the databases from "pybes" to "bes". I have a patch ready which I will submit for a merge request.I'm in the process of installing new database server for the BES (Beamline Expert System). In doing so I'm renaming the databases from "pybes" to "bes". I have a patch ready which I will submit for a merge request.Olof SvenssonOlof Svenssonhttps://gitlab.esrf.fr/workflow/pypushflow/-/issues/15test_interrupt fails on conda-forge2022-12-03T09:39:21+01:00Wout De Nolftest_interrupt fails on conda-forgehttps://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=622193&view=logs&j=656edd35-690f-5c53-9ba3-09c10d0bea97&t=e5c8ab1d-8ff9-5cae-b332-e15ae582ed2d&l=2615https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=622193&view=logs&j=656edd35-690f-5c53-9ba3-09c10d0bea97&t=e5c8ab1d-8ff9-5cae-b332-e15ae582ed2d&l=2615https://gitlab.esrf.fr/workflow/pypushflow/-/issues/14Support different execution pools2022-10-21T19:52:11+02:00Wout De NolfSupport different execution poolsSupport `threading`, `gevent`, `multiprocessing` and `billiard`.
Try `billiard > 3.6.4` to see if it solves https://gitlab.esrf.fr/workflow/ewoks/ewoksjob/-/issues/19Support `threading`, `gevent`, `multiprocessing` and `billiard`.
Try `billiard > 3.6.4` to see if it solves https://gitlab.esrf.fr/workflow/ewoks/ewoksjob/-/issues/19Wout De NolfWout De Nolfhttps://gitlab.esrf.fr/workflow/pypushflow/-/issues/13Minor patch for making pypushflow work with MX beamlines2022-05-12T15:34:32+02:00Olof SvenssonMinor patch for making pypushflow work with MX beamlinesI had to make some minor tweaks to pypushflow for the MX beamlines. I'll submit these changes as a merge request.I had to make some minor tweaks to pypushflow for the MX beamlines. I'll submit these changes as a merge request.https://gitlab.esrf.fr/workflow/pypushflow/-/issues/12tests for windows2022-02-02T13:40:10+01:00Wout De Nolftests for windowsWout De NolfWout De Nolfhttps://gitlab.esrf.fr/workflow/pypushflow/-/issues/11CI: deploy package2022-02-01T16:06:37+01:00Wout De NolfCI: deploy packageWout De NolfWout De Nolfhttps://gitlab.esrf.fr/workflow/pypushflow/-/issues/10Solve danging sub processes2022-02-02T10:16:41+01:00Wout De NolfSolve danging sub processesSometimes a process cannot exit because it waits for a subprocess (launched by `PythonActor`) which is frozen upon exiting.Sometimes a process cannot exit because it waits for a subprocess (launched by `PythonActor`) which is frozen upon exiting.Wout De NolfWout De Nolfhttps://gitlab.esrf.fr/workflow/pypushflow/-/issues/9Errors in pythonactor result handler is not properly handled2021-12-09T16:48:43+01:00Wout De NolfErrors in pythonactor result handler is not properly handledWout De NolfWout De Nolfhttps://gitlab.esrf.fr/workflow/pypushflow/-/issues/8Make Mongo logging configurable2021-09-24T11:29:07+02:00Wout De NolfMake Mongo logging configurableWout De NolfWout De Nolfhttps://gitlab.esrf.fr/workflow/pypushflow/-/issues/7Refactor the StopActor2021-06-30T10:32:01+02:00Wout De NolfRefactor the StopActor![image](/uploads/e7456d4317e0dcaee5fbad1c980747fd/image.png)
A possible solution is to introduce "scheduling thread counting": all actors will increase/decrease the count, depending on what they are doing.![image](/uploads/e7456d4317e0dcaee5fbad1c980747fd/image.png)
A possible solution is to introduce "scheduling thread counting": all actors will increase/decrease the count, depending on what they are doing.Wout De NolfWout De Nolfhttps://gitlab.esrf.fr/workflow/pypushflow/-/issues/6Deadlock in python 3.82021-03-08T20:00:59+01:00Wout De NolfDeadlock in python 3.8Can be reproduces with https://gitlab.esrf.fr/denolf/workflow_concepts
```bash
while pytest esrf2pypushflow/tests/test_job.py::test_job -s; do echo "ok";done
```
I'll try to create a standalone example if I have the time.
What happens a...Can be reproduces with https://gitlab.esrf.fr/denolf/workflow_concepts
```bash
while pytest esrf2pypushflow/tests/test_job.py::test_job -s; do echo "ok";done
```
I'll try to create a standalone example if I have the time.
What happens as far as I can tell is that `pool.apply_async` gets called but nothing happens (the subprocess does not start and neither the normal nor error callback is called).https://gitlab.esrf.fr/workflow/pypushflow/-/issues/5Pool cleanup2021-03-08T20:01:20+01:00Wout De NolfPool cleanupEven though the pipeline passes, I sometimes see this
```python
Exception ignored in: <function Pool.__del__ at 0x7f8d2a85cb80>
Traceback (most recent call last):
File "/users/denolf/.pyenv/ubuntu_20_04/versions/3.8.5/lib/python3.8/mul...Even though the pipeline passes, I sometimes see this
```python
Exception ignored in: <function Pool.__del__ at 0x7f8d2a85cb80>
Traceback (most recent call last):
File "/users/denolf/.pyenv/ubuntu_20_04/versions/3.8.5/lib/python3.8/multiprocessing/pool.py", line 268, in __del__
self._change_notifier.put(None)
File "/users/denolf/.pyenv/ubuntu_20_04/versions/3.8.5/lib/python3.8/multiprocessing/queues.py", line 368, in put
self._writer.send_bytes(obj)
File "/users/denolf/.pyenv/ubuntu_20_04/versions/3.8.5/lib/python3.8/multiprocessing/connection.py", line 200, in send_bytes
self._send_bytes(m[offset:offset + size])
File "/users/denolf/.pyenv/ubuntu_20_04/versions/3.8.5/lib/python3.8/multiprocessing/connection.py", line 411, in _send_bytes
self._send(header + buf)
File "/users/denolf/.pyenv/ubuntu_20_04/versions/3.8.5/lib/python3.8/multiprocessing/connection.py", line 368, in _send
n = write(self._handle, buf)
OSError: [Errno 9] Bad file descriptor
```
It disappears when destroying the pool explicitly:
```python
class AsyncFactory:
def call(self, *args, **kwargs):
asyncresult = self.pool.apply_async(...)
self.pool = None # this makes to issue go away
```
Seems to work but I'm not sure whether it is safe to do so.
@svensson In general the logic does not allow for proper cleanup. We don't do anything with the `asyncresult` handler and since pool destruction seems to work, there must be some resources somewhere to which we have no reference too, leaving to door open for resource leaks.https://gitlab.esrf.fr/workflow/pypushflow/-/issues/4No daemon patch doesn't work in python 3.82021-03-08T20:01:31+01:00Wout De NolfNo daemon patch doesn't work in python 3.8This gives a problem in python 3.8.5
```python
from multiprocessing.pool import Pool as _Pool
class Pool(_Pool):
Process = NoDaemonProcess
```
Failure:
```python
================================================ test session start...This gives a problem in python 3.8.5
```python
from multiprocessing.pool import Pool as _Pool
class Pool(_Pool):
Process = NoDaemonProcess
```
Failure:
```python
================================================ test session starts ================================================
platform linux -- Python 3.8.5, pytest-6.2.2, py-1.10.0, pluggy-0.13.1
rootdir: /home/denolf/dev/pypushflow
plugins: anyio-2.2.0
collected 13 items
pypushflow/test/test_Actors.py F
===================================================== FAILURES ======================================================
_________________________________________ TestPythonActor.test_ErrorHandler _________________________________________
self = <pypushflow.test.test_Actors.TestPythonActor testMethod=test_ErrorHandler>
def test_ErrorHandler(self):
script = "pypushflow.test.pythonErrorHandlerTest.py"
name = "Python Error Handler Test"
actor = PythonActor(script=script, name=name)
errorHandler = ErrorHandler(name="Error handler")
stopActor = StopActor()
inData = {"name": "Ragnar"}
actor.connect(stopActor)
actor.connectOnError(errorHandler)
errorHandler.connect(stopActor)
> actor.trigger((None, inData))
pypushflow/test/test_Actors.py:65:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pypushflow/PythonActor.py:259: in trigger
self.async_factory = AsyncFactory(
pypushflow/PythonActor.py:126: in __init__
self.pool = Pool(1)
/users/denolf/.pyenv/ubuntu_20_04/versions/3.8.5/lib/python3.8/multiprocessing/pool.py:212: in __init__
self._repopulate_pool()
/users/denolf/.pyenv/ubuntu_20_04/versions/3.8.5/lib/python3.8/multiprocessing/pool.py:303: in _repopulate_pool
return self._repopulate_pool_static(self._ctx, self.Process,
/users/denolf/.pyenv/ubuntu_20_04/versions/3.8.5/lib/python3.8/multiprocessing/pool.py:319: in _repopulate_pool_static
w = Process(ctx, target=worker,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <[AttributeError("'NoDaemonProcess' object has no attribute '_closed'") raised in repr()] NoDaemonProcess object at 0x7f9729575be0>
group = <multiprocessing.context.ForkContext object at 0x7f97295ea6a0>, target = <function worker at 0x7f972959b3a0>
name = None
args = (<multiprocessing.queues.SimpleQueue object at 0x7f9729569490>, <multiprocessing.queues.SimpleQueue object at 0x7f9729575910>, None, (), None, True)
kwargs = {}
def __init__(self, group=None, target=None, name=None, args=(), kwargs={},
*, daemon=None):
> assert group is None, 'group argument must be None for now'
E AssertionError: group argument must be None for now
/users/denolf/.pyenv/ubuntu_20_04/versions/3.8.5/lib/python3.8/multiprocessing/process.py:82: AssertionError
============================================== short test summary info ==============================================
FAILED pypushflow/test/test_Actors.py::TestPythonActor::test_ErrorHandler - AssertionError: group argument must be...
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
================================================= 1 failed in 0.18s =================================================
```https://gitlab.esrf.fr/workflow/pypushflow/-/issues/3add IgnoreProcess class2020-12-03T14:57:09+01:00paynoadd IgnoreProcess classWe should define an IgnoreProcess file to simplify management of conversion from the 'convert' function of the Workflow moduleWe should define an IgnoreProcess file to simplify management of conversion from the 'convert' function of the Workflow modulehttps://gitlab.esrf.fr/workflow/pypushflow/-/issues/2add add-ons2020-05-13T08:57:52+02:00Olof Svenssonadd add-ons- [ ] should manage Actor aliases on modules/function names
- [ ] should enable functions to be call for pre-processing and post-processing of:
- actors
- workflows
-use case: trace execution from mongodb- [ ] should manage Actor aliases on modules/function names
- [ ] should enable functions to be call for pre-processing and post-processing of:
- actors
- workflows
-use case: trace execution from mongodb