- Katılım
- 8 Eki 2026
- Mesajlar
- 6
- Tepkime puanı
- 0
- Puanları
- 1
Rigid 228 Verified Fix #1
Rigid 228 üzerinde kale savaşı bitişlerini incelerken
Prosedürün refactor edilen bölümündeki iki
Birden fazla GameServer aynı anda kale bitiş işlemini çalıştırdığında sorgular aynı kayıtları kilitlemeye çalıştığı için SQL Server error 1205 deadlock oluşabiliyor. Bu durumda ilgili kale bitiş işlemi geri alınabiliyor ve GameServer dump oluşturabiliyor.
Etkilenen bölüm:
Hata geçici test veritabanında yeniden üretildi:
Test sonucu: 9/9 PASS
UYARI: İşleme başlamadan önce mutlaka
Düzeltme kodlarını görüntülemek için konuyu beğenip kısa bir yorum yazdıktan sonra sayfayı yenileyin.
Düzeltmeyi uygulayan arkadaşlar kullandıkları Rigid sürümünü ve test sonucunu konu altında paylaşırsa farklı database sürümlerini de karşılaştırabiliriz.
Rigid 228 üzerinde kale savaşı bitişlerini incelerken
_SiegeFortressFinished prosedüründe önemli bir filtre hatası tespit ettim.Prosedürün refactor edilen bölümündeki iki
DELETE sorgusunda FortressID = @FortressID koşulu bulunmuyor. Bu nedenle bir kalenin savaşı tamamlandığında yalnız o kalenin barikat ve savaş objeleri yerine diğer kalelere ait kayıtlar da silinebiliyor.Birden fazla GameServer aynı anda kale bitiş işlemini çalıştırdığında sorgular aynı kayıtları kilitlemeye çalıştığı için SQL Server error 1205 deadlock oluşabiliyor. Bu durumda ilgili kale bitiş işlemi geri alınabiliyor ve GameServer dump oluşturabiliyor.
Etkilenen bölüm:
- Veritabanı:
SILKROAD_R_SHARD - Prosedür:
dbo._SiegeFortressFinished - GameServer restartı: Gerekmez
Hata geçici test veritabanında yeniden üretildi:
- Orijinal prosedürde Kale 1 tamamlandığında Kale 2’nin barikat ve savaş objeleri de silindi.
- Düzeltilmiş prosedürde yalnız Kale 1 temizlendi; Kale 2’ye ait kayıtlar korundu.
- Kalenin savunulması ve sahibinin değişmesi yolları ayrı ayrı doğrulandı.
- Tekrar uygulama ve rollback yolları test edildi.
- Farklı bir prosedür sürümünde değişiklik yapılmadan işlem durduruldu.
Test sonucu: 9/9 PASS
UYARI: İşleme başlamadan önce mutlaka
SILKROAD_R_SHARD veritabanınızın güncel yedeğini alın. Prosedürünüz özel olarak değiştirilmişse aşağıdaki satırları doğrudan uygulamadan önce mevcut sorgularınızla karşılaştırın.Düzeltme kodlarını görüntülemek için konuyu beğenip kısa bir yorum yazdıktan sonra sayfayı yenileyin.
Düzeltmeyi uygulayan arkadaşlar kullandıkları Rigid sürümünü ve test sonucunu konu altında paylaşırsa farklı database sürümlerini de karşılaştırabiliriz.


