现象
客户封装了一个包,提供python接口用于读取netapp数据;
同事说遇到奇怪的问题:本地开发时,一切正常;上线测试后,诡异报错:
SystemError: NULL result without error in PyObject_Call
初步排查
报错没见过,首先是google扫盲一下,主要说法有两种:
- gevent问题、并发问题
这块是我写的,但恰巧在报错模块里没有用到,不搭架; - gcc问题
有可能,毕竟这个包是客户自己封的
以上只是猜测,下面分步debug;然后定位到了报错代码:
# 包名忽略
from xxxx import xxxx
导入报错。
故障分析
这里提一下背景;
线上应用跑在docker里,docker中有两个python,一个普通的、一个定制的,应用使用的是后者。
因此我猜测是否是编译器的问题;
于是分别测试了一下导入:
# docker自带python
➜ /usr/bin/pytho

当使用客户封装的Python包读取NetApp数据时,出现SystemError异常。初步排查包括gevent和并发问题,但未找到直接关联。通过逐步调试,发现是由于包中遗留的pyc文件导致的问题,删除这些文件后恢复正常。
最低0.47元/天 解锁文章
2891

被折叠的 条评论
为什么被折叠?



