Closed Radeju closed 4 years ago
@Radeju Thanks for the feedback! We are currently investigating and will update you shortly.
thanks for the feedback. We have recorded the feedback and added it as a feature request on our roadmap.
@MayMSFT Hi May, are we good to close this or you want me to keep it open? Thanks.
Hi! I'm planning to switch our pipeline from 18.04 to 20.04 soon as well. Looks like this may be a blocking issue. Do we have timeline regarding the fix?
Based on the log seems distro version is asserted by a whitelist. IMHO this is a bad design which can probably affect a lot of not-so-popular distros like arch or mint.
Unfortunately, it depends on legal approval. @tot0 to share more details
@xkszltl Hi, I unfortunately don't have any concrete timeline for official support of new linux distros. The legal processes involved distributing open source packages so that normally Datasets 'just works' require care and aren't moving as fast as we'd hope.
Datasets will only return saying 'Unsupported Distro' if the required dependencies for .NET Core 2.1 are not present on default library paths AND a pre-prepared dependency set doesn't exist. We are working on improving the error message to link out to the official .NET Core documentation on how to install the correct dependencies for supported distributions.
@xkszltl Would you be able to try the first command here to install .NET Cores dependencies for Ubuntu 20.04 and see if you're able to use dataset.download()? https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu#2004-
Of course, if it is just a matter of installing .NET it's totally fine for us. Actually we will do that regardless of the use of AML Datasets.
Is 2.1 a exact or minimum requirement? Can we use later version? Namely 2.2 or 3+
Currently Datasets requires .NET Core 2.1
@Radeju We will now proceed to close this thread. If there are further questions regarding this matter, please respond here and @YutongTie-MSFT and we will gladly continue the discussion.
Getting same issue trying to use "from azureml.opendatasets import Diabetes" with error "Unsupported Linux distribution ubuntu 20.04". Tried suggested by @tot0 but didnt resolve: https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu#2004-
@YutongTie-MSFT
Had this error again trying to access my own dataset in a storage account blob, error as follows. Code is being run as a local jupyter notebook on Ubuntu 20.04. Code is the "day1-part4-data" notebook: https://github.com/Azure/MachineLearningNotebooks/blob/master/tutorials/get-started-day1/day1-part4-data.ipynb
which fails on line:
dataset = Dataset.File.from_files(path=(datastore, 'datasets/cifar10'))
`HTTPError Traceback (most recent call last) ~/anaconda3/envs/pybasic383/lib/python3.8/site-packages/dotnetcore2/runtime.py in attemp_get_deps() 198 try: --> 199 blob_deps_to_file() 200 success = True
~/anaconda3/envs/pybasic383/lib/python3.8/site-packages/dotnetcore2/runtime.py in blob_deps_to_file() 190 ssl_context = ssl.create_default_context(cafile=cafile) --> 191 blob = request.urlopen(deps_url, context=ssl_context) 192 with open(deps_tar_path, 'wb') as f:
~/anaconda3/envs/pybasic383/lib/python3.8/urllib/request.py in urlopen(url, data, timeout, cafile, capath, cadefault, context) 221 opener = _opener --> 222 return opener.open(url, data, timeout) 223
~/anaconda3/envs/pybasic383/lib/python3.8/urllib/request.py in open(self, fullurl, data, timeout) 530 meth = getattr(processor, meth_name) --> 531 response = meth(req, response) 532
~/anaconda3/envs/pybasic383/lib/python3.8/urllib/request.py in http_response(self, request, response) 639 if not (200 <= code < 300): --> 640 response = self.parent.error( 641 'http', request, response, code, msg, hdrs)
~/anaconda3/envs/pybasic383/lib/python3.8/urllib/request.py in error(self, proto, args) 568 args = (dict, 'default', 'http_error_default') + orig_args --> 569 return self._call_chain(args) 570
~/anaconda3/envs/pybasic383/lib/python3.8/urllib/request.py in _call_chain(self, chain, kind, meth_name, args) 501 func = getattr(handler, meth_name) --> 502 result = func(args) 503 if result is not None:
~/anaconda3/envs/pybasic383/lib/python3.8/urllib/request.py in http_error_default(self, req, fp, code, msg, hdrs) 648 def http_error_default(self, req, fp, code, msg, hdrs): --> 649 raise HTTPError(req.full_url, code, msg, hdrs, fp) 650
HTTPError: HTTP Error 404: Not Found
During handling of the above exception, another exception occurred:
NotImplementedError Traceback (most recent call last)
Hi @corticalstack, could you try running the below python snippet in your Ubuntu 20.04 environment?
from dotnetcore2 import runtime
runtime._enable_debug_logging()
runtime.ensure_dependencies()
This should reveal what dependencies missing for Datasets.
For installing .NET Core 2.1 ahead of time did you install dotnet-runtime-3.1
or dotnet-runtime-2.1
?
Cheers.
@tot0 Wrt .NET Core 2.1, I believe it was 3.1 as per: https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu#2004-
Within a Jupyter notebook I added the 3 lines as requested, then executed:
dataset = Dataset.File.from_files(path=(datastore, 'datasets/cifar10'))
And got what seems like multiple errors trying to log in DEBUG mode:
DEBUG - Could not load run context RunEnvironmentException: Message: Could not load a submitted run, if outside of an execution context, use experiment.start_logging to initialize an azureml.core.Run. InnerException None ErrorResponse { "error": { "message": "Could not load a submitted run, if outside of an execution context, use experiment.start_logging to initialize an azureml.core.Run." } }, switching offline: False DEBUG - Could not load the run context and allow_offline set to False DEBUG - Could not load run context RunEnvironmentException: Message: Could not load a submitted run, if outside of an execution context, use experiment.start_logging to initialize an azureml.core.Run. InnerException None ErrorResponse { "error": { "message": "Could not load a submitted run, if outside of an execution context, use experiment.start_logging to initialize an azureml.core.Run." } }, switching offline: False DEBUG - Could not load the run context and allow_offline set to False DEBUG - Could not load run context RunEnvironmentException: Message: Could not load a submitted run, if outside of an execution context, use experiment.start_logging to initialize an azureml.core.Run. InnerException None ErrorResponse { "error": { "message": "Could not load a submitted run, if outside of an execution context, use experiment.start_logging to initialize an azureml.core.Run." } }, switching offline: False DEBUG - Could not load the run context and allow_offline set to False DEBUG - Created a static thread pool for ServiceContext class DEBUG - 2a747d93-9b35-4d5e-a541-cae131c8a5b4 - Authority:Performing instance discovery: ... DEBUG - 2a747d93-9b35-4d5e-a541-cae131c8a5b4 - Authority:Performing static instance discovery DEBUG - 2a747d93-9b35-4d5e-a541-cae131c8a5b4 - Authority:Authority validated via static instance discovery DEBUG - 2a747d93-9b35-4d5e-a541-cae131c8a5b4 - TokenRequest:Getting token from cache with refresh if necessary. DEBUG - 2a747d93-9b35-4d5e-a541-cae131c8a5b4 - CacheDriver:finding with query keys: {'_clientId': '...', 'userId': '...'} DEBUG - 2a747d93-9b35-4d5e-a541-cae131c8a5b4 - CacheDriver:Looking for potential cache entries: {'_clientId': '...', 'userId': '...'} DEBUG - 2a747d93-9b35-4d5e-a541-cae131c8a5b4 - CacheDriver:Found 2 potential entries. DEBUG - 2a747d93-9b35-4d5e-a541-cae131c8a5b4 - CacheDriver:Resource specific token found. DEBUG - 2a747d93-9b35-4d5e-a541-cae131c8a5b4 - CacheDriver:Returning token from cache lookup, AccessTokenId: b'ji5H/ccIOfhlbO6LhVa6SPJm1T+uGkOaz40LghSXBzc=', RefreshTokenId: b'WKAoyST6eg+Go79SJMjKcyHKHQ1z1tWx146fEyzlv8M=' DEBUG - Could not load run context RunEnvironmentException: Message: Could not load a submitted run, if outside of an execution context, use experiment.start_logging to initialize an azureml.core.Run. InnerException None ErrorResponse { "error": { "message": "Could not load a submitted run, if outside of an execution context, use experiment.start_logging to initialize an azureml.core.Run." } }, switching offline: False DEBUG - Could not load the run context and allow_offline set to False
@corticalstack Hmmm, those RunContext debug logs make sense from the Dataset calls, they shouldn't have happened during the runtime.ensure_depedencies()
call. What version of dotnetcore2
is installed in your environment?
Would it be possible too just see the outcome of running the 3 lines I shared, and not the from_files
call? Thanks!
Unfortunately the .NET Core docs don't have any specific 2.1 advice anymore. The package dotnet-runtime-2.1
does exist though and I recommend installing that instead of dotnet-runtime-3.1
.
@tot0 version installed is 2.1.15
of dotnetcore2
The only Jupyter output from the 3 lines you shared is as follows:
'/home/jp/anaconda3/envs/pybasic383/lib/python3.8/site-packages/dotnetcore2/bin/deps'
Thanks
Ok so if runtime.ensure_dependencies()
returns a path like the one you shared that means it all the dependencies exist locally for .NET Core to run.
dotnetcore2==2.1.17
is the newest version and upgraded the underlying .NET Core run time to support newer openssl version installed on newer linux distros (Ubuntu 20 included). It has not yet added full support for all the dependencies required on Ubuntu 20 (so the pre install steps via apt-get is still required) but using the newer version of dotnetcore2 should enable Datasets to run on Ubuntu 20.
@tot0 pip uninstalled dotnetcore 2.1.15 and installed latest, all good. Thanks!
from dotnetcore2 import runtime
runtime._enable_debug_logging()
runtime.ensure_dependencies()
NotImplementedError: Unsupported Linux distribution ubuntu 20.10
pip install dotnetcore2
Collecting dotnetcore2
Using cached dotnetcore2-2.1.19-py3-none-manylinux1_x86_64.whl (28.7 MB)
Requirement already satisfied: distro>=1.2.0 in ./.conda/envs/p8/lib/python3.8/site-packages (from dotnetcore2) (1.5.0)
Installing collected packages: dotnetcore2
Successfully installed dotnetcore2-2.1.19
Any idea ?
Issue solved
sudo apt install dotnet-runtime-2.1
The following packages have unmet dependencies:
dotnet-runtime-deps-2.1 : Depends: libicu but it is not installable or
libicu66 but it is not installable or
libicu65 but it is not installable or
libicu63 but it is not installable or
libicu60 but it is not installable or
libicu57 but it is not installable or
libicu55 but it is not installable or
libicu52 but it is not installable
E: Unable to correct problems, you have held broken packages.
1) Install libicu
wget http://ftp.us.debian.org/debian/pool/main/i/icu/libicu63_63.2-3_amd64.deb
sudo dpkg -i libicu63_63.2-3_amd64.deb
2) sudo apt install dotnet-runtime-2.1
Don't know if there is a best way to do?
I am trying to download an AzureML dataset on Ubuntu 20.04. I am using azureml.core library. However, when I try to run it I get following error
Are you planning to support 20.04 version of Ubuntu? Is there any roadmap? I found this issue from 6 months ago and would really appreciate to hear if anything had changed since then.
Right now I am using the workaround from here to make it work.
Warm regards