Snowflake SDK连接报错:TypeError: Cannot read properties of undefined (reading 'set')
问题:Node.js连接Snowflake时出现OCSP缓存未定义错误
环境信息
- Node.js版本:v17.9.0
- 部署环境:Linux(Kubernetes)
- 依赖版本:
- snowflake-promise:2.2.0
- snowflake-sdk:1.6.14
错误日志
/app/node_modules/snowflake-sdk/lib/agent/ocsp_response_cache.js:157 cache.set(certId, response); ^ TypeError: Cannot read properties of undefined (reading 'set') at OcspResponseCache.set (/app/node_modules/snowflake-sdk/lib/agent/ocsp_response_cache.js:157:11) at /app/node_modules/snowflake-sdk/lib/agent/socket_util.js:232:32 at done (/app/node_modules/snowflake-sdk/lib/agent/check.js:142:5) at ocspResponseVerify (/app/node_modules/snowflake-sdk/lib/agent/check.js:201:7) at done (/app/node_modules/snowflake-sdk/lib/agent/check.js:71:7) at IncomingMessage.<anonymous> (/app/node_modules/snowflake-sdk/lib/agent/check.js:99:7) at IncomingMessage.emit (node:events:539:35) at IncomingMessage.emit (node:domain:475:12) at endReadableNT (node:internal/streams/readable:1345:12) at processTicksAndRejections (node:internal/process/task_queues:83:21)
解决方案
- 升级snowflake-sdk至1.7.0及以上版本:Node.js 17引入了SSL相关变更,旧版本sdk(1.6.14)存在兼容性问题,升级后可修复OCSP缓存初始化失败的问题。同时同步升级snowflake-promise至对应兼容版本(如3.x系列)。
- 指定OCSP缓存目录并确保权限:在Snowflake连接配置中添加
ocspCacheDir参数,指定一个容器有权限读写的目录(如/tmp/ocsp_cache),同时在Kubernetes部署配置中确保该目录的读写权限。 - 临时禁用OCSP检查(仅测试环境使用):在连接配置中添加
disableOCSP: true参数,跳过OCSP验证,但此方法会降低安全性,不建议生产环境使用。 - 降级Node.js至LTS版本:Node.js 17为非LTS版本,兼容性较差,降级到v16.x等LTS版本可避免版本兼容问题。
内容的提问来源于stack exchange,提问作者Pavan Kumar
相关产品推荐
相关产品推荐

