<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>51885</bug_id>
          
          <creation_ts>2024-10-30 12:10:53 +0300</creation_ts>
          <short_desc>Docker на Loongson не может запустить базовый образ</short_desc>
          <delta_ts>2024-10-31 13:26:59 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>runc</component>
          <version>unstable</version>
          <rep_platform>loongarch64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Павел">strela034+alt</reporter>
          <assigned_to name="cow@altlinux.org">cow</assigned_to>
          <cc>cow</cc>
    
    <cc>iv</cc>
    
    <cc>shaba</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>253639</commentid>
    <comment_count>0</comment_count>
    <who name="Павел">strela034+alt</who>
    <bug_when>2024-10-30 12:10:53 +0300</bug_when>
    <thetext>При попытке запуска любого образа (в т.ч. собранного из rootfs установленного в QEMU ALT Linux для Loongson) появляется такая ошибка. Вероятно, в самом докере отсутствует поддержка для этой архитектуры:

```
docker run -it --rm alt:latest bash
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error loading seccomp filter into kernel: error patching filter: error generating patch for filter: error finding last syscalls for -ENOSYS stub: unable to get native arch: unrecognized architecture 0xc0000102: unknown.
```

alt:latest в данном примере - это образ rootfs установленной в QEMU Alt Linux. 

Для установки и для создания образа использовался диск установки по ссылке [1].

[1] http://get.srt.basealt.ru/ports/loongarch64/Sisyphus/images/loongarch64/alt-server-20240426-loongarch64.iso</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253651</commentid>
    <comment_count>1</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2024-10-30 13:17:03 +0300</bug_when>
    <thetext>&gt; Вероятно, в самом докере отсутствует поддержка для этой архитектуры

Не так давно мы успешно собирали и запускали базовый образ по инструкции

https://www.altlinux.org/Docker#Сборка_базового_образа_с_использованием_mkimage-profiles

Ближе к вечеру попробую ещё раз, может что-то в Сизифе неудачно обновилось.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253669</commentid>
    <comment_count>2</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2024-10-30 15:49:48 +0300</bug_when>
    <thetext>Действительно, работа с seccomp в runc изменилась, надо патчить по-другому. Сейчас попробую починить.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253675</commentid>
    <comment_count>3</comment_count>
    <who name="Павел">strela034+alt</who>
    <bug_when>2024-10-30 16:22:28 +0300</bug_when>
    <thetext>Я попробовал собрать через Dockerfile, как вы прислали. Продрался через документацию и mkimage. Собрал тарболл (.tar.gz) и попробовал по инструкции собрать образ:

```
$ docker build --rm --tag=alt:from-mkimage .
[+] Building 4.3s (5/5) FINISHED                                                              docker:default
 =&gt; [internal] load build definition from Dockerfile                                                    0.0s
 =&gt; =&gt; transferring dockerfile: 208B                                                                    0.0s
 =&gt; [internal] load .dockerignore                                                                       0.0s
 =&gt; =&gt; transferring context: 2B                                                                         0.0s
 =&gt; [internal] load build context                                                                       0.4s
 =&gt; =&gt; transferring context: 22.70MB                                                                    0.4s
 =&gt; [1/2] ADD docker-latest.tar.xz /                                                                    2.8s
 =&gt; ERROR [2/2] RUN true &gt; /etc/security/limits.d/50-defaults.conf                                      1.0s
------                                                                                                       
 &gt; [2/2] RUN true &gt; /etc/security/limits.d/50-defaults.conf:                                                 
0.258 runc run failed: unable to start container process: error loading seccomp filter into kernel: error patching filter: error generating patch for filter: error finding last syscalls for -ENOSYS stub: unable to get native arch: unrecognized architecture 0xc0000102
------
Dockerfile:5
--------------------
   3 |     ADD docker-latest.tar.xz /
   4 |     
   5 | &gt;&gt;&gt; RUN true &gt; /etc/security/limits.d/50-defaults.conf
   6 |     
   7 |     # overwrite this with &apos;CMD []&apos; in a dependent Dockerfile
--------------------
ERROR: failed to solve: process &quot;/bin/sh -c true &gt; /etc/security/limits.d/50-defaults.conf&quot; did not complete successfully: exit code: 1
```

Результат тот же, что и при ручном (через docker import) включении, только оно сломалось ещё на этапе сборки образа.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253681</commentid>
    <comment_count>4</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2024-10-30 16:48:19 +0300</bug_when>
    <thetext>&gt; Я попробовал собрать через Dockerfile, как вы прислали.
[...]

Спасибо. Такую ошибку воспроизвёл, исправление тестирую.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253683</commentid>
    <comment_count>5</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2024-10-30 17:12:25 +0300</bug_when>
    <thetext>Прошу мейнтейнера пропустит задачу c исправлением:

https://git.altlinux.org/tasks/361175/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253687</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Shabalin">shaba</who>
    <bug_when>2024-10-30 17:30:02 +0300</bug_when>
    <thetext>Я то везде использую crun. С ним пробовали?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253688</commentid>
    <comment_count>7</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2024-10-30 17:35:00 +0300</bug_when>
    <thetext>Итак, проблема была в пакете runc, у которого отвалились наши патчи для поддержки loongarch64, и никто не заметил, что надо бы сделать и приложить другие патчи. На будущее мы внесём докерные пакеты в список того, что мы тестируем перед приёмом в sisyphus_loongarch64.

Исправление будет доступно в sisyphus_loongarch64 завтра, после синхронизации репозиториев (04:00 MSK). Вам понадобится runc 1.2.0-alt1.0.port или более свежий.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253691</commentid>
    <comment_count>8</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2024-10-30 17:54:05 +0300</bug_when>
    <thetext>(In reply to Alexey Shabalin from comment #6)
&gt; Я то везде использую crun. С ним пробовали?

Ну, runc у нас по умолчанию, и единственный сконфигурированный из коробки. Даже как настроить использование crun в docker надо догадываться. Допишешь на wiki?

Но да, с crun, похоже, работает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253692</commentid>
    <comment_count>9</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2024-10-30 17:58:28 +0300</bug_when>
    <thetext>runc-1.2.0-alt1.1 -&gt; sisyphus:

 Wed Oct 30 2024 Ivan A. Melnikov &lt;iv@altlinux&gt; 1.2.0-alt1.1
 - NMU: fix loongarch64 support (ALT#51885)
   + backport upstream patch from libseccomp-golang upstream
   + add a similar fix for libcontainer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253729</commentid>
    <comment_count>10</comment_count>
    <who name="Павел">strela034+alt</who>
    <bug_when>2024-10-31 13:26:59 +0300</bug_when>
    <thetext>Подтверждаю, что починилось. Спасибо!</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>