Suryansh Soni
10/21/2022, 1:56 PMDeepyaman Datta
10/21/2022, 2:05 PMSuryansh Soni
10/21/2022, 2:10 PM{
"error": "OSError",
"cause": {
"errorMessage": "[Errno 38] Function not implemented",
"errorType": "OSError",
"requestId": "47cd9191-2a44-4811-908b-3c5f3874e396",
"stackTrace": [
" File \"/home/app/lambda_handler.py\", line 6, in handler\n configure_project(\"radar_ml\")\n",
" File \"/home/app/kedro/framework/project/__init__.py\", line 243, in configure_project\n settings.configure(settings_module)\n",
" File \"/home/app/dynaconf/base.py\", line 182, in configure\n self._wrapped = Settings(settings_module=settings_module, **kwargs)\n",
" File \"/home/app/dynaconf/base.py\", line 238, in __init__\n self.validators.validate(\n",
" File \"/home/app/dynaconf/validator.py\", line 441, in validate\n validator.validate(\n",
" File \"/home/app/kedro/framework/project/__init__.py\", line 46, in validate\n super().validate(settings, *args, **kwargs)\n",
" File \"/home/app/dynaconf/validator.py\", line 207, in validate\n self._validate_items(\n",
" File \"/home/app/dynaconf/validator.py\", line 236, in _validate_items\n self.default(settings, self)\n",
" File \"/home/app/kedro/framework/project/__init__.py\", line 37, in validator_func\n return getattr(importlib.import_module(module), class_name)\n",
" File \"/usr/local/lib/python3.8/importlib/__init__.py\", line 127, in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n",
" File \"<frozen importlib._bootstrap>\", line 1014, in _gcd_import\n",
" File \"<frozen importlib._bootstrap>\", line 991, in _find_and_load\n",
" File \"<frozen importlib._bootstrap>\", line 961, in _find_and_load_unlocked\n",
" File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed\n",
" File \"<frozen importlib._bootstrap>\", line 1014, in _gcd_import\n",
" File \"<frozen importlib._bootstrap>\", line 991, in _find_and_load\n",
" File \"<frozen importlib._bootstrap>\", line 975, in _find_and_load_unlocked\n",
" File \"<frozen importlib._bootstrap>\", line 671, in _load_unlocked\n",
" File \"<frozen importlib._bootstrap_external>\", line 843, in exec_module\n",
" File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed\n",
" File \"/home/app/kedro/framework/session/__init__.py\", line 4, in <module>\n from .session import KedroSession\n",
" File \"/home/app/kedro/framework/session/session.py\", line 26, in <module>\n from kedro.framework.session.store import BaseSessionStore\n",
" File \"/home/app/kedro/framework/session/store.py\", line 46, in <module>\n class ShelveStore(BaseSessionStore):\n",
" File \"/home/app/kedro/framework/session/store.py\", line 49, in ShelveStore\n _lock = Lock()\n",
" File \"/usr/local/lib/python3.8/multiprocessing/context.py\", line 68, in Lock\n return Lock(ctx=self.get_context())\n",
" File \"/usr/local/lib/python3.8/multiprocessing/synchronize.py\", line 162, in __init__\n SemLock.__init__(self, SEMAPHORE, 1, 1, ctx=ctx)\n",
" File \"/usr/local/lib/python3.8/multiprocessing/synchronize.py\", line 57, in __init__\n sl = self._semlock = _multiprocessing.SemLock(\n"
]
}
}
Nok Lam Chan
10/21/2022, 2:28 PMShelveStore
create a Lock
when store.py
get importedShelveStore
to a separate module to prevent this from happening, but it will take some more times to the next release. @Suryansh Soni Would you be able to test it out If I push the changes to a temporary branch?Suryansh Soni
10/21/2022, 2:31 PMLim H.
10/21/2022, 2:58 PMSuryansh Soni
10/21/2022, 3:00 PMLim H.
10/21/2022, 3:02 PMwith patch("multiprocessing.Lock"), patch("multiprocessing.SemLock"):
from kedro.framework.session import KedroSession
with KedroSession.create(env="aws") as session:
session.run(node_names=[node_to_run])
I haven’t tested this but something like thisself._semlock = _multiprocessing.SemLock(\n"
Suryansh Soni
10/21/2022, 3:09 PMLim H.
10/21/2022, 3:10 PMSuryansh Soni
10/21/2022, 3:11 PMNok Lam Chan
10/21/2022, 3:18 PMSuryansh Soni
10/21/2022, 5:45 PM{
"errorMessage": "[Errno 38] Function not implemented",
"errorType": "OSError",
"requestId": "9adc74c9-bf3d-4bcb-a551-97fd172a809b",
"stackTrace": [
" File \"/home/app/lambda_handler.py\", line 6, in handler\n configure_project(\"radar_ml\")\n",
" File \"/home/app/kedro/framework/project/__init__.py\", line 243, in configure_project\n settings.configure(settings_module)\n",
" File \"/home/app/dynaconf/base.py\", line 182, in configure\n self._wrapped = Settings(settings_module=settings_module, **kwargs)\n",
" File \"/home/app/dynaconf/base.py\", line 238, in __init__\n self.validators.validate(\n",
" File \"/home/app/dynaconf/validator.py\", line 441, in validate\n validator.validate(\n",
" File \"/home/app/kedro/framework/project/__init__.py\", line 46, in validate\n super().validate(settings, *args, **kwargs)\n",
" File \"/home/app/dynaconf/validator.py\", line 207, in validate\n self._validate_items(\n",
" File \"/home/app/dynaconf/validator.py\", line 236, in _validate_items\n self.default(settings, self)\n",
" File \"/home/app/kedro/framework/project/__init__.py\", line 37, in validator_func\n return getattr(importlib.import_module(module), class_name)\n",
" File \"/usr/local/lib/python3.9/importlib/__init__.py\", line 127, in import_module\n return _bootstrap._gcd_import(name[level:], package, level)\n",
" File \"<frozen importlib._bootstrap>\", line 1030, in _gcd_import\n",
" File \"<frozen importlib._bootstrap>\", line 1007, in _find_and_load\n",
" File \"<frozen importlib._bootstrap>\", line 972, in _find_and_load_unlocked\n",
" File \"<frozen importlib._bootstrap>\", line 228, in _call_with_frames_removed\n",
" File \"<frozen importlib._bootstrap>\", line 1030, in _gcd_import\n",
" File \"<frozen importlib._bootstrap>\", line 1007, in _find_and_load\n",
" File \"<frozen importlib._bootstrap>\", line 986, in _find_and_load_unlocked\n",
" File \"<frozen importlib._bootstrap>\", line 680, in _load_unlocked\n",
" File \"<frozen importlib._bootstrap_external>\", line 850, in exec_module\n",
" File \"<frozen importlib._bootstrap>\", line 228, in _call_with_frames_removed\n",
" File \"/home/app/kedro/framework/session/__init__.py\", line 4, in <module>\n from .session import KedroSession\n",
" File \"/home/app/kedro/framework/session/session.py\", line 26, in <module>\n from kedro.framework.session.store import BaseSessionStore\n",
" File \"/home/app/kedro/framework/session/store.py\", line 46, in <module>\n class ShelveStore(BaseSessionStore):\n",
" File \"/home/app/kedro/framework/session/store.py\", line 49, in ShelveStore\n _lock = Lock()\n",
" File \"/usr/local/lib/python3.9/multiprocessing/context.py\", line 68, in Lock\n return Lock(ctx=self.get_context())\n",
" File \"/usr/local/lib/python3.9/multiprocessing/synchronize.py\", line 162, in __init__\n SemLock.__init__(self, SEMAPHORE, 1, 1, ctx=ctx)\n",
" File \"/usr/local/lib/python3.9/multiprocessing/synchronize.py\", line 57, in __init__\n sl = self._semlock = _multiprocessing.SemLock(\n"
]
}
Deepyaman Datta
10/21/2022, 6:01 PM_multiprocessing.SemLock
?Suryansh Soni
10/21/2022, 6:32 PMDeepyaman Datta
10/21/2022, 7:31 PMpatch("_multiprocessing.SemLock")
instead of patch("multiprocessing.SemLock")
?
I'm still not 100% sure this will work, since patching isn't that straightforward and you need to patch it the way it gets imported, but it looks right to me based on how it's being called in multiprocessing/synchronize.py
.
I also didn't know you can do multiple patches in a with
statement, TIL.Suryansh Soni
10/21/2022, 8:12 PMNok Lam Chan
10/24/2022, 1:30 PMSuryansh Soni
10/24/2022, 1:33 PM