bd2097b586
Root cause: CI Docker images don't have wasm32v1-none target installed. wasm-builder falls back to wasm32-unknown-unknown with -Z build-std=core,alloc which causes duplicate alloc crate and 'exchange_malloc' lang item error. Solution: Add 'rustup target add wasm32v1-none' before cargo build steps in all workflows that build WASM. Affected workflows: - checks.yml: cargo-clippy job - build-publish-images.yml: 11 jobs - tests-misc.yml: test-node-metrics, test-deterministic-wasm
4.5 KiB
4.5 KiB
CI WORKFLOW HATA ANALİZİ VE ÇÖZÜM CHECKLIST
Tarih: 2026-01-26 (Güncellendi) Analiz Edilen Run'lar: Son push (main branch)
ÖZET: 1 KÖK NEDEN - 5 WORKFLOW HATASI
| # | Workflow | Job | Durum |
|---|---|---|---|
| 1 | Build and push images | build-test-collators | ❌ BAŞARISIZ |
| 2 | tests misc | test-node-metrics | ❌ BAŞARISIZ |
| 3 | Checks | cargo-clippy | ❌ BAŞARISIZ |
| 4 | EVM test suite | evm-test-suite (test:evm) | ❌ BAŞARISIZ |
| 5 | EVM test suite | All test misc tests passed | ❌ BAŞARISIZ (bağımlılık) |
KÖK NEDEN ANALİZİ
TÜM HATALAR AYNI SORUNDAN KAYNAKLIYOR:
error[E0152]: duplicate lang item in crate `alloc` (which `serde_core` depends on): `exchange_malloc`
Neden Oluşuyor?
- CI Docker image'larında
wasm32v1-nonetarget yüklü DEĞİL - wasm-builder fallback olarak
wasm32-unknown-unknown+-Z build-std=core,allockullanıyor - Bu durumda:
- Standard library'nin kendi
alloccrate'i var -Z build-stdayrıca biralloccrate'i build ediyor- İki farklı
alloc= duplicate lang item hatası
- Standard library'nin kendi
Neden serde Fork'u Yeterli Değil?
- serde fork'umuz (
fix-wasm32v1-nonebranch) wasm32v1-none target için düzeltilmiş - Ancak wasm32-unknown-unknown + build-std senaryosu farklı
- wasm32v1-none yüklenirse, wasm-builder bu target'i kullanır ve
-Z build-stdKULLANMAZ - Problem çözülür
ÇÖZÜM: wasm32v1-none Target Kurulumu
Etkilenen workflow dosyalarına rustup target add wasm32v1-none eklenecek:
Dosya 1: .github/workflows/build-publish-images.yml
build-test-collatorsjob'ına target kurulumu ekle
Dosya 2: .github/workflows/tests-misc.yml
test-node-metricsjob'ını etkileyen WASM build'ler için target kurulumu ekletest-deterministic-wasmjob'ına target kurulumu ekle
Dosya 3: .github/workflows/checks.yml
cargo-clippyjob'ına target kurulumu ekle (zombienet-sdk-tests WASM build)
Dosya 4: .github/workflows/tests-evm.yml
- EVM test'leri için target kurulumu ekle
HATA DETAYLARI
HATA 1: build-test-collators
Log:
error[E0152]: duplicate lang item in crate `alloc` (which `serde_core` depends on): `exchange_malloc`
= note: first definition in `alloc` loaded from wasm32-unknown-unknown/lib/liballoc-81e4e4ffae91d46d.rlib
= note: second definition in `alloc` loaded from target/testnet/wbuild/test-teyrchain-adder/target/wasm32-unknown-unknown/release/deps/liballoc-21f70be7f9695a73.rmeta
Çözüm: rustup target add wasm32v1-none ekle
HATA 2: test-node-metrics
Log:
error[E0152]: duplicate lang item in crate `alloc` (which `serde_core` depends on): `exchange_malloc`
Çözüm: rustup target add wasm32v1-none ekle
HATA 3: cargo-clippy
Log:
error[E0152]: duplicate lang item in crate `alloc` (which `serde_core` depends on): `exchange_malloc`
= note: second definition in `alloc` loaded from target/debug/build/pezkuwi-zombienet-sdk-tests-981c0c2de47cd6a0/out/runtimes/x86_64-unknown-linux-gnu/release/wbuild/pezkuwichain-runtime/target/wasm32-unknown-unknown/release/deps/liballoc-b6b797d641a22516.rmeta
thread 'main' panicked at pezkuwi/zombienet-sdk-tests/build.rs:92:42:
Failed to read WASM file: Os { code: 2, kind: NotFound, message: "No such file or directory" }
Çözüm: rustup target add wasm32v1-none ekle
HATA 4: evm-test-suite (test:evm)
Log:
error: (in promise) Error: No platform detected. Start the chain manually or use START_GETH or START_REVIVE_DEV_NODE and START_ETH_RPC to start the chain from the test runner.
Kök Neden: dev-node WASM build hatası nedeniyle başlatılamıyor Çözüm: WASM build düzeltilince bu da düzelecek
HATA 5: All test misc tests passed
Kök Neden: test-node-metrics başarısız olduğu için bağımlılık hatası Çözüm: test-node-metrics düzeltilince bu da düzelecek
UYGULAMA PLANI
.github/workflows/build-publish-images.yml- wasm32v1-none ekle.github/workflows/tests-misc.yml- wasm32v1-none ekle.github/workflows/checks.yml- wasm32v1-none ekle.github/workflows/tests-evm.yml- wasm32v1-none ekle- Commit ve push
- CI sonuçlarını bekle
NOTLAR
- serde fork'u doğru kullanılıyor (Cargo.lock kontrol edildi)
- wasm32v1-none target kurulumu daha önce PR #346'da kaldırılmıştı
- Şimdi tekrar eklenmesi gerekiyor çünkü fallback mekanizması çalışmıyor
Son güncelleme: 2026-01-26 ~00:30 UTC