r34 vs r35
......
112112
113113
하지만 사용자에게 추가 권한을 부여한 결과, 이제 쿼리 응답에는 r0 스키마의 모든 메타데이터가 포함되게 되었고, 그로 인해 응답 행 수가 사실상 두 배 이상 늘어나 최종 파일 출력에서 feature 수에도 영향을 미쳤습니다.
114114
115
{{{+5 메모리 사전 할당}}}
116
117
프록시 서비스에서 실행되는 각 모듈에는 메모리 사용을 무한대로 늘어나지 않도록 제한하고, 성능 최적화를 위해 메모리를 사전 할당(preallocation) 하는 여러 제한이 설정되어 있습니다.
118
119
이번 경우, Bot Management 시스템에는 런타임에 사용할 수 있는 머신러닝 feature 수에 제한이 있었는데, 현재 이 제한은 200으로 설정되어 있으며, 실제 사용 중인 feature 수는 약 60개였습니다. 이 제한은 성능을 위해 feature에 대해 메모리를 미리 할당하기 때문에 존재합니다.
120
121
그런데 잘못된 파일에 200개 이상의 feature가 포함되어 서버에 배포되면서, 이 제한을 초과하게 되었고, 시스템이 panic 상태에 빠지게 되었습니다. 이 확인을 수행하고 처리되지 않은 오류의 원인이 된 FL2 Rust 코드가 아래에 표시됩니다.
122
123
[[파일:클플 오류8.png]]
124
125
이로 인해 다음과 같은 panic이 발생했고, 결국 HTTP 5xx 오류로 이어졌습니다.
126
127
{{{thread fl2_worker_thread panicked: called Result::unwrap() on an Err value}}}
128
129
{{{+5 사건 발생 동안의 기타 영향}}}
130
131
사건 발생 동안 핵심 프록시에 의존하는 다른 시스템들도 영향을 받았습니다. 여기에는 Workers KV와 Cloudflare Access가 포함됩니다. 팀은 13:04에 Workers KV를 패치하여 핵심 프록시를 우회하도록 했고, 이후 이들 시스템과 Workers KV에 의존하는 모든 하위 시스템(예: Access)에서 오류율이 줄어들었습니다.
132
133
또한 Cloudflare Dashboard도 영향을 받았는데, 내부적으로 Workers KV를 사용하고 로그인 과정에 Cloudflare Turnstile이 포함되어 있었기 때문입니다.
134
135
이번 장애로 Turnstile도 영향을 받아, 활성 대시보드 세션이 없는 고객은 로그인할 수 없었습니다. 이로 인해 11:30 ~ 13:10과 14:30 ~ 15:30 두 시간대에 가용성이 감소했습니다.
136
137
[[파일:클플 오류9.png]]
138
139
첫 번째 기간인 11:30~13:10은 Workers KV에 대한 영향 때문이었으며, 일부 제어 플레인 및 대시보드 기능이 이에 의존하고 있었습니다. 13:10에 Workers KV가 핵심 프록시 시스템을 우회하도록 설정되면서 복구되었습니다.
140
141
대시보드에 대한 두 번째 영향 기간은 feature configuration 데이터를 복원한 후 발생했습니다. 로그인 시도의 누적(backlog)이 대시보드를 압도하기 시작했고, 이 누적과 재시도 시도가 결합되면서 지연(latency)이 증가하고 대시보드 가용성이 감소했습니다. 제어 플레인 동시성(concurrency)을 확장하여 약 15:30에 가용성이 회복되었습니다.
115142
== 에러 상황 ==
116143
{{{#!wiki style="border: 1px solid gray; border-top: 5px solid crimson; padding: 12px"
117144
'''{{{+1 Cloudflare Global Network experiencing issues}}}'''
......