我是通过golang调用c库,版本是 1.12.5,主要使用upsert接口,并发写入,高并发时达到上千,但发现运行一段时间后,就会core掉,信息如附件1.png所示,
追踪代码至附件2.png所示。
推测是 gethostbyname 返回结果直接调用 h_addr_list[0] 导致的错误,按理说返回值不是NULL,那么 h_addr_list有可能是NULL 吗?
目前(v2.8)该问题已在内部修复,linux下应该用gethostbyname_r,带"_r"的表示可重入。
1.12.5以后的版本已修复该问题。如果社区的用户需要,可自己下载sdb源码,编译C驱动(只有C驱动存在该问题),编译方式见github(https://github.com/SequoiaDB)。