İçeriğe geç

CPalius CMF 2.2.15

Yayın: 2026-09-25 · Kanal: kararlı · Kritik: evet

2.2.11'den 2.2.14'e kadar olan sürümler gerçek sorunları düzeltti, ama bu spesifik senaryoya karşı bildirilen çökmenin asıl nedenini değil: bir güncellemeyi uygulamak, hemen ardından, aynı istek içinde migrasyonları çalıştırmak. Bu sürüm tam olarak onu düzeltiyor — ve bunun için önceki dört sürümün, bu sorun yerine komşu sorunları çözdüğünü kabul etmek gerekti.

Aslında sorun neydi

Tam sürüm güncellemesini uygulamak yeni dosyaları yazıyor, sonra — aynı istek içinde, hemen ardından — veritabanı migrasyonlarını çalıştırıyor; bunun için istek başladığında belleğe zaten yüklenmiş olan servisleri (Doctrine migrasyon fabrikası, ve onun isteğe bağlı olarak çözümlediği her şey) kullanarak — güncelleme herhangi bir şeye dokunmadan ÖNCE var olan container'dan. O eski container'ın tam olarak bu nedenle kullanılmaya devam etmesinin güvenli olduğu varsayılmıştı.

Güncellemenin kendi dosya-kurulum adımı, migrasyonlar hiç çalışmadan önce, aynı container'ı kendi son işlemi olarak temizliyordu. Sonraya bırakmıyordu — hemen, bu istekte temizliyordu, çünkü farklı bir adım (hemen ardından ön yüz varlıklarını derlemek) derleyebilmek için taze dosyalara ihtiyaç duyuyordu. Container'ın temizlenmesi, onun DAHA SONRA kullanılamaz hale gelmesiyle aynı şey değil: PHP ondan servisleri zaten yüklemişti, ve o servislerden bazıları kendilerinin DAHA FAZLASINI, ilk kullanımda, aynı dizinden bir dosya okuyarak, tembel (lazy) şekilde yüklüyor. Migrasyonlar, dizin gittikten sonra bunlardan birini isteyen ilk şeydi.

2.2.12'den 2.2.14'e kadar her biri, container'ın temizlendikten sonra daha hızlı ve daha güvenilir şekilde yeniden derlenmesini sağladı — bu, o anda temizlenmiş kopyaya bağımlı olan istek DIŞINDA herkese yardımcı oluyor. Bir yedek yeniden derlemek, ona referansı hâlâ elinde tutan bir sürecin elinden alınan orijinali geri getirmiyor.

Ne düzeldi

Tam sürüm güncellemesi sırasında derlenmiş container'ın temizlenmesi artık migrasyonlar çalıştıktan sonra oluyor, önce değil — varsayım yerine asıl bağımlılık izlendikten sonra ortaya çıkan basit bir sıralama değişikliği. Bir güncellemenin başladığı container, aynı isteğin ona hâlâ ihtiyaç duyan her adımı boyunca artık hayatta kalıyor — aynı nedenle aynı sıralama sorununa sahip olan iki daha nadir kurtarma eylemi (kesintiye uğramış bir güncellemeyi devam ettirme, geri alma) dahil.

Yükseltme

Şema değişikliği yok. Elle bir işlem gerekmiyor. Kurulumunuz şu anda önceki başarısız bir denemeden dolayı güncelleme ortasında takılıysa, AACP'nin Güncellemeler ekranı her zamanki gibi devam ettirme veya geri alma seçeneği sunacak — ikisi de artık bu düzeltmeyi uyguluyor.

Son güncelleme: 13.10.2026