diff options
Diffstat (limited to 'docs/research/115-apps-that-change.md')
| -rw-r--r-- | docs/research/115-apps-that-change.md | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/docs/research/115-apps-that-change.md b/docs/research/115-apps-that-change.md index a76f9dd..5a5ec1d 100644 --- a/docs/research/115-apps-that-change.md +++ b/docs/research/115-apps-that-change.md @@ -98,8 +98,11 @@ B는 5xx를 하나도 받지 않았다. 바꾸는 일은 파일을 읽는 스레 다시 시작하고, 저장소를 만들 수 없던 앱은 고친 뒤의 SIGHUP에 시작하고, 틀린 줄이 있는 파일은 아무것도 바꾸지 않고, `kill -9` 뒤에는 파일 그대로 시작한다. 혼자 10번, CPU 부하 아래 5번, ASan으로 빌드한 `pure-serve`로 6번 지났다. -이 검사가 처음 구현에서 찾은 것: 보내는 앱이 멈추는 동안 받는 앱의 차례가 그 출구를 놓은 뒤에 읽는 자리(`local_done`), 앱이 -시작하기 전에 다른 앱의 출구가 그 소유자의 락을 쓰는 것(락을 자리와 함께 만든다). +처음 구현의 동시성 결함 둘은 이 검사가 아니라 코드를 읽어 찾았다. 보내는 앱이 멈추는 동안 받는 앱의 차례가 놓인 출구를 읽던 +자리(`local_done`)와, 앱이 시작하기 전에 다른 앱의 출구가 그 소유자의 락을 쓰던 것(락을 자리와 함께 만든다)이다. 그때의 검사는 +보내는 앱을 바꾸지 않아 둘이 있는 채로 세 번 지났다. 고친 뒤 검사를 넓혀(보내는 앱을 바꾸기, 바꾸는 동안 보기를 읽기) 그 길을 +지나게 했고, 위의 10번, 5번, 6번은 고친 코드에서 지난 것이다. 그 자리에서 바꾸는데 새 모듈을 거절하거나 읽지 못하는 길(앱이 +까닭을 남기고 멈춘다)은 검사하지 않았다. ## 판정 |
