Apache Kafka · Kafka Connect · open

PR #22535 — KAFKA-20666: Offset backing stores honor ByteBuffer remaining bytes

Kafka Connect의 Offset backing store (Memory / File / Kafka 기반)가 BYTES key/value를 직렬화·역직렬화할 때 ByteBuffer.array()를 그대로 사용해 슬라이스 버퍼의 자기 영역 밖 데이터를 함께 저장하던 패턴을 position()/remaining() 기반으로 수정.

증상

Offset backing store가 BYTES key/value를 다룰 때 직접 할당된 버퍼에서는 정상 동작하지만, slice된 버퍼를 받는 경로(예: 다른 컴포넌트에서 잘라낸 view를 그대로 넘긴 경우)에서는 자기 영역 밖 바이트까지 storage에 들어가 잘못된 키나 값이 영속됐습니다. 같은 커넥터가 재시작 후 자기가 쓴 offset을 다시 읽어도 mismatch가 발생할 수 있는 경로.

수정

BYTES를 다루는 read/write 경로를 position()/remaining() 기반으로 통일. KAFKA-20656/20657/20658과 같은 계열의 패치.

관련 PR (시리즈)