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.

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 Error | Penjelasan | Penyebab | Penanganan |
ERR_SUBMISSION_FAILED_TO_DOWNLOAD | Error yang dibangkitkan ketika berkas submission gagal diunduh dari dicoding.com. |
| 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_GET | Error yang dibangkitkan ketika worker gagal mendapatkan artifact submission dari dicoding.com | ||
ERR_SUBMISSION_EXTRACT_FAILED | Error yang dibangkitkan ketika worker gagal mengekstrak berkas submission |
| |
ERR_REPORT_JSON_IS_NOT_EXISTS | Error yang dibangkitkan ketika worker tidak menemukan berkas report.json di folder submission siswa setelah shell scripts selesai dieksekusi. |
| Menyerahkan submission untuk di-review oleh reviewer karena mau diulang berapa kali pun hasilnya tetap sama. |
ERR_INVALID_REPORT_JSON | Error 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_SENT | Error yang dibangkitkan ketika worker gagal mengirimkan hasil review ke dicoding.com |
| 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.
