SonarQube Out Of Memory Kabusu
Monolith yapıda bir projede mi çalışıyorsunuz?
Projenizdeki kod satır sayınız çok mu yüksek?
Organizasyonunuz, projenizi kod kalitesi konusunda de facto olmuş SonarQube analizine mi tabi tutmanızı istiyor?
Doğru yerdesiniz.
First round
Pipeline dizayn ettikten sonra sonuçlarını meraklı bir şekilde beklerken aşağıdaki gibi “java.lang.OutOfMemoryError” hatasını aldık.
İlk aldığımız aksiyon SonarScanner’ ın çalıştığı sunucunun ram’i yükseltmek oldu.
Second round
Artık kuvvetli bir sanal makinemiz var. Hiç bir şey önümüze engel olamaz diye düşünürken tekrar aynı hatayı aldık.
Bu sefer SonarScanner için ayrılan memory’nin yükseltilmesi için aksiyon aldık. Azure pipelines içerisinde variables sekmesinde kolayca yönetebiliyorsunuz.
Third round
Analiz tamamlandıktan sonra heyecanlı bir şekilde sonuçları yayınlamasını bekliyordum fakat bu sefer de publish adımında hata aldık.
Artık SonarQube sunucusuna geçme zamanı geldi. Bu zamana kadar hep SonarScanner’ın çalıştığı sunucuda güncelleme yapmıştık. SonarQube Web, Compute Engine ve Search Engine olmak üzere üç süreçten oluşmaktadır.
sonar.properties dosyası içerisinde bu süreçler için ayrılan memory’leri yükselttik ve sistemi yeniden başlattık.
- sonar.web.javaOpts
- sonar.ce.javaOpts
- sonar.search.javaOpts
Fourth round
Günün sonunda 2.3 milyon kod satırı olan projemizi başarılı bir şekilde SonarQube analizinden geçirmeyi başardık.
Knockout
Sevgiler…