4 poin oleh GN⁺ 2024-03-01 | 1 komentar | Bagikan ke WhatsApp

Perbaikan bug sistem pembayaran selesai

  • Setelah pekerjaan darurat yang dilakukan pagi ini selesai, tim pembayaran telah memperbaiki bug yang secara keliru menagih pelanggan bulanan untuk hari tambahan.
  • Semua rangkaian pengujian kini telah lulus, dan QA akan memverifikasi perbaikannya pada tahun 2028 sebelum SRE melakukan analisis pascainsiden.

Pendapat GN⁺

  • Kasus perbaikan bug ini menekankan pentingnya QA (Quality Assurance) dalam pengembangan perangkat lunak. Bug yang tidak ditemukan melalui proses QA dapat menimbulkan masalah di lingkungan produksi nyata, dan hal ini berdampak langsung pada kepuasan pelanggan.
  • Prosedur postmortem adalah proses penting untuk menganalisis penyebab dan mencegah terulangnya kembali setelah gangguan sistem atau bug terjadi. Melalui proses ini, tim dapat meningkatkan kemampuan penyelesaian masalah dan menyiapkan langkah pencegahan agar masalah serupa tidak terulang.
  • Sistem pembayaran lain dengan fungsi serupa antara lain Stripe dan PayPal, yang masing-masing memiliki fitur keamanan dan keandalannya sendiri. Sebaiknya bandingkan karakteristik dan biaya tiap layanan sebelum digunakan.
  • Hal-hal yang perlu dipertimbangkan saat mengadopsi teknologi ini meliputi stabilitas sistem, pengalaman pengguna, dan efisiensi biaya. Selain itu, respons cepat dan komunikasi yang transparan saat terjadi gangguan juga penting.
  • Manfaat yang bisa diperoleh dari memilih teknologi ini adalah pemulihan kepercayaan pelanggan dan peningkatan stabilitas sistem, tetapi di sisi lain bisa timbul biaya jangka pendek seperti terhentinya pekerjaan akibat perbaikan bug darurat.

1 komentar

 
GN⁺ 2024-03-01
Opini Hacker News
  • Cerita yang didengar seorang teman di Tiongkok: ada bug pada bagian perhitungan usia di aplikasi reservasi sertifikat pernikahan, sehingga saat menghitung usia minimum legal 22 tahun dengan mengurangkannya dari tahun berjalan, hasilnya menjadi 29 Februari 2002 yang tidak pernah ada. Aplikasi kemudian mencoba membandingkan tanggal ini dengan tanggal lahir pengguna, tetapi karena kode penanganan error menganggap semua error berasal dari proses perbandingan, semua reservasi sertifikat pernikahan ditolak dengan alasan pengguna terlalu muda untuk menikah.
  • Ada produk yang menggunakan ChatGPT API dan memakai versi 3.5 Turbo. Beberapa kueri berisi tanggal, dan hari ini alih-alih mengembalikan teks seperti biasa, sistem mengembalikan error karena menganggap 29 Februari 2024 adalah tanggal yang tidak valid. Kadang mudah direproduksi lewat antarmuka web; awalnya ia mengatakan tanggal itu tidak valid, lalu saat menjelaskan menyadari kesalahannya dan terkadang mengoreksi dirinya sendiri.
  • Cloudflare mengirim tagihan hari ini, tetapi nama file PDF lampirannya adalah cloudflare-invoice-1970-01-01.pdf.
  • Di toko ICA di Swedia, pada Kamis pagi pembayaran kartu tidak bisa diterima. Sebagai gantinya, pelanggan harus membayar dengan tunai, Swish, atau lewat aplikasi. Penyebab masalahnya adalah isu internal pada sistem pembayaran ICA akibat tanggal tambahan di Februari, yaitu hari kabisat. ICA adalah jaringan toko bahan makanan terbesar di Swedia.
  • Ada perangkat lunak yang menulis data ke direktori rotasi berdasarkan tanggal, dan saat melakukan debugging manual di sistem pengujian, pembuatan direktori pertama kali pada 29 Februari UTC gagal. Ternyata penyebabnya adalah ruang disk yang habis, tetapi selama lebih dari satu jam saya yakin itu bug tahun kabisat.
  • Ada bot yang memposting catatan cuaca harian San Francisco ke Mastodon. Hari ini bot itu tidak memposting sesuai jadwal. Bot tersebut melihat suhu tertinggi, suhu terendah, dan curah hujan untuk tanggal hari ini dari 1875 hingga sekarang, lalu error karena tidak ada tanggal 29 Februari 1875.
  • Sebaliknya! Beberapa layanan yang tidak pernah mengucapkan selamat ulang tahun pada tahun non-kabisat justru melakukannya hari ini. Saya lahir pada 29 Februari.
  • Contoh spesifik: Theatrhythm Final Bar Line, game Final Fantasy berbasis ritme, tidak menangani hari kabisat dengan benar, sehingga hari ini orang-orang tidak bisa memainkan game tersebut. Game-nya bisa dijalankan, tetapi sebenarnya tidak bisa dimainkan.
  • Ada aplikasi Rails 6 dengan pengujian yang mengharapkan time_ago_in_words(1.year.from_now) mengembalikan "sekitar 1 tahun". Pengujian itu gagal, dan awalnya saya kira ini flaky test, tetapi ternyata bisa direproduksi secara lokal. Jika kode itu dijalankan pada hari kabisat, hasilnya menjadi "kurang dari 1 tahun lagi". Bisa diuji di Rails console.
  • Di beberapa SPBU di Selandia Baru, pompa bensin tidak berfungsi pada Kamis karena "glitch tahun kabisat" pada perangkat lunak pembayaran. SPBU dan penyedia layanan pembayaran telah mengonfirmasinya.