Bug 44401 - Просьба поднять версию .Net Core 6 с 6.0.7 до последней (текущая 6.0.11)
Summary: Просьба поднять версию .Net Core 6 с 6.0.7 до последней (текущая 6.0.11)
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: dotnet-6.0 (show other bugs)
Version: unstable
Hardware: x86 Linux
: P5 normal
Assignee: Vitaly Lipatov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-11-23 14:04 MSK by Иван Скородумов
Modified: 2023-02-14 15:15 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Иван Скородумов 2022-11-23 14:04:57 MSK
Просьба поднять версию .Net Core 6 с 6.0.7 до последней (текущая 6.0.11) https://dotnet.microsoft.com/en-us/download/dotnet/6.0
Comment 1 Иван Скородумов 2022-12-23 13:34:27 MSK
Дополнительно просьба добавить пакет с символьной информацией для отладки dotnet приложений в lldb
Речь про файлы, которые для поддерживаемых Microsoft платформ загружаются с помощью команды
dotnet-symbol --host-only
Comment 2 Vitaly Lipatov 2022-12-23 14:15:47 MSK
(Ответ для Иван Скородумов на комментарий #1)
> Дополнительно просьба добавить пакет с символьной информацией для отладки
> dotnet приложений в lldb
> Речь про файлы, которые для поддерживаемых Microsoft платформ загружаются с
> помощью команды
> dotnet-symbol --host-only
То есть скачиваемую этой командой информацию добавить в пакет? Попробуем.
Comment 3 Иван Скородумов 2022-12-23 14:32:32 MSK
(In reply to Vitaly Lipatov from comment #2)
> (Ответ для Иван Скородумов на комментарий #1)
> > Дополнительно просьба добавить пакет с символьной информацией для отладки
> > dotnet приложений в lldb
> > Речь про файлы, которые для поддерживаемых Microsoft платформ загружаются с
> > помощью команды
> > dotnet-symbol --host-only
> То есть скачиваемую этой командой информацию добавить в пакет? Попробуем.

Да, всё верно! 
Спасибо.
Comment 4 Vitaly Lipatov 2022-12-27 01:59:35 MSK
(Ответ для Иван Скородумов на комментарий #1)
> Дополнительно просьба добавить пакет с символьной информацией для отладки
> dotnet приложений в lldb
> Речь про файлы, которые для поддерживаемых Microsoft платформ загружаются с
> помощью команды
> dotnet-symbol --host-only

«Загрузка символов поддерживается только для официальных версий среды выполнения .NET Core, полученных по официальным каналам, таким как официальный веб-сайт и источники по умолчанию в сценариях установки dotnet. Ошибка 404 при скачивании файлов отладки может указывать на то, что дамп был создан с помощью среды выполнения .NET Core из другого источника, например из исходного кода, созданного локально или для конкретного дистрибутива Linux, либо с сайтов сообщества, таких как archlinux. В таких случаях файл, необходимый для отладки (dotnet, libcoreclr.so и libmscordaccore.so), должен быть скопирован из этих источников или из среды, в которой был создан файл дампа.»
https://learn.microsoft.com/ru-ru/dotnet/core/diagnostics/dotnet-symbol

Может быть вам просто нужно поставить соответствующие пакеты -debuginfo?
Comment 5 Иван Скородумов 2022-12-27 08:37:39 MSK
Для того, чтобы lldb просто загрузил дамп или подключился к процессу dotnet, нужно иметь отладочную информацию по загрузчику dotnet.
Далее начинает работать расширение sos, позволяющее отлаживать управляемый код.
Как вы и написали утилита dotnet-symbol, не может загрузить отладочные символы для dotnet на Alt Linux, поэтому мы просим включить их в отдельный пакет или в один из существующих пакетов установки dotnet sdk для Alt Linux
 
https://learn.microsoft.com/en-us/troubleshoot/developer/webapps/aspnetcore/practice-troubleshoot-linux/lab-1-2-analyze-core-dumps-lldb-debugger
«The --host-only parameter will download only the host program. This is all that lldb needs to start debugging the ASP.NET Core application.»
«SOS is a cross-platform extension that can be loaded by WinDbg or a cdb debugger on Windows and by lldb on Linux and macOS.»
Comment 6 Vitaly Lipatov 2022-12-31 17:58:50 MSK
(Ответ для Иван Скородумов на комментарий #5)
> Для того, чтобы lldb просто загрузил дамп или подключился к процессу dotnet,
Можете привести пример отладки базового приложения, создаваемого через
$ dotnet new console
?

Какая именно команда?
Comment 7 Иван Скородумов 2023-01-09 17:12:07 MSK
1. Установка lldb, .net и расширение SOS
# apt-get install lldb
# apt-get install dotnet-sdk-6.0
# dotnet tool install -g dotnet-sos
# export PATH="$PATH:/root/.dotnet/tools"
# dotnet-sos install

2. Настройка coredump
# apt-get install systemd-coredump
# systemctl start systemd-coredump.socket
закомментировать следующую строку в /etc/profile: 'ulimit -Sc 0 >/dev/null 2>&1'
закомментрировать в файле /etc/security/limits.d/50-defaults.conf строку: '* soft core 0'
# reboot

3. Тестовое приложение.
# mkdir ~/test_debug
# cd ~/test_debug
# dotnet new console
# cat <<EOT > Program.cs
Console.WriteLine("Hello, World!");

string msg = null;

List<string> memoryleak = new();
while (true)
{
    memoryleak.Add($"Current time is: {DateTime.Now:O}");
    Thread.Sleep(100);
    if (memoryleak.Count > 200)
    {
        // NullReferenceException через 20 секунд
       //долго, чтобы можно было еще Attach проверить.
        Console.WriteLine(msg.Length);
    }
}
EOT
# dotnet build

4. Генерация dump-а при падении приложения
# dotnet ./bin/Debug/net6.0/test_debug.dll &
Hello, World!
… 20 seconds later
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
   at Program.<Main>$(String[] args) in /root/test_debug/Program.cs:line 12
[1]+  Aborted                 (core dumped) dotnet ./bin/Debug/net6.0/test_debug.dll

# coredumpctl list
TIME                            PID   UID   GID SIG COREFILE  EXE
Mon 2023-01-09 13:44:13 UTC    4055     0     0   6 present   /usr/lib64/dotnet/dotnet
# coredumpctl dump 4055 -o test_debug.core.4055
…

5. Отладка полученного дампа
# export DOTNET_ROOT=/usr/lib64/dotnet
# lldb --core test_debug.core.4055 dotnet
Current symbol store settings:
-> Cache: /root/.dotnet/symbolcache
-> Server: https://msdl.microsoft.com/download/symbols/ Timeout: 4 RetryCount: 0
(lldb) target create "dotnet" --core "test_debug.core.4055"
Core file '/root/test_debug/test_debug.core.4055' (x86_64) was loaded.

(lldb) pe
Failed to load data access module, 0x80004002
Can not load or initialize libmscordaccore.so. The target runtime may not be initialized.

For more information see https://go.microsoft.com/fwlink/?linkid=2135652
PrintException  failed

Если решение этой проблемы займет много времени, то лучше ее не решать сразу, а завести отдельный тикет.
Comment 8 Иван Скородумов 2023-02-14 09:58:14 MSK
Коллеги, добрый день!
Скажите пож есть информация по указанному вопросу?
"Просьба поднять версию .Net Core 6 с 6.0.7 до последней (текущая 6.0.11) https://dotnet.microsoft.com/en-us/download/dotnet/6.0"
Comment 9 Andrey Cherepanov 2023-02-14 12:14:27 MSK
(Ответ для Иван Скородумов на комментарий #8)
> Коллеги, добрый день!
> Скажите пож есть информация по указанному вопросу?
> "Просьба поднять версию .Net Core 6 с 6.0.7 до последней (текущая 6.0.11)
> https://dotnet.microsoft.com/en-us/download/dotnet/6.0"

https://packages.altlinux.org/ru/sisyphus/srpms/dotnet-runtime-6.0/

Версия: 6.0.12-alt2
Comment 10 Иван Скородумов 2023-02-14 15:15:11 MSK
(In reply to Andrey Cherepanov from comment #9)
> (Ответ для Иван Скородумов на комментарий #8)
> > Коллеги, добрый день!
> > Скажите пож есть информация по указанному вопросу?
> > "Просьба поднять версию .Net Core 6 с 6.0.7 до последней (текущая 6.0.11)
> > https://dotnet.microsoft.com/en-us/download/dotnet/6.0"
> 
> https://packages.altlinux.org/ru/sisyphus/srpms/dotnet-runtime-6.0/
> 
> Версия: 6.0.12-alt2

Это Sisyphus, есть возможность добавить в p9 и в p10?