Azure / azure-sdk-for-python

This repository is for active development of the Azure SDK for Python. For consumers of the SDK we recommend visiting our public developer docs at https://docs.microsoft.com/python/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-python.
MIT License
4.37k stars 2.71k forks source link

Some Dataset operations result in: NotImplementedError: Linux distribution ubuntu 22.04 does not have automatic support. #29653

Open sebastko opened 1 year ago

sebastko commented 1 year ago

Describe the bug A clear and concise description of what the bug is.

Some operations on azureml.core.Dataset fail on Ubuntu 22.04:

    dataset = Dataset.File.from_files(path=(datasets_datastore, train_set_config.datastore_path))
  File "[...]/lib/python3.9/site-packages/azureml/data/_loggerfactory.py", line 132, in wrapper
    return func(*args, **kwargs)
  File "[...]/lib/python3.9/site-packages/azureml/data/dataset_factory.py", line 892, in from_files
    dataflow = dataprep().api.dataflow.Dataflow._path_to_get_files_block(path)
  File "[...]/lib/python3.9/site-packages/azureml/dataprep/api/dataflow.py", line 2427, in _path_to_get_files_block
    return datastore_to_dataflow(path)
  File "[...]/lib/python3.9/site-packages/azureml/dataprep/api/_datastore_helper.py", line 39, in datastore_to_dataflow
    datastore, datastore_value = get_datastore_value(source)
  File "[...]/lib/python3.9/site-packages/azureml/dataprep/api/_datastore_helper.py", line 91, in get_datastore_value
    _set_auth_type(workspace)
  File "[...]/python3.9/site-packages/azureml/dataprep/api/_datastore_helper.py", line 177, in _set_auth_type
    get_engine_api().set_aml_auth(SetAmlAuthMessageArgument(auth_type, json.dumps(auth_value)))
  File "[...]/lib/python3.9/site-packages/azureml/dataprep/api/engineapi/api.py", line 19, in get_engine_api
    _engine_api = EngineAPI()
  File "[...]/lib/python3.9/site-packages/azureml/dataprep/api/engineapi/api.py", line 102, in __init__
    self._message_channel = launch_engine()
  File "[...]/lib/python3.9/site-packages/azureml/dataprep/api/engineapi/engine.py", line 333, in launch_engine
    dependencies_path = runtime.ensure_dependencies()
  File "[...]/lib/python3.9/site-packages/dotnetcore2/runtime.py", line 285, in ensure_dependencies
    if not attempt_get_deps(missing_pkgs):
  File "[...]/lib/python3.9/site-packages/dotnetcore2/runtime.py", line 279, in attempt_get_deps
    raise NotImplementedError(err_msg + '\n' + _unsupported_help_msg)
NotImplementedError: Linux distribution ubuntu 22.04 does not have automatic support.
Missing packages: {'liblttng-ust.so.0'}
.NET Core 3.1 can still be used via `dotnetcore2` if the required dependencies are installed.
Visit https://aka.ms/dotnet-install-linux for Linux distro specific .NET Core install instructions.
Follow your distro specific instructions to install `dotnet-runtime-*` and replace `*` with `3.1.23`.

To Reproduce Steps to reproduce the behavior:

Dataset.File.from_files on Ubuntu 22.04.

Additional context The instructions under https://aka.ms/dotnet-install-linux are confusing and I still haven't succeeded at installing .NET Core 3.1 on my Ubuntu 22.04. I'm wondering if AzureML SDK could perhaps switch to a different version of .NET Core to have automatic support on Ubuntu 22.04? Or are we stuck with manual installation steps?

pvaneck commented 1 year ago

Thanks for the feedback. Hopefully someone from @azureml-github can provide some insight.

hav4ik commented 1 year ago

We're having the exact same issue in our team (with exact same error message, on Dataset.File.from_files) after some recent updates. Everything was fine just a few weeks ago.

dylanw-oss commented 1 year ago

Got the same issue with this API call Dataset.get_by_name(ws, "dataset name") But Dataset.get_all(ws) can return all AML v1 datasets registered in my AML workspace.

alien3211 commented 1 year ago

@azure-sdk @azureml-github @azuresdkci Hi Is there an update? I have exactly the same problem and can someone please take care of it or give any instructions on how to deal with it? System: Package Name: azureml-core Package Version: 1.51.0 Docker - ubuntu:jammy

2023-06-22T14:41:57.1012234Z NotImplementedError: Linux distribution ubuntu 22.04 does not have automatic support. 
2023-06-22T14:41:57.1014036Z Missing packages: {'liblttng-ust.so.0'}
2023-06-22T14:41:57.1014939Z .NET Core 3.1 can still be used via `dotnetcore2` if the required dependencies are installed.
2023-06-22T14:41:57.1016469Z Visit https://aka.ms/dotnet-install-linux for Linux distro specific .NET Core install instructions.
2023-06-22T14:41:57.1018021Z Follow your distro specific instructions to install `dotnet-runtime-*` and replace `*` with `3.1.23`.

Why is dotnetcore2 still on version 3.1 if it is no longer officially supported until .NET6? Why does the azureml-pipeline library run on such an old .NET3.1?

percybolmer commented 1 year ago

I can confirm the same issue here.

PirlouitDumez commented 11 months ago

I have got the same issue here, let me know if someone managed to fix it.

ion-elgreco commented 11 months ago

@mccoyp @kashifkhan could anyone assist here? I am also running into the issue but by no means I am able to get it properly setup with ubuntu 22.04

github-actions[bot] commented 11 months ago

Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc @azureml-github @Azure/azure-ml-sdk.

Ironsss commented 9 months ago

I have got the same issue here, anyone tried anything else to ingest the data in the required format ?

ion-elgreco commented 9 months ago

I have got the same issue here, anyone tried anything else to ingest the data in the required format ?

I just continued working on Ubuntu 20.04, since there is no fix.

percybolmer commented 9 months ago

I can post an fix tomorrow, there is a fix where you can symlink the correct things and make it work.

Let me get back to you guys.

ahmed451 commented 8 months ago

Any update on this? NotImplementedError: Linux distribution ubuntu 22.04 does not have automatic support.

percybolmer commented 8 months ago

This was a long time ago, but I managed to fix it.

I went back in my Bash history and I found that I had to do this to make it work.

Basically, I installed that old dotnet SDK, and then the liblttng-ust1. I then symlink the Lib into the expected path.

NOTE: This is using the wrong version of liblttng-ust1 (I think they expect ust0) But i have so far not encountered any errors.

sudo apt-get install -y dotnet-sdk-3.1.23
sudo apt -y install liblttng-ust1
locate liblttng-ust.so
sudo ln -s /lib/x86_64-linux-gnu/liblttng-ust.so.1 /lib/x86_64-linux-gnu/liblttng-ust.so.0

I hope this helps you guys, if not I can dig deeper into my history and see what else I did

AvivAvital2 commented 4 months ago

Hi, For Ubuntu 22.04, dotnet-sdk-3.1.23 cannot be found (apt search shows results for dotnet-sdk-6.0 and above) Is there another way to resolve this issue?

Thanks