Browse Source

Added note about local functions not working on Windows due to Python implementation issues.

Yentl Van Tendeloo 3 years ago
parent
commit
9840b07033
1 changed files with 12 additions and 2 deletions
  1. 12 2
      doc/problems.rst

+ 12 - 2
doc/problems.rst

@@ -6,12 +6,22 @@ Most functions are however rather safe and should return an exception in the wra
 Note that even if the MvK crashes with such an error as mentioned below, this only breaks the violating task and all other tasks are left unharmed.
 As such, it is possible for a user to log in again on a different task, although there is no continuation.
 
-TODO: body_id is None
+body_id is None
 ---------------------
 
 This error likely means that a function is called that was never defined: the declaration was found, but the definition is empty.
 
-TODO: None has no length
+None has no length
 ------------------------
 
 Operations done on an error value, such as a dictionary read on a non-existing element
+
+pickle.PicklingError: Can't pickle <function X>
+-----------------------------------------------
+
+The wrapper for manual activities relies on the multiprocessing library to spawn the various user-side interactions.
+As such, the different functions are spawned in different Python processes, to allow for multiple such functions to execute simultaneously, as needed for process enactment.
+While this allows for multiple such functions to execute simultaneously, as needed for process enactment, `this is not 100% supported in Python for Windows<https://docs.python.org/2/library/multiprocessing.html#windows>`_.
+Your error is therefore likely caused by the multiprocessing library wanting to pass a function (or something else...), which it could not.
+For example, it is not possible on Windows to give a local (nested) function as parameter to *transformation_execute_MANUAL*, as local functions cannot be pickled.
+On Linux, that would work perfectly fine.