[Gelistirici] pisi tarZ desteği

Fatih Aşıcı fatih at pardus.org.tr
13 Haz 2010 Paz 16:04:58 EEST


On Sunday 13 June 2010 15:44:55 Gürer Özen wrote:
> Belki dikkate almışsınızdır ama bir uyarı yapayım. Eğer bir dosyayı
> arşivden  direk hedefine çıkartırsak, o dosyayı o anda kullanmakta olan
> tüm süreçleri kırıyoruz. Yani bu şekilde update yaparken servisler,
> desktop, hatta pisinin kendisi bile (mesela system.base den python yada
> libgzip falan güncellerken) crash ediyor.
> 
> Çözüm için yeni dosyanın farklı bi inode ile oluşmasını sağlamak lazım.
> Bunun  için bir yol önce hedef dosyayı unlink() edip silmek (bu dosyayı o
> anda açmış süreçleri etkilemiyor) ve yeni dosyayı yerine yazmak.

Yapacağım değişikliklerin buna bir etkisi yok. Sonuçta yine tarfile 
kullanıldığı için o senaryoyu dikkate alan kısım durmaya devam edecek.

> Daha
> güvenli olan ise hedef dosyayı önce bir geçici dosyaya yazmak, sonra ise
> asıl yerine move etmek. Bunun avantajı eski dosyayı silmeden önce yeni
> dosyanın tümünü arşivden çıkarmış olacağımız için, mesela arşivde bir
> sorun varsa yarım dosya kalmasının önüne geçmiş oluyoruz. Aklımda kaldığı
> kadarıyla şu anki önce temp bir yere açma sebebi de buydu.

Denemek lazım. Performansa etkisi olup olmadığını merak ediyorum.



Gelistirici mesaj listesiyle ilgili daha fazla bilgi