황당한 컴퓨터 버그 - 하이젠버그 (Heisenbug)
졸작 프로젝트를 하는데 한번 이런적이 있었다.
무선으로 데이터가 송수신되는걸 확인해야하는데 적당한 출력장치가 없어서 디버그용으로 RS232를 사용했다.
송신 전에 확인차 RS232로 확인하면 데이터는 잘 날아간다..
그런데 확인을 안하고 그냥 송신하면 송신불가..
전과 다른건 디버그용 데이터 출력 한 줄..
오만 삽질 끝에.. 송신전에 약간의 딜레이가 필요함을 알았다.. 한 10ms정도?
디버그용 데이터 출력이 대충 70~90ms정도 걸렸으니까 딜레이를 만족해서 데이터가 송신된거였음..
멀티코어 멀티스레딩으로 인한 하이젠버그는 아니나..
데이터시트만 잘봐도 해결되는 문제를.. 이래 삽질을 해버리니.. 아직 멀었다.