ans: ssh มันจะเขียนไฟล์ .ssh/known_hosts2
ถ้า ssh หลายๆ process ไปหลายๆ เครื่องเป็นครั้งแรกพร้อมๆ กัน, มันจะเขียนไฟล์ known_hosts ทับกัน จนเจ๊ง มั้ยวะ
veer: โอว
ans: ผมลอง strace ssh version 2.9 ไม่เห็นมัน lock file known_hosts2 เลย.
veer: อ่อ
ans: แต่มัน open append mode
แล้วก็มัน เขียนแต่ละบรรทัด ด้วย write() ในครั้งเดียว
ถ้า write() ในครั้งเดียว ก็เป็น atomic อยู่แล้ว
ans: ก็ไม่เจ๊ง
ans: แต่อาจเกิดการเขียน key ซ้ำกัน พร้อมๆ กัน ทำให้มี บรรทัดซ้ำใน known_hosts ได้ (race condition?)
ans: แต่รู้สึกว่า append mode ใน windows จะไม่ใช่ real append, คือ แค่เปิดไฟล์ปกติแล้วเลื่อน cursor ไปท้ายสุด. ถ้าไม่ใช่ real append ก็ทำให้เกิดการเขียนทับกันได้, ถึงแม้ write() จะเป็น atomic ก็ตาม.
veer: โอว
veer: ผมเอาไปใส่ blog นะครับ
ans: yes