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

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

    <bug>
          <bug_id>50497</bug_id>
          
          <creation_ts>2024-05-29 23:30:11 +0300</creation_ts>
          <short_desc>Conversion does not work on a union FS</short_desc>
          <delta_ts>2024-05-31 00:48:38 +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>usrmerge-hier-convert</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vitaly Lipatov">lav</reporter>
          <assigned_to name="Arseny Maslennikov">arseny</assigned_to>
          <cc>arseny</cc>
    
    <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>246993</commentid>
    <comment_count>0</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2024-05-29 23:30:11 +0300</bug_when>
    <thetext>При попытке обновить систему, запущенную в контейнере:

filesystem-3.1-alt1: Starting usrmerge-hier-convert...
usr-m: Conversion does not work on a union FS.
     : Your image will have to be rebuilt from a new FS tree, sorry.
     : Exiting.
ошибка: lua script

Что непреодолимого не может union FS, что потребовалось отдельно выделять этот момент? Ссылки не создаёт?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246994</commentid>
    <comment_count>1</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2024-05-29 23:41:48 +0300</bug_when>
    <thetext>Два соображения:
1) Нет никакого смысла проводить такое обновление в контейнере; его можно перегенерировать — по крайней мере, я исходил из именно такого опыта подготовки и эксплуатации контейнеров.
2) Если у кого-либо достаточно свободного времени отлаживать процедуру на union FS и ответственно её поддерживать в отчуждаемом от автора виде — patches welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246995</commentid>
    <comment_count>2</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2024-05-29 23:43:18 +0300</bug_when>
    <thetext>Как минимум, например, на каскадной ФС в общем случае должно быть нельзя сделать `mv --exchange`, если один из аргументов не на верхнем слое.

(В p11 и текущем сизифе mv не умеет в эту опцию, мы используем отдельную маленькую C-программу.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246997</commentid>
    <comment_count>3</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2024-05-30 00:10:24 +0300</bug_when>
    <thetext>(Ответ для Arseny Maslennikov на комментарий #1)
&gt; Два соображения:
&gt; 1) Нет никакого смысла проводить такое обновление в контейнере; его можно
&gt; перегенерировать — по крайней мере, я исходил из именно такого опыта
&gt; подготовки и эксплуатации контейнеров.
Почему-то вы решили, что контейнеры можно перегенерировать. Это из обширного опыта использования контейнеров?

2) Если у кого-либо достаточно свободного времени отлаживать процедуру на union FS и ответственно её поддерживать в отчуждаемом от автора виде — patches welcome.
Не понимаю, что такое «в отчуждаемом от автора виде».

&gt; Как минимум, например, на каскадной ФС в общем случае должно быть нельзя сделать `mv --exchange`, если один из аргументов не на верхнем слое.
Это хорошее соображение, но надеюсь, что это не просто предположение.

Жаль, что мне сломали возможность обновить десятки систем с p10.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247049</commentid>
    <comment_count>4</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2024-05-31 00:45:16 +0300</bug_when>
    <thetext>(In reply to Vitaly Lipatov from comment #3)
&gt; (Ответ для Arseny Maslennikov на комментарий #1)
&gt; &gt; Два соображения:
&gt; &gt; 1) Нет никакого смысла проводить такое обновление в контейнере; его можно
&gt; &gt; перегенерировать — по крайней мере, я исходил из именно такого опыта
&gt; &gt; подготовки и эксплуатации контейнеров.
&gt; Почему-то вы решили, что контейнеры можно перегенерировать. Это из обширного
&gt; опыта использования контейнеров?

Ваша реплика заставила меня задуматься, о чём мы именно говорим. :) Слово &quot;контейнер&quot; я встречал в 3 смыслах:
* VZ-виртуалка без своего ядра;
* mainline-namespaces-окружение без своего ядра, которым пользуются как stateful недовиртуалкой, ставят туда пакеты, etc. Правда, там overlayfs обычно нет;
* системы на генерируемых образах, в которых обычно применяется overlayfs.

Вот последние обычно по построению можно свободно перегенерировать; по крайней мере, нижний их слой с системой. Это следует из того, что ОС свободная. А зачем они иначе нужны вообще?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247050</commentid>
    <comment_count>5</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2024-05-31 00:46:18 +0300</bug_when>
    <thetext>(In reply to Vitaly Lipatov from comment #3)
&gt; (Ответ для Arseny Maslennikov на комментарий #1)
&gt; &gt; 2) Если у кого-либо достаточно свободного времени отлаживать процедуру на
&gt; &gt; union FS и ответственно её поддерживать в отчуждаемом от автора виде —
&gt; &gt; patches welcome.
&gt; Не понимаю, что такое «в отчуждаемом от автора виде».

Бывает такое ПО, которое хорошо и надёжно работает только у своего автора или в его непосредственном присутствии, а иначе начинает ломаться и кривляться. Вот его применение фактически не отчуждаемо от автора (как бы там ни было юридически).

Любой программный продукт (абстрактно) отличается от не-продукта в т. ч. тем, что его можно использовать без присутствия автора.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247051</commentid>
    <comment_count>6</comment_count>
    <who name="Arseny Maslennikov">arseny</who>
    <bug_when>2024-05-31 00:48:38 +0300</bug_when>
    <thetext>
&gt; &gt; Как минимум, например, на каскадной ФС в общем случае должно быть нельзя сделать `mv --exchange`, если один из аргументов не на верхнем слое.
&gt; Это хорошее соображение, но надеюсь, что это не просто предположение.
&gt; 
&gt; Жаль, что мне сломали возможность обновить десятки систем с p10.

Какой-то алгоритм апгрейда для каскадных ФС, вероятно, возможен; там не будет mv --exchange, и, очевидно, значительно повысятся требования к месту на диске (и надо будет хорошо обрабатывать ENOSPC). Не берусь судить, насколько он совпадёт с алгоритмом для R/W FS, или сработает ли наивное `cp -Tax`, или можно ли наживую в верхнем слое заменить dentry с каталогом на совсем другую dentry. Как обычно: если это для вас ценно, то вы можете исследовать тему и его реализовать (или найти кого-то, кто это сделает). Возражать против этого не буду :)</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>