DevOps Labdon
458 subscribers
24 photos
3 videos
2 files
692 links
👑 DevOps Labdon

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
How we found a bug in Go's arm64 compiler (11 minute read)

🟢 خلاصه مقاله:
Cloudflare یک باگ از نوع race condition را در کامپایلر Go برای معماری arm64 پیدا کرد که باعث panicهای پراکنده روی ماشین‌های arm64 به دلیل خراب‌شدن پشته می‌شد. این باگ وقتی فعال می‌شد که asynchronous preemption دقیقا بین دستورهای تنظیم پیاپی اشاره‌گر پشته در جریان garbage collection رخ می‌داد و در نتیجه پشته موقتا در وضعیت نامعتبر دیده می‌شد.

راهکار این است که به‌جای تغییر پله‌ای اشاره‌گر پشته، ابتدا offset در یک رجیستر موقت ساخته می‌شود و سپس همان مقدار در قالب یک opcode غیرقابل‌تفکیک به RSP اضافه می‌گردد تا اشاره‌گر پشته همواره معتبر باشد. این اصلاح در نسخه‌های go1.23.12، go1.24.6 و go1.25.0 منتشر شده و کاربران Go روی arm64 باید برای جلوگیری از این کرش‌های نادر اما جدی، ارتقا دهند.

#Go #arm64 #Compiler #RaceCondition #Cloudflare #GarbageCollection #Concurrency #BugFix

🟣لینک مقاله:
https://blog.cloudflare.com/how-we-found-a-bug-in-gos-arm64-compiler/?utm_source=tldrdevops


👑 @DevOps_Labdon
1