የእይታ ቆጣሪው ካታሎግን ወደ 502 የቀየረው

ማሰራጨት

የምንሸጣቸውን ሁሉንም ሶፍትዌር ጥቅሎች የሚዘርዝረው ገጽ ከተከፈተ በኋላ ለወደ 41 ሰዓታት ሁሉንም ጎብኚዎች በ502 Bad Gateway መልሶቸዋል። እያንዳንዱ ሶፍትዌር ጥቅል የራሱ ገጽ ሠርቷል፣ ዋናው ገጽ ሠርቷል፣ ክፍያ መስጠት ሠርቷል። የተበላሸው ክፍል የገጽ እይታዎችን የሚቆጥሩ ጥቂት መስመሮች ነበሩ።

ስህተቱ

የሱቅ ሰርቨራችን የሶፍትዌር ጥቅል ገጾችን ጉብኝቶች ይቆጥራል። አንድ ጥያቄ ለየትኛው ሶፍትዌር ጥቅል እንደሆነ ለማወቅ፣ የመንገዱን ሁለተኛ ክፍል ወስዷል፡

self._count_view(path.strip("/").split("/")[1] if path.count("/") >= 2 else "")

ለ/kits/studio/ ይህ studio ነው። ለካታሎጉ ራሱ /kits/፣ መንገዱ ሁለት ስላሾች ስላሉት የደህንነት ገደቡ አስታልፎታል፣ ነገር ግን ስላሾቹን ካስወገድን በኋላ አንድ ክፍል ብቻ ስለሚቀር [1] IndexError አስነስቷል። አያያዡ (handler) የPython መደበኛ http.server ነው፡ በdo_GET ውስጥ የሚመጣ ስህተት መስተጋብሩን ያጠፋል ወደ ገጹም መልስ አይሰጥም፣ Cloudflare ጎብኚውን 502 አሳይቷል።

መፍትሄው ክፍሉ ሲጎድል ባዶ ገጽታ (empty string) የሚመልስ አንድ ትንሽ ፈንክሽን ነው። የእይታ ቆጠራው የሶፍትዌር ጥቅሉን ስም ብቻ ነበር የፈለገው፤ የሚቆጥረውን ገጽ የሚያበላሽበት ምክንያት ፈጽሞ አልነበረበትም።

ምንም አይነት ምርመራችን ለምን አላየው

የተቀየረው

ዋናው ማስተዋል

በአንድ የጥያቄ አያያዣ ውስጥ የሚደረጉ ጎን ለጎን ስራዎች (ለምሳሌ መቁጠር፣ መመዝገብ ወይም መከታተል) ጥያቄውን ሊያስፈሹ አይገባም፤ እንዲሁም አዲስ የቀየራቸውን ገጾች ብቻ የሚሸፍን የገጽ ማረጋገጫ ወደ እነሱ የሚያገናኙትን ገጾች ያመልጣል። በNight Watch ውስጥ ያለው የክትትል ስርዓት እያንዳንዱ ገጽ ሊኖረው የሚገባውን ጽሑፍ ያካተተ የገጾችን ማንኛውንም ዝርዝር ይወስዳል፣ የመነሻ ገጾችን ብቻ አይደለም።

ተሻሽሏል: