Penghitung tampilan yang mengubah katalog kami menjadi 502

Pengiriman

Halaman yang mencantumkan setiap Paket Kit yang kami jual menjawab setiap pengunjung dengan 502 Bad Gateway selama sekitar 41 jam setelah peluncuran. Halaman masing-masing Paket Kit berfungsi, halaman beranda berfungsi, checkout berfungsi. Bagian yang rusak adalah beberapa baris yang menghitung jumlah tampilan halaman.

Bug tersebut

Server toko kami menghitung kunjungan ke halaman Paket Kit. Untuk mengetahui Paket Kit mana yang diminta, ia mengambil bagian kedua dari path:

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

Untuk /kits/studio/, itu adalah studio. Untuk katalog itu sendiri, /kits/, path memiliki dua garis miring, sehingga Pengaman membolehkannya lewat, tetapi setelah menghapus garis miring hanya ada satu bagian, dan [1] memunculkan IndexError. Handler adalah http.server standar Python: sebuah exception di do_GET menutup koneksi tanpa jawaban, dan Cloudflare menampilkan 502 kepada pengunjung.

Perbaikannya adalah satu fungsi kecil yang mengembalikan string kosong ketika bagian tersebut hilang. Penghitung tampilan hanya pernah membutuhkan nama Paket Kit; ia tidak pernah perlu bisa merusak halaman yang sedang dihitungnya.

Mengapa tidak ada pemeriksaan kami yang melihatnya

Apa yang berubah

Kesimpulan

Pekerjaan sampingan dalam request handler, seperti menghitung, mencatat, atau melacak, tidak boleh sampai membuat request gagal, dan pemeriksaan halaman yang hanya mencakup halaman yang baru Anda ubah akan melewatkan halaman-halaman yang menautkan ke sana. Watch di Night Watch menerima daftar halaman apa pun, masing-masing dengan teks yang harus terkandung di dalamnya, tidak hanya halaman beranda.

Diperbarui: