Lewati ke konten utama

Penanganan Error

Banyak langkah yang dilakukan worker untuk menjalankan autograder dan banyak juga peluang error yang dapat terjadi di antara proses ke prosesnya. Lalu, bagaimana worker dapat menangani beragam potensi error?

Kita membagi error menjadi dua kategori, yang pertama adalah operational error dan yang kedua adalah developer error.

Developer error merupakan kesalahan yang timbul karena developer yang memang salah menulis program. Tidak ada penanganan khusus ketika error ini terjadi. Aplikasi akan crash, proses grading terhenti, dan worker akan mengirimkan notifikasi ke channel Teams agar maintainer aware dan memperbaiki kesalahannya.

error-notification

Sedangkan, operational error merupakan kesalahan yang timbul karena faktor luar yang tidak bisa developer kontrol, seperti gagal mengunduh berkas submission, gagal mengekstrak berkas submission, autograder tidak menghasilkan report.json, dan sebagainya. Error-error inilah yang perlu kita tangani.

Operational error ditangani dengan aksi yang berbeda-beda tergantung dari error-nya. Berikut penjelasannya.

Kode ErrorPenjelasanPenyebabPenanganan
ERR_SUBMISSION_FAILED_TO_DOWNLOADError yang dibangkitkan ketika berkas submission gagal diunduh dari dicoding.com.
  1. Koneksi instance worker sedang bermasalah
  2. dicoding.com sedang down pada saat itu.
Mengantrikan kembali submission untuk direview dalam 1 jam ke depan. Submission akan otomatis dilepas ke reviewer jika telah 4 jam tidak berhasil (4x percobaan).
ERR_SUBMISSION_INFO_FAILED_TO_GETError yang dibangkitkan ketika worker gagal mendapatkan artifact submission dari dicoding.com
ERR_SUBMISSION_EXTRACT_FAILEDError yang dibangkitkan ketika worker gagal mengekstrak berkas submission
  1. Proses unduh submission tidak sempurna sehingga berkas submission corrupt.
  2. Berkas submission memang tidak bisa diekstraksi (tidak standar).
ERR_REPORT_JSON_IS_NOT_EXISTSError yang dibangkitkan ketika worker tidak menemukan berkas report.json di folder submission siswa setelah shell scripts selesai dieksekusi.
  1. autograder tidak menghasilkan berkas report.json.
  2. autograder berjalan melebihi timeout (10 menit).
Menyerahkan submission untuk di-review oleh reviewer karena mau diulang berapa kali pun hasilnya tetap sama.
ERR_INVALID_REPORT_JSONError yang dibangkitkan ketika berkas report.json tidak sesuai dengan spesifikasi yang dibutuhkan.autograder menghasilkan berkas report.json, tetapi properti dan nilainya tidak standar.
ERR_SUBMISSION_REPORT_FAILED_TO_SENTError yang dibangkitkan ketika worker gagal mengirimkan hasil review ke dicoding.com
  1. Koneksi instance worker sedang bermasalah
  2. dicoding.com sedang down pada saat itu.
Mengantrikan kembali submission untuk direview dalam 1 jam ke depan. Submission akan otomatis dilepas ke reviewer jika telah 4 jam tidak berhasil (4x percobaan).

Ketika worker melepaskan submission yang bermasalah ke reviewer akan ada notifikasi yang dikirim melalui Teams agar submission bisa di-takeover dengan cepat.

release-notification