Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apt dependency libnuma1 missing for Ubuntu 22.04 + amd64 #87225

Closed
externl opened this issue Jun 7, 2023 · 9 comments
Closed

Apt dependency libnuma1 missing for Ubuntu 22.04 + amd64 #87225

externl opened this issue Jun 7, 2023 · 9 comments
Labels
area-System.Net.Quic tracking-external-issue The issue is caused by external problem (e.g. OS) - nothing we can do to fix it directly
Milestone

Comments

@externl
Copy link

externl commented Jun 7, 2023

Description

Hi, sorry if this is the wrong repository to report this issue.

We recently encountered this issue when we upgraded our CI Docker container to use Ubuntu 22.04. We noticed that QuicConnection.IsSupported was suddenly returning false when it was previously working on Ubuntu 20.04.

After some digging it was narrowed down to a missing dependency liblttng-ust1. It is listed on the Install the .NET SDK or the .NET Runtime on Ubuntu page as required and that "When you install with a package manager, these libraries are installed for you."

It appears that it is not he case for this particular dependency. Minimal Ubuntu installs (like from Docker) do not include this out of the box, but regular sever installs do (e.g. installing from the ISO).

Adding the MS apt repository and installing dotnet does not bring in this dependency.

This also affects the official MS container mcr.microsoft.com/dotnet/sdk:7.0

As far as I can tell this affects amd64, but not arm64. Uninstalling liblttng-ust1 in an arm64 container will also uninstall dotnet. This doesn't seem to be the case for amd64

Reproduction Steps

Clone https://github.com/externl/quic-test on an amd64 machine with Docker installed.

By default it only a few packages are installed. Just enough to enable the ms repo and install dotnet-sdk-7.0. It does not include liblttng-ust1.

docker build -t quic-test .
docker run --rm quic-test

You'll see QIC is not supported :(

Now update Dockerfile and uncomment the line that installs liblttng-ust1. The the above commands again and you'll see QIC is supported :)

You should also be able to reproduce this by uninstalling liblttng-ust1 and then installing dotnet-sdk-7.0 from the MS apt repostiroy.

Expected behavior

liblttng-ust1 should be a dependency when installing dotnet from the apt repo

Actual behavior

It does not get installed.

Regression?

No response

Known Workarounds

No response

Configuration

No response

Other information

No response

@ghost ghost added the untriaged New issue has not been triaged by the area owner label Jun 7, 2023
@externl externl changed the title Apt dependency liblttng-ust1 missing for Ubuntu 22.04 for AMD64 Apt dependency liblttng-ust1 missing for Ubuntu 22.04 + AMD64 Jun 7, 2023
@externl externl changed the title Apt dependency liblttng-ust1 missing for Ubuntu 22.04 + AMD64 Apt dependency liblttng-ust1 missing for Ubuntu 22.04 + amd64 Jun 7, 2023
@jkoritzinsky
Copy link
Member

Right now, the Microsoft build of .NET does not explicitly require libttng-ust packages to be installed. The support for LTTNG lights up when the packages are available.

When using the build of .NET that Ubuntu provides in the default repositories for Ubuntu, the dependency should be present on the package metadata (and cause it to auto-install).

@hoyosjs this is related to what we were discussing offline last week.

@externl
Copy link
Author

externl commented Jun 7, 2023

The support for LTTNG lights up when the packages are available.

Unfortunately System.Net.Quic seems to rely on this being installed, and it's not so obvious why it doesn't work when it's not installed.

The MS documentation doesn't mention anywhere that this is an optional dependency. It actually states that libttng-ust will be installed for you.

@jkotas
Copy link
Member

jkotas commented Jun 7, 2023

If msquic package depends on liblttng, it should declare it as a dependency. This should be transfered to https://github.com/microsoft/msquic

@ghost
Copy link

ghost commented Jun 7, 2023

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

Issue Details

Description

Hi, sorry if this is the wrong repository to report this issue.

We recently encountered this issue when we upgraded our CI Docker container to use Ubuntu 22.04. We noticed that QuicConnection.IsSupported was suddenly returning false when it was previously working on Ubuntu 20.04.

After some digging it was narrowed down to a missing dependency liblttng-ust1. It is listed on the Install the .NET SDK or the .NET Runtime on Ubuntu page as required and that "When you install with a package manager, these libraries are installed for you."

It appears that it is not he case for this particular dependency. Minimal Ubuntu installs (like from Docker) do not include this out of the box, but regular sever installs do (e.g. installing from the ISO).

Adding the MS apt repository and installing dotnet does not bring in this dependency.

This also affects the official MS container mcr.microsoft.com/dotnet/sdk:7.0

As far as I can tell this affects amd64, but not arm64. Uninstalling liblttng-ust1 in an arm64 container will also uninstall dotnet. This doesn't seem to be the case for amd64

Reproduction Steps

Clone https://github.com/externl/quic-test on an amd64 machine with Docker installed.

By default it only a few packages are installed. Just enough to enable the ms repo and install dotnet-sdk-7.0. It does not include liblttng-ust1.

docker build -t quic-test .
docker run --rm quic-test

You'll see QIC is not supported :(

Now update Dockerfile and uncomment the line that installs liblttng-ust1. The the above commands again and you'll see QIC is supported :)

You should also be able to reproduce this by uninstalling liblttng-ust1 and then installing dotnet-sdk-7.0 from the MS apt repostiroy.

Expected behavior

liblttng-ust1 should be a dependency when installing dotnet from the apt repo

Actual behavior

It does not get installed.

Regression?

No response

Known Workarounds

No response

Configuration

No response

Other information

No response

Author: externl
Assignees: -
Labels:

area-Setup, untriaged, area-System.Net.Quic

Milestone: -

@jkotas
Copy link
Member

jkotas commented Jun 7, 2023

cc @wfurt Is there a known issue with msquic dependency on lttng?

@jkotas jkotas added the tracking-external-issue The issue is caused by external problem (e.g. OS) - nothing we can do to fix it directly label Jun 7, 2023
@externl
Copy link
Author

externl commented Jun 7, 2023

If msquic package depends on liblttng, it should declare it as a dependency. This should be transfered to https://github.com/microsoft/msquic

The dotnet documentation should also be updated to indicate that libttng-ust is not a required dependency and it is not installed automatically.

See https://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu#dependencies

@wfurt
Copy link
Member

wfurt commented Jun 7, 2023

AFAIK lttng was soft dependency. We only encountered problem with libnuma and the fix was submitted to msquic but not related.
@nibanks would know.

cc: @CarnaViire @ManickaP

@ManickaP
Copy link
Member

ManickaP commented Jun 8, 2023

It's libnuma not lttng. It works with pulling lttng because that has dependency on libnuma: https://packages.ubuntu.com/jammy/libs/liblttng-ust1
If you change the Dockerfile to do apt install libnuma1, it will work.

My outputs:

# default
docker run -it cf927e8d2961
QIC is not supported :(

# running ldd on libmsquic
root@184675f140d7:/app# ldd /usr/lib/x86_64-linux-gnu/libmsquic.so.2.2.1
linux-vdso.so.1 (0x00007ffc3cdf3000)
libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007f886ac00000)
libnuma.so.1 => not found
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f886a800000)
/lib64/ld-linux-x86-64.so.2 (0x00007f886b2cd000)

# installing libnuma
root@184675f140d7:/app# apt install libnuma1
...
root@184675f140d7:/app# dotnet run
QIC is supported :)

So this is just a rehash of microsoft/msquic#3421

@ManickaP ManickaP removed the untriaged New issue has not been triaged by the area owner label Jun 8, 2023
@ManickaP ManickaP added this to the 8.0.0 milestone Jun 8, 2023
@ManickaP ManickaP changed the title Apt dependency liblttng-ust1 missing for Ubuntu 22.04 + amd64 Apt dependency libnuma1 missing for Ubuntu 22.04 + amd64 Jun 8, 2023
@wfurt
Copy link
Member

wfurt commented Jun 11, 2023

this should be fixed by new MsQuic 2.2.2 package.

@wfurt wfurt closed this as completed Jun 11, 2023
@ghost ghost locked as resolved and limited conversation to collaborators Jul 12, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-System.Net.Quic tracking-external-issue The issue is caused by external problem (e.g. OS) - nothing we can do to fix it directly
Projects
None yet
Development

No branches or pull requests

5 participants