Imagick architecture mismatch (x86_64 vs aarch64) on official arm64 image causes Apache segfaults
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 50/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- docker, php
- 領域
- build-system, devops
調査の方向性
まず、arm64 イメージ nextcloud:34.0.4-apache で php -i と php -m を実行してレポートを再現し、Imagick と ImageMagick のアーキテクチャ値を確認します。次に、$BUILDPLATFORM と $TARGETPLATFORM 周辺のマルチステージ Dockerfile ビルドを調べます。完了条件は、arm64 イメージが x86_64 の Imagick ビルドを報告しなくなり、Apache のセグメンテーション違反の問題が解決されていることです。
索引モデルが issue の本文から書いたものです。
説明
Description
Running the official nextcloud:34.0.4-apache image on an ARM64 host, I'm experiencing intermittent
Apache child process segfaults. The container recovers only after a full restart.
Suspected root cause
php -i shows a mismatch between the architecture the Imagick extension reports as
"compiled with" versus the ImageMagick library it's actually loading at runtime:
/usr/local/etc/php/conf.d/docker-php-ext-imagick.ini,
imagick
imagick module => enabled
imagick module version => 3.8.1
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
Imagick compiled with ImageMagick version => ImageMagick 7.1.1-43 Q16 x86_64 22550 https://imagemagick.org
Imagick using ImageMagick library version => ImageMagick 7.1.1-43 Q16 aarch64 22550 https://imagemagick.org
This looks like a mismatch introduced during the multi-arch build pipeline (possibly a
$BUILDPLATFORM vs $TARGETPLATFORM confusion in a multi-stage Dockerfile build), where a
build-time string/header from an x86_64 build stage ends up embedded in the arm64 image,
while the actual shared library is correctly built for aarch64.
Environment
- Nextcloud image tag:
nextcloud:34.0.4-apache - Host: QNAP TS-435XeU NAS (ARM64, Marvell/Annapurna Labs Cortex-A72)
- Docker via QNAP Container Station
docker exec -it <container> php -moutput includesimagick(module version 3.8.1)
- 主要言語
- Shell
- スター
- 7.4k
- フォーク
- 1.9k
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
nextcloud/docker のほかの issue
-
1. To develop bug feature: cron image
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
bug docs
難易度 1/5 1時間未満 初心者へのやさしさ 72/100
-
0. Needs triage bug
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
-
PHP 8.5 Breaks Upgrading再び着手できるかも @BUTTERFINGERS7498 が 41 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン0. Needs triage bug
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
nextcloud/docker の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
mesonbuild/wrapdb#2961 ·
メンテナーはふだん 1 日以内に返信
-
command: monitor command: update info: steamcmd reproducible: always severity: medium type: bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
GameServerManagers/LinuxGSM#4997 ·
メンテナーはふだん 1 日以内に返信
-
area:space-accuracy good first issue track:data
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
Sara-Managed-Projects/space-radar#886 ·
メンテナーはふだん 1 日以内に返信
-
bug-unconfirmed
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
zerocracy/judges-action#2733 ·
メンテナーはふだん 8 日以内に返信