关于解决Mac M1芯片 Redis 的 make test 中 trim on SET with big value in tests报错的方案

今天在解压完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]分配的字节大小明显是小于42000,但是为什么会发生报错呢?

追根溯源,科学上网

来到GitHub上搜索找到Redis仓库进入到Issues里面,直接进行提问,不到两个小时,得到了开发者的回复。

 是因为Mac M1在执行malloc(33000)时分配了的65536字节大于42000字节,所以make test会有报错。只需要在string.tcl文件中找到相关测试并添加条件判断语句,跳过对它的测试就行了。

 结束

按照大佬给的方案修改完之后,make test成功。希望本篇文章可以帮助到大家,在中文语言资料中填补上这一空白。

Issue问答详情

  • 23
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值