Mac M1 칩 Redis의 make 테스트에서 테스트에서 큰 값을 가진 trim on SET의 오류 보고에 대한 해결 방법에 대해

오늘 Redis 설치 패키지의 압축을 풀고 make test를 이용하여 컴파일과 테스트를 해보니 오류가 발생하는 것을 발견했습니다.

 오류 메시지를 빠르게 복사하고 baidu 및 CSDN에서 답변을 검색하여 내 것과 같은 이상한 오류 메시지가 없는지 확인하십시오. 과학적으로 인터넷 서핑을 시작하기 전에 오류 메시지에 따라 직접 해결을 시도할 수 밖에 없습니다.

string.tcl 파일을 열어 오류를 유발하는 콘텐츠를 찾습니다.

test {trim on SET with big value} {
            # set a big value to trigger increasing the query buf
            r set key [string repeat A 100000] 
            # set a smaller value but > PROTO_MBULK_BIG_ARG (32*1024) Redis will try to save the query buf itself on the DB.
            r set key [string repeat A 33000]
            # asset the value was trimmed
            assert {[r memory usage key] < 42000}; # 42K to count for Jemalloc's additional memory overhead. 
    }

여기에서 r set key [string repeat A 33000]에 의해 할당된 byte size는 분명히 42000보다 작은 것을 알 수 있는데 왜 에러가 나는 것일까?

근원을 추적하다, 과학 인터넷

깃허브에 검색하러 와서 레디스 웨어하우스를 찾아 이슈에 입력하고 직접 질문을 했더니 2시간도 안 돼 개발자로부터 답장이 왔다.

 이는 malloc(33000)을 실행할 때 Mac M1이 할당한 65536바이트가 42000바이트보다 커서 make test가 오류를 보고하기 때문입니다. string.tcl 파일에서 관련 테스트를 찾고 조건부 판단문을 추가하기만 하면 테스트를 건너뛸 수 있습니다.

 마치다

사장님께서 알려주신 계획대로 수정 후 make test 성공. 이 기사가 중국어 자료의 이러한 공백을 메우는 데 도움이 되기를 바랍니다.

문제 Q&A 세부 정보

추천

출처blog.csdn.net/sun_kingngfyncfh/article/details/130744756