REQUEST
REQUEST 로그
로컬 I/O request의 생성, 상태 전이, 재시도, 완료와 제거에 해당하는 로그를 현재 코드 기준으로 정리합니다.
분류 상수:
BSR_LC_REQUEST
이 카테고리에서 확인할 사항
출력 맥락: 로컬 I/O request의 생성, 상태 전이, 재시도, 완료와 제거
우선 점검: request 주소, sector+size, state bit, completion/net queue reference와 재시도 여부
플랫폼 분기: 같은 인덱스가 여러 행이면 Linux/Windows, 호환성 또는 실행 조건에 따른 메시지 변형입니다.
로그 목록
로그 인덱스 | 로그 수준 | 현재 코드 메시지 | 상세 의미 및 영향 | 비고 | 코드 위치 |
|---|---|---|---|---|---|
1 | err |
| max-req-write-cnt 설정이 최소(10000)와 최대(1000000) 기준에 맞지 않습니다. 기본(100000) 으로 설정 됩니다. | bsr 최대 I/O 요청은 resource 설정중 options 섹션에서 max_req_write_cnt 으로 설정 할 수 있습니다. |
|
2 | err |
| 완료 되지 않은 요청에 대해 상태 재설정 시 device 정보를 찾을 수 없어 재요청을 하지 못했습니다. 재요청을 하지 못한 요청은 완료되지 않을 수 있습니다. | 로그에서 device 할당, 해제 시점 확인이 필요합니다. |
|
3 | err |
| 이미 완료 된 요청을 재요청 했을 수 있습니다. | debug 로그 출력 후 요청처리에 대한 분석이 필요합니다. |
|
4 | info |
| 요청을 재시도할때 출력됩니다. |
| |
5 | err |
| 해당하는 요청을 찾지 못했습니다. 피어 노드와 재연결됩니다. |
| |
6 | err |
| 최대 I/O 요청(max-req-write-cnt)를 초과했습니다. 설정에 따라서 재연결 또는 대기가 발생하며 대기 시 I/O 요청이 지연됩니다. | bsr 최대 I/O 요청 초과 후 동작은 options 섹션에서 on-req-write-congestion 으로 설정 할 수 있습니다. |
|
7 | err |
|
| ||
8 | err |
| 요청 제거 시 완료 되지 않은 요청이므로 제거하지 않습니다. 로직 버그로 예상됩니다. |
| |
9 | err |
| 요청 제거 시 interval 비어있습니다. 로직 버그로 예상됩니다. |
| |
10 | info |
| 요청 완료 시 해당 영역이 out of sync면 피어 노드들에게 out of sync을 전송합니다. |
| |
15 | err |
| 로직 버그로 인해 요청을 완료하지 못했습니다. | 로그에 출력 된 request state, completion reference 확인이 필요합니다. |
|
16 | err |
| 로직 버그로 인해 요청을 완료하지 못했습니다. | 로그에 출력 된 request state, completion reference 확인이 필요합니다. |
|
17 | err |
| 로직 버그로 인해 요청을 완료하지 못했습니다. |
| |
18 | err |
| 요청 상태 변경이 정상적이지 않습니다. 로직 버그로 인해 요청을 완료하지 못했습니다. | 로그에 출력 된 state, refcount, should be 등 확인이 필요합니다. |
|
19 | err |
| 로직 버그로 요청 상태를 변경하지 못했습니다. | 로그에 출력 된 변경 상태 확인이 필요합니다. |
|
20 | err |
| 모든 요청이 처리되기 전에 barrier acked를 수신했습니다. 로직 버그로 예상됩니다. |
| |
23 | warn |
| 알수없는 노드 ID의 요청 상태를 얻는데 실패했습니다. 로직 버그로 예상됩니다. |
| |
24 | warn |
| 전송 데이터의 digest가 불일치 합니다. 쓰기 중 상위 계층에 의해 수정된 버퍼 입니다. |
| |
25 | warn |
| 피어 노드에서 지정 시간내에 요청을 완료하지 못했습니다. | 로그에 출력 된 시간들의 확인이 필요합니다. |
|
26 | warn |
| P_BARRIER을 전송하지 않았습니다. thread block 으로 인해 보내지 못했을 수 있습니다. | Protocol A 사용 시 이미 복제 데이터의 ACK를 받았으나 BARRIER ACK를 받지 못했습니다. |
|
27 | warn |
| 피어 노드에서 P_BARRIER 응답을 지정 시간내에 보내지 않았습니다. | 로그에 출력 된 시간 확인이 필요합니다. |
|
28 | warn |
| 로컬 backing device가 disk의 대기 시간을 초과했습니다. diskless 상태가 설정됩니다. |
| |
29 | debug |
|
| ||
30 | debug |
|
| ||
31 | debug |
|
| ||
32 (1/2 변형) | debug |
|
| ||
32 (2/2 변형) | warn |
|
| ||
33 | debug |
|
| ||
35 | debug |
|
| ||
36 | debug |
|
| ||
37 | err |
|
| ||
38 | info |
| 비트맵 작업을 대기 중이지만 신규 bio의 분할 된 bio가 이미 쓰기 요청 중이므로 신규 bio의 쓰기도 요청합니다. | 일부 리눅스(sle12sp2)에서 bio가 분할되어 처리 될 때REQ_NOMERGE에 대한 bio가 독립적으로 처리되지 않아 이를 위해 추가한 로직으로 인해 출력되는 로그 입니다. |
|
39 | warn |
|
|
공통 진단 순서
로그 수준과 최초 발생 시점을 기준으로 오류·경고 이전의 정상 상태를 확인합니다.
메시지의 객체, node/minor, sector/size, state와 오류 코드를 같은 시각의 로그와 연결합니다.
request 주소, sector+size, state bit, completion/net queue reference와 재시도 여부를 대조해 직접 실패 지점과 후속 영향 범위를 구분합니다.
후속 성공·완료·상태 전이 로그가 없거나 같은 인덱스가 반복되면 관련 코드 위치와 플랫폼 분기를 확인합니다.