باگ ۱۶ ساله‌ی SQLite، و شش ماه زمان که Tailscale صرف پیدا کردنش کرد!

👁 1040 بازدید ❤️ 13 واکنش 📤 14 فوروارد

باگ ۱۶ ساله‌ی SQLite، و شش ماه زمان که Tailscale صرف پیدا کردنش کرد!


این ماجرای جالبیه از مشکل SQlite که سال‌ها وجود داشته ولی بین این همه کاربر SQLite که از پروژه کوچیک شخصی تا زیرساخت‌های بزرگ ازش استفاده کردن؛ گریبان‌گیری Tailscale شد. داستان مهندسی پشتش و پیدا کردن دلیلش اینقدر جالب بود که به صورت کامل‌تر (با توضیحات اضافه که برای دوستانی که جزئیات دیتابیس‌ها رو نمی‌دونن هم بار آموزشی داشته باشه و مبهم نمونه) 🔗 اینجا نوشتم.


من در مورد دیتابیس حداقل ۲ مورد مشابه رو تجربه کردم که باگ جدی گریبان‌گیر یه شرایط خیلی خاص شد؛ یکیش حتی به مکاتبه با Kimberly کشید و اونم گفت نمیشه کاری کرد؛ ولی چند ماه تعطیل کردن اکثر کارها برای تمرکز روی یک باگ و بارها سفر به جنوب منجر به حلش شد. و دومی ۳۶ ساعت کار بدون وقفه (در حد غذا و...) و جمع کردن حجم عظیمی از لاگ‌ها نتونست کمک کنه تا اینکه از جایی که عقل جن هم بهش نمیرسید ایراد رو پیدا کردم. متاسفانه در شرایط فعلی ترجیح می‌دم توضیح بیشتری ندم درحالیکه دوست دارم روزی با جزئیات، داستان و مسیر حلشون رو بنویسم.


این دو تا باگ؛ جزو تجربیاتی بود که به «یادگیری عمیق» من از انجین دیتابیس و لایه‌های پایین‌تر خیلی کمک کردن؛ این که دقیقا خود انجین چجوری برخی کارها رو انجام میده (خوندن این دو تا فایل از pg 8.1 و ده‌ها فایل دیگه ازش کمک کرد یه بخشی از انجین دیگه‌ای که کدش بسته بود رو با حدس بفهمم و برای منظور خاص بخشی از رفتار انجین رو طوری بازنویسی کنم که رفتار مورد نظرم رو انجام بده تا مسئله رو بشه حل کرد فایل ۱ و فایل ۲)


← بازگشت به همه پست‌ها