Debian ブックワーム: apt-get アップデートに失敗しました。 'control.tar' メンバ: lzma エラー: メモリを割り当てられません。

Debian ブックワーム: apt-get アップデートに失敗しました。 'control.tar' メンバ: lzma エラー: メモリを割り当てられません。

dockerコンテナ内でapt-get updateを実行するとmember 'control.tar': lzma error: Cannot allocate memory

スピード:
Debian(bookworm)docker(スリム)コンテナを起動します。
ローカルにビルドされたdebパッケージファイルセットを実行中のコンテナにコピーします。
ローカルにコピーされたファイルに基づいてローカル deb リポジトリを作成する

cd /tmp/local && dpkg-scanpackages -m . > Packages
echo 'deb [trusted=yes] file:/tmp/local /' > /etc/apt/sources.list.d/00_local.list
apt-get --yes update

上記のコマンドはメッセージで失敗します。

dpkg-deb (subprocess): decompressing archive './xyz_amd64.deb' (size=12723480) member 'control.tar': lzma error: Cannot allocate memory
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
dpkg-deb: error: tar subprocess returned error exit status 2
dpkg-scanpackages: error: couldn't parse control information from ./xyz_amd64.deb

この問題は、すべてのコンピュータで発生するわけではありません。 100台を超える機械のうち2台に表示されます。空きメモリが多いようです。

編集1:3つの異なるコンピュータで同じ問題が報告されました。

  1. 6.1.21.1 - マイクロソフト標準 - WSL2+
  2. 5.4.8-1.el7.elrepo.x86_64(セントース7)
  3. 5.15.0-76-ユニバーサル(Ubuntu 20.04)

答え1

問題は、Docker 20.10.8および20.10.9のclone3システムコールの互換性です。回避策は、バージョン20.10.10以降に移行することです。2010年10月20日リリースノート。そうでない場合は、次の方法を使用する必要があります。ハッカー W/A

242   clone3({flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, child_tid=0x7fac716e4990, parent_tid=0x7fac716e4990, exit_signal=0, stack=0x7fac70ee4000, stack_size=0x7fff80, tls=0x7fac716e46c0} <unfinished ...>
243   brk(NULL <unfinished ...>
242   <... clone3 resumed>, 88)         = -1 EPERM (Operation not permitted)

関連情報