임태현, software catastrophe

30
Software Catastrophe IO Studio 임임임

Upload: -

Post on 24-Jan-2017

56 views

Category:

Technology


0 download

TRANSCRIPT

Software CatastropheIO Studio 임태현

ca·tas·trophe   

명사1. 참사 , 재앙

소프트웨어 재앙영화 속의 이야기 ?

실제 사례를 통해 문제의 심각성과그 책임을 공감

Mars Climate Orbiter

Mars Climate Orbiter화성의 기상관측을 목표1998 년 12 월 발사1999 년 9 월 화성궤도 진입몇 분 후 통신 두절

Mars Climate Orbiter로키드 마틴사의 고도 측량 유닛이 문제중력을 lbF 로 계산다른 모듈은 kg⋅m/s2 로 계산 예상보다 더 작은 중력 값을 측정궤도 유지를 위해 추진력 강화낮은 궤도 진입 후 대기 마찰로 소멸

Ariane 5 flight 501

Ariane 5 flight 501

1996 년 6 월 아리안 5 로켓 , 발사 직후 폭발

Ariane 5 flight 501• 아리안 4 의 관성제어 시스템을 사용• 이전 모듈은 부동소수를 16bit 로 처리• 다른 장치들은 부동소수를 64bit 로 처리• Overflow Exception 이 발생해서 과도한 궤도 수정이 폭발의 원인

AT&T Long Distance Network Crash

소프트웨어 업그레이드메시지 처리 루틴 성능 향상자체 테스트를 통과전체 114 개 스위치에 배포Memory overwrite 오류스위치 연쇄 리부팅

1 while (ring receive buffer not empty and side buffer not empty) DO

2 Initialize pointer to first message in side buffer or ring receive buffer

3 get copy of buffer

4 switch (message)

5 case (incoming_message):

6 if (sending switch is out of service) DO

7 if (ring write buffer is empty) DO

8 send "in service" to status map

9 else

10 break

END IF

11 process incoming message, set up pointers to optional parameters

12 break END SWITCH

13 do optional parameter work

East Coast blackout

East Coast blackout2003 년 8 월 미국 북동부 정전장소에 따라 이틀 동안 정전이 지속브라질 정전사태에 이은 대규모 정전

East Coast blackoutFirstEnergy 컨트롤 소프트웨어 버그가 원인 !

송전선이 나무와 접촉해당라인 전원 공급 중단전력 이상감지가 안됨전력 공급 소프트웨어 레이스 컨디션 발생과부하로 전력망 전체가 정지

Therac-25

Therac-251985 년 캐나다의 AECL 에서 개발표피치료와 내부종양제거의 두가지 방사선 치료기기를 하나에 합침공간과 비용을 혁신적으로 감소

Therac-25

강한 방사선 모드에서는 턴테이블이라는 장치로 제어소트프웨어 문제로 강한 방사선 시전상태에서 턴테이블 오동작6건의 사고가 발생해 3명이 사망

Therac-25Thread 1 : // 턴테이블 준비 Thread. 주기적으로 수행    if ( system ready )        in_progress = 0    else        in_progress ++

Thread 2 : // X-ray 빔 제어 Thread. 주기적으로 수행 .    if ( start key pressed AND in_progress == 0 )        start radiation 

Knight Capital2012 stock trading disruption

Knight Capital트레이딩 알고리즘을 사용해서 주식거래2012 년 8 월 45분만에 5 천억원 손해그 해 여름 , 경쟁업체와 합병

Knight Capital8 대의 서버를 사용구매 알고리즘을 업그레이드해서 배포7 대에만 배포 , 한대는 기존 모듈 탑재새로운 모듈 활성화 플래그를 기존 환경변수 재활용환경 변수에 TRUE 값을 넣자 , 3 년전에 폐기된 모듈이 8번째 서버에서 활성화45 분동안 비상식적인 가격에 매매를 시도

시베리아 가스관 폭발

시베리아 가스관 폭발1982 년 6 월 30 일 시베리아 천연 가스관 폭발핵폭발로 오인될 정도구소련의 천연가스 수출에 타격이후 계속된 문제로 경제악화구소련의 개방개혁 원인제공

시베리아 가스관 폭발구소련 , 캐나다 소프트웨어 회사에 잠입CIA 가 고의로 오류 소프트웨어 작성소련에서 해당 소프트웨어 탈취어느날 갑자기 펌프가 오작동해 파이프에 압력을 가함3 킬로톤의 폭발 발생( 히로시마 핵폰탄 : 15 킬로톤 )

ACM Ethics• 1. PUBLIC - Software engineers shall act consistently with the public interest.• 2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in the best in-

terests of their client and employer consistent with the public interest.• 3. PRODUCT - Software engineers shall ensure that their products and related modifications

meet the highest professional standards possible.• 4. JUDGMENT - Software engineers shall maintain integrity and independence in their pro-

fessional judgment.• 5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and pro-

mote an ethical approach to the management of software development and maintenance.• 6. PROFESSION - Software engineers shall advance the integrity and reputation of the pro-

fession consistent with the public interest.• 7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.• 8. SELF - Software engineers shall participate in lifelong learning regarding the practice of

their profession and shall promote an ethical approach to the practice of the profession.

Steam 파일 삭제

Steam 파일 삭제

STEAMROOT="$(cd "${0%/*}" && echo $PWD)"

# Scary!rm -rf "$STEAMROOT/"*

스팀 업그레이드중에 파일 전체 삭제 문제 발생

Q & A