Closed rubenvdg closed 3 years ago
Stacktrace for ValueError: Unable to update Environment: Separator is found, but chunk is longer than limit
Updating software environment...
Solving conda environment...
Conda environment solved!
Building Docker image
(this takes a few minutes)
STEP 1: FROM coiled/default:sha-af843e5
STEP 2: COPY environment.yml environment.yml
--> Using cache 0929ac30fbb8ea721bcaf4cf7e9a4276ead1323bc3c5ff9ffc7bc1e82250b64d
--> 0929ac30fbb
STEP 3: RUN conda env update -n base -f environment.yml && rm environment.yml && conda clean --all -y && echo "conda activate base" >> ~/.bashrc
Collecting package metadata (repodata.json): ...working... done
Solving environment: ...working...
Found conflicts! Looking for incompatible packages.
This can take several minutes. Press CTRL-C to abort.
failed
Separator is found, but chunk is longer than limit
----------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-8-612be89b5423> in <module>
1 import coiled
2
----> 3 coiled.create_software_environment(
4 name="test_env",
5 conda={
~/.pyenv/versions/3.8.6/envs/ezra/lib/python3.8/site-packages/coiled/core.py in create_software_environment(name, conda, pip, container, log_output, post_build, conda_env_name, backend_options, private)
1400 """
1401 with Cloud() as cloud:
-> 1402 return cloud.create_software_environment(
1403 name=name,
1404 conda=conda,
~/.pyenv/versions/3.8.6/envs/ezra/lib/python3.8/site-packages/coiled/core.py in create_software_environment(self, name, conda, pip, container, post_build, conda_env_name, backend_options, log_output, private)
542 private: bool = False,
543 ) -> dict:
--> 544 return self._sync( # type: ignore
545 self._create_software_environment,
546 name=name,
~/.pyenv/versions/3.8.6/envs/ezra/lib/python3.8/site-packages/coiled/core.py in _sync(self, func, asynchronous, callback_timeout, *args, **kwargs)
278 return future
279 else:
--> 280 return sync(
281 self.loop, func, *args, callback_timeout=callback_timeout, **kwargs
282 )
~/.pyenv/versions/3.8.6/envs/ezra/lib/python3.8/site-packages/distributed/utils.py in sync(loop, func, callback_timeout, *args, **kwargs)
338 if error[0]:
339 typ, exc, tb = error[0]
--> 340 raise exc.with_traceback(tb)
341 else:
342 return result[0]
~/.pyenv/versions/3.8.6/envs/ezra/lib/python3.8/site-packages/distributed/utils.py in f()
322 if callback_timeout is not None:
323 future = asyncio.wait_for(future, callback_timeout)
--> 324 result[0] = yield future
325 except Exception as exc:
326 error[0] = sys.exc_info()
~/.pyenv/versions/3.8.6/envs/ezra/lib/python3.8/site-packages/tornado/gen.py in run(self)
760
761 try:
--> 762 value = future.result()
763 except Exception:
764 exc_info = sys.exc_info()
~/.pyenv/versions/3.8.6/envs/ezra/lib/python3.8/site-packages/coiled/core.py in _create_software_environment(self, name, conda, pip, container, post_build, conda_env_name, log_output, backend_options, private)
655 error_details = await self._websocket_stream(ws, log_output, use_spinner=False)
656 if error_details:
--> 657 raise ValueError(f"Unable to update Environment: {error_details}")
658
659 async def _list_software_environments(self, account=None):
ValueError: Unable to update Environment: Separator is found, but chunk is longer than limit
Hello Ruben, thank you for raising this issue with us and for spending time looking over at the error. I might need to ask someone from our team about this issue, I'll try to get you an answer as soon as possible
--- EDIT ---
@rubenvdg just to make sure, this was when creating an environment and not updating one right?
@FabioRosado Correct!
Just to give you an update, I am going to have to check with our team about this. I've been trying to see if I could find anything online related to that first exception that you got and came across this issue, I'm wondering if updating conda might help here since it's using 4.8.2
--EDIT-- Update: Marcos from our engineering team just pushed a fix that should fix this issue that you were getting 😄
Just wanted to note that we're still seeing this issue when creating software environments for Coiled notebooks (xref https://github.com/coiled/notebooks/runs/1723969479)
I tried to create a software environment with s3fs
, and conda kept failing with the same issue. I've moved s3fs
to pip
, and that worked.
coiled.create_software_environment(
name = "gpu-s3fs",
container="gpuci/miniconda-cuda:10.2-runtime-ubuntu18.04",
conda={
"channels": ["conda-forge", "defaults", "rapidsai"],
"dependencies": ["dask", "dask-cuda", "dask-xgboost", "dask-ml", "xgboost"],
"pip": ["s3fs"]
}
)
It seems that this could be a workaround the issue that you had @rubenvdg, James I'll try to create a software environment using the notebook and move things around, I'm curious to see if xgboost is causing the failure 🤔
I'm wondering if updating conda's version is the solution for this issue
Hello Ruben, just wanted to update you about this issue - I have mentioned it to Diederik over slack as well. On the new version of coiled this issue is fixed, thank you for the time you have put on coiled and reporting the issues you have encountered.
I'm closing this issue since it's fixed. Please feel free to re-open or create a new issue if you encounter any problems when testing coiled.
When making the following software environment:
I catch:
and other times we catch:
ValueError: Unable to update Environment: Separator is found, but chunk is longer than limit
, andValueError: Unable to update Environment: [Errno 12] Cannot allocate memory
It should work, since
conda env create -f environment.yml
works well with:Removing
s3fs
as a dependency seems to make it work (but we need it). Cheers.