- Saat feed beranda Twitter sempat tumbang hampir sepanjang pagi itu, teramati situasi di mana klien web terus mengulang permintaan konten dan tampak memicu DDOS pada dirinya sendiri
- Bahkan di layar yang gagal dimuat, percobaan ulang tidak berhenti, dan pada video pertama terlihat error rate limited serta scrollbar yang bergetar
- Pada video kedua, terlihat Twitter mengirim sekitar 10 permintaan per detik ke dirinya sendiri saat mencoba mengambil konten yang tidak kunjung tiba
- Kemungkinan penyebabnya ditunjuk pada pembatasan pembacaan untuk pengguna yang tidak login yang baru diterapkan dan mungkin menciptakan kondisi tak terduga
- Pada video lanjutan, konsol jaringan Firefox juga menunjukkan permintaan yang terus membanjir, sehingga ditafsirkan sebagai situasi self-DDOS di mana browser pengguna berulang kali mengirim permintaan ke Twitter
Permintaan berulang yang terlihat di klien web Twitter
- Feed beranda Twitter tumbang hampir sepanjang pagi itu, dan bahkan saat tidak ada apa pun yang dimuat, situs web tersebut tidak berhenti mencoba ulang permintaan
- Video pertama menampilkan pesan error bahwa pengguna berada dalam kondisi rate limited serta scrollbar di sisi kanan yang bergetar
- Video kedua menunjukkan alasan scrollbar bergetar, yaitu Twitter mengirim sekitar 10 permintaan per detik ke dirinya sendiri saat mencoba mengambil konten
- Perubahan yang dituding sebagai latar belakang konten yang tidak kunjung datang adalah pemblokiran agar pengguna yang tidak login tidak bisa membaca Twitter
Verifikasi lanjutan dan materi terlampir
- Post lanjutan menampilkan tambahan bukti melalui tampilan konsol jaringan Firefox bahwa permintaan jaringan terus terjadi
- Disertakan pula tafsiran bahwa kode yang dirilis memicu race condition, yang pada akhirnya membuat para pengguna menjalankan permintaan bergaya DDOS ke Twitter
- Pengunggah menyatakan awalnya sempat menutup koneksi, tetapi setelah itu Twitter tetap memicu permintaan terus-menerus untuk sementara waktu
- Materi terlampir:
2 komentar
Twitter, sementara beralih ke mode pembatasan laju
Komentar Hacker News
Dari pengalaman pribadi yang sangat menyakitkan, jarang ada hal yang lebih mengguncang daripada dipaksa menjalankan sesuatu yang jelas-jelas merupakan ide yang mengerikan
Terutama ketika Anda mencoba memberi tahu orang yang menekan Anda untuk melawan penilaian terbaik Anda, tetapi gagal, lalu belakangan orang itu dengan lantang menyangkal pernah meminta hal tersebut meski ada bukti tertulis
Saya tidak tahu apakah orang-orang yang sekarang bekerja di Twitter sudah memperingatkan bahwa langkah terbaru ini bisa menimbulkan efek samping sebesar ini, tetapi melihat cara kepemimpinannya beroperasi, saya sama sekali tidak terkejut
Saya sangat tidak suka dengan perubahan Twitter dalam beberapa bulan terakhir, dan bahkan sebelum akuisisi pun saya tidak menyukainya karena format pendeknya menghilangkan nuansa dan beberapa tweet yang mudah di-embed bisa jadi dasar sebuah artikel, tetapi saya benar-benar kasihan pada orang-orang yang harus bekerja di bawah manajemen seperti itu
Tebakan saya, Elon berkata “situsnya terlalu lambat”, para engineer melihat bahwa permintaan home feed memang lambat, tetapi mereka tidak memahami strukturnya, tidak punya alat profiling, dan ditekan untuk memperbaikinya dalam tenggat yang tidak realistis
Jadi satu-satunya hal yang hampir bisa mereka lakukan adalah mengirim beberapa permintaan paralel dan berharap salah satunya cepat
Setelah bekerja di industri game, saya jadi paham kenapa game bisa dirilis setelah menghabiskan uang dan waktu dalam jumlah besar tetapi bahkan fungsi dasarnya pun rusak
Tekanan jadwal ekstrem seperti ini secara paradoks menciptakan kubangan raksasa di mana mengubah satu hal merusak sepuluh hal lain, dan pada akhirnya kemajuan pun berhenti
Ini adalah penanganan error dasar yang seharusnya sudah ada sejak beberapa tahun lalu
Entah itu 403 atau respons apa pun yang memblokir tweet, seharusnya sama sekali tidak memicu retry tak terbatas dengan interval pendek
Saya membuat alat untuk mengelola tiket kerentanan tim, dan use case pertamanya justru menghapus semua tiket kerentanan meski saya menentangnya
Orang yang menjalankannya lebih peduli membuat semuanya tampak bagus di atas kertas daripada benar-benar meningkatkan keamanan
Anda sudah tahu sejak lama dan berulang kali mengusulkannya, tetapi bahkan tidak diizinkan mencoba, malah dikucilkan dan diperlakukan sebagai “orang itu”
Saya pernah mengalaminya dengan pendekatan teknis dan bisnis yang “cara lama”-nya entah bagaimana masih berjalan, tetapi perlahan membunuh perusahaan
Namun jika atasan secara jelas mengambil tanggung jawab atas sesuatu yang dinilai berisiko tetapi perlu, akan ada jauh lebih banyak ruang untuk merespons dengan baik saat masalah muncul, dan developer juga tidak harus terlalu menanggung sindiran belakangan
Tentu saja, yang seperti ini memang lebih mudah untuk dicaci
Kita harus melihat bahwa kali ini terjadi pada akhir pekan libur
Elon memaksakan rilis besar, dan pada dasarnya membuat para engineer masuk kerja lalu terus mengulang berbagai patch selama 12 jam terakhir
Saya khawatir untuk para programmernya
Yang lebih mengejutkan adalah betapa engineering Twitter akhir-akhir ini terlihat seperti serangkaian tambal sulam
Masalah muncul karena mereka tidak mengerahkan upaya untuk menyelami codebase secara mendalam dan hanya memilih perbaikan yang paling sederhana dan paling singkat
Pada titik ini, baik syarat kerja maupun ekspektasi dari atasan sudah sangat jelas
Sulit merasa simpati pada orang-orang yang tetap bertahan, apa pun alasan mereka masih tinggal
Kemungkinan bug ini adalah penyebabnya sangat kecil
Rate limiter di sisi server biayanya kecil, dan bug frontend hanya terpicu saat rate limiting aktif
Saya pernah melihat bug serupa di sistem yang saya kelola karena library jaringan suka me-retry permintaan secara default tanpa batasan yang masuk akal
Tetapi retry itu tidak pernah sampai membebani rate limiter
Kalau API yang dipukul melakukan pekerjaan mahal dulu sebelum mengembalikan error, memang jadi sedikit lebih menyebalkan, dan itulah sebabnya semua endpoint publik diberi rate limiting
Web app kemungkinan adalah bagian paling kecil dari traffic Twitter, dan native app mungkin tidak punya masalah ini
Bisa saja pemblokiran akses anonim memicu DDoS, itu menyebabkan lonjakan besar pada suatu metrik, lalu Elon menyimpulkan itu sebagai kenaikan scraping dan kemudian memasang batas 600 tweet per hari untuk menghukum scraper
Jatah saya tampaknya sudah di-reset atau kebijakannya berubah, karena saya bisa mengakses situs lagi
Saya setuju kemungkinan bug ini adalah akar penyebab semuanya rendah
Tetapi saya juga tidak percaya pada cerita yang dijual Musk sebagai alasan menutup situs secara efektif
Keduanya bisa saja benar, dan itu membuat saya terus memikirkan alasan potensial lain, yang sepenuhnya buang-buang waktu tetapi terasa seperti umpan mental yang aneh
Buku "Nothing is true and everything is possible" membahas bagaimana Putin menggunakan disinformasi untuk mengendalikan publik dan menyingkirkan politik demokratis, dan rasanya itu juga berlaku di sini
Penggemar Musk akan mengulang persis apa pun yang dia suruh katakan, tetapi kebanyakan orang akan tahu itu cuma omong kosong demi kepentingan dirinya sendiri
Dan orang yang mencoba mencari akar masalah akan mudah terseret ke narasi seperti bug ini, yang terasa masuk akal tetapi sama sekali tidak punya data pendukung
Jika Anda ingin melihat kemungkinan jalur masa depan Amerika, saya sangat merekomendasikan buku ini
https://en.wikipedia.org/wiki/Nothing_Is_True_and_Everything...
Saya pernah melihat langsung dan mencoba memitigasi kasus degeneratif di mana retry seperti ini membanjiri backend sampai server bahkan tidak sanggup menge-拒绝 permintaan
Karena retry dari banyak lapisan pemanggil di hulu, situasinya memburuk sedemikian rupa sehingga permintaan pada dasarnya timeout di buffer/antrian TCP bahkan sebelum sempat diproses oleh aplikasi
Saya tidak tahu apakah backend homepage Twitter berada di skala yang mirip
Situasi yang menarik.
Dari tangkapan layar, terlihat jumlah
GET /TweetDetailyang sangat besar, dan seperti yang terlihat dari 429, ini tampaknya memicu semacam pembatasan laju.Jika ini disebabkan oleh keputusan baru-baru ini untuk mewajibkan autentikasi pada semua pemanggilan API, pelakunya sebenarnya bisa jadi API gateway atau komponen serupa di bawahnya.
Perilaku ini juga tampaknya tidak berhenti, yang bukan perilaku yang diharapkan dari retry dengan exponential backoff.
Bukannya saya mengklaim sebagai insinyur yang lebih baik daripada orang-orang yang bekerja di Twitter, tetapi bahkan tanpa mempertimbangkan faktor Musk, menarik melihat fenomena seperti ini di lingkungan produksi.
Saya terlalu sering melihat kasus di mana orang lebih memilih backoff acak yang konstan daripada exponential backoff karena dianggap jauh lebih penting untuk melayani permintaan pengguna dengan latensi rendah.
Saya juga pernah melihat dalam berbagai rapat desain dan dokumen bahwa ada keputusan eksplisit untuk tidak menggunakan exponential backoff sambil tetap memahami trade-off antara overload dan pemulihan sistem.
Bisa jadi perubahan backend, yaitu autentikasi wajib + pembatasan laju, diterapkan tanpa pengujian frontend dan backend bersama yang memadai.
Itu tampak seperti tersangka yang masuk akal.
Bisa jadi instance Twitter sedang dipaksa dimatikan.
Platformer melaporkan pada 10 Juni bahwa “Twitter menolak membayar biaya layanan cloud Google menjelang tanggal perpanjangan kontraknya pada 30 Juni.”
Disebut juga bahwa “kontrak Google Cloud Twitter telah berjalan sejak 2018.”
https://www.engadget.com/twitter-has-supposedly-started-payi...
Ah, rasanya ini menjelaskan seluruh kekacauan ini.
Mereka mungkin sedang mencoba keluar dari GCP, tetapi ini tampaknya bukan karena mereka tiba-tiba kehilangan akses ke GCP akibat menolak membayar.
Ini artikel dari seminggu lalu.
Semuanya di-host sendiri.
Gcloud hanya mendukung pekerjaan batch dan analitik data.
Ini teori yang menarik, tetapi DDoS sudah terjadi sebelum keputusan untuk menonaktifkan akses anonim.
Sebenarnya, keputusan itu diambil untuk mitigasi DDoS yang sedang berlangsung[0][1].
Jadi, logika retry web frontend yang mencurigakan mungkin memperparah situasi, tetapi bukan akar penyebabnya.
[0] https://twitter.com/elonmusk/status/1674865731136020505
“Ini adalah tindakan darurat sementara. Penjarahan data sudah sangat parah sampai menurunkan kualitas layanan bagi pengguna biasa!”
[1] https://twitter.com/elonmusk/status/1674942336583757825
“Ini akan segera dicabut. Seperti posting sebelumnya, tingkat scraping data yang ekstrem memerlukan tindakan yang tegas dan segera.”
“Hampir setiap perusahaan yang bergerak di AI, dari startup sampai beberapa perusahaan terbesar di bumi, melakukan scraping data dalam jumlah besar.”
“Cukup menjengkelkan harus buru-buru menambah server dalam jumlah besar hanya untuk membantu valuasi konyol dari suatu startup AI.”
Arsip besar dari semua tweet sebelum tanggal tertentu yang dipakai startup-startup itu pasti beredar di suatu tempat.
Adakah yang tahu apakah permintaan seperti ini sudah ada sebelum perubahan menjadi khusus login?
Akan sangat lucu jika operasi scraping besar itu ternyata sebenarnya adalah bug JavaScript mereka sendiri.
Saya tidak akan kaget sama sekali kalau sebagian besar “lonjakan scraping” itu justru kesalahan Twitter sendiri.
Hasil yang bodoh tapi sudah jelas.
Puluhan permintaan mungkin terkirim selama beberapa detik sampai pembatasan laju aktif.
Banyak bug kecil seperti ini jika terkumpul bisa saja tampak seperti DDoS atau scraping.
Mungkin ini memang bukan bug.
Elon mengatakan ada batas 600 tweet yang bisa dilihat per hari, dan itu batas yang gila.
Kebanyakan orang mungkin bisa melewati jumlah itu hanya dengan scroll selama 5 menit.
Saat Tweetbot menampilkan bahwa ada lebih dari 500 item di feed saya, seingat saya itu sudah cukup omong kosong untuk dibaca selama beberapa perjalanan trem masing-masing 20 menit.
Saya tidak meragukan bahwa Twitter baru-baru ini melihat lonjakan trafik yang sangat besar, tetapi saya cukup yakin bahwa sebagian besar dari itu adalah masalah yang mereka ciptakan sendiri.
Elon sebenarnya tinggal membiarkannya saja, tapi oh iya, ada 44 miliar dolar
Parag Agrawal dan timnya tahu persis apa yang mereka lakukan
Ini benar-benar contoh pepatah bahwa orang bodoh dan uangnya akan segera berpisah
Setelah Elon dipaksa oleh pengadilan Delaware untuk membeli Twitter, dia pergi ke para diktator kaya, mengambil 44 miliar dolar dari mereka, lalu berjanji akan membakar habis Twitter atas nama mereka
Tanpa Twitter, tidak ada Arab Spring, tidak ada pembaruan bencana secara real-time, dan tidak perlu mematikan internet untuk mencegah suara-suara oposisi menyebar
Tidak terlalu berarti, tapi batas kecepatan mulai dilonggarkan lagi
6k/600/300 → 8k/800/400 (sekitar tengah hari) → 10k/1k/500 (sekitar jam 3 sore)
https://twitter.com/elonmusk/status/1675214274627530754 dan berdasarkan balasan dirinya sendiri
Muncul “Something went wrong”
Di bawah aturan baru yang hanya untuk pengguna login, sepertinya tetap tidak akan bisa dibaca meski situsnya hidup
Sekarang tautan Twitter menjadi tautan tercemar dan pada dasarnya tidak berguna
Ini benar-benar sirkus total