หลายเดือนก่อนเจอปัญหาที่แก้ไม่ตกว่าทำไมอยู่ๆ ก็มี log ที่ API Server ที่เขียนด้วย Kotlin บอกว่าดึงข้อมูลไม่ได้ออกมาเต็มไปหมด
พอเช็คในรายละเอียดของ log พบว่าทุกอันชี้ไปที่สาเหตุเดียวกันหมดคือ MonoCoroutine was canceled
แต่ก็ไม่ได้มีรายละเอียดอะไรมากไปกว่านั้น
หลังจากหามาอยู่สองเดือนก็เดาว่ามันน่าจะเกิดจากการที่อีกฝั่งตัดการเชื่อมต่อไปโดยไม่บอก (Connection reset by peer) เลยไปตามหาโค้ดที่ใช้ทดสอบมาเป็น Java ประมาณนี้
package net.onedd;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Application {
public static void main(String[] args) throws Exception {
System.out.println("starting");
Socket s = new Socket("localhost", 5000);
PrintWriter out = new PrintWriter(s.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
out.println("GET /echo?m=a HTTP/1.1");
out.println("");
}
}