常见问题处理

  • 问题描述:编译数据库时,提示python模块,“can not be used when making a shared object;recompile with -fPIC”或者 “libpython22.7.a: could not read symbols: Bad value”。

    处理方式

    1. 请检查python版本和环境变量。
    2. 查看是否安装python-devel,或者编译python时,是否启用了—enable-shared。
  • 问题描述:执行gdb或者gstack命令,报错 “gdb: symbol lookup error: gdb: undefined symbol: PyUnicodeUCS4_FromEncodedObject”。

    处理方式:这个问题一般发生在自行编译python2的环境上,Python2在编译安装时可以通过参数 —enable-unicode=ucs2 或 —enable-unicode=ucs4分别指定使用2个字节或者4个字节表示一个unicode字符,python2缺省使用—enable-unicode=ucs2。Python3默认使用4个字节表示一个unicode字符。

    可以在系统中自带的python2下执行:“import sys;print sys.maxunicode”并查看结果,如果结果是65535,说明系统默认的是ucs2;如果结果是1114111,说明用的ucs4编码。

    自行编译python2时,如果系统中内置的python2使用的ucs4,系统中的gdb也会依赖ucs4。因此自行编译的python2在configure时,需要添加—enable-unicode=ucs4。

  • 问题描述:在kmeans等算法里,报错”Data table does not exist”。

    处理方式:算法所在的schema和输入表不在一个schema下,可以设置SET behavior_compat_options = ‘bind_procedure_searchpath’;解决这个问题。

  • 问题描述:python启动报错,或者import报错。

    处理方式:

    1. 检查环境变量比如PYTHONHOME,PYTHONPATH。
    2. 安装必备依赖包。
  • 问题描述:Regression等算法报错“ERROR: spiexceptions.UndefinedFunction: operator does not exist: json ->> unknown.”

    处理方式:数据库不支持json导出功能,不支持此功能。

  • 问题描述:MADlib中进行编译时,如果使用make -sj,会遇到boost相关的报错。例如,“fatal error: boost/mpl/if.hpp: No such file or directory”

    处理方式:非问题,MADlib编译时,会先解压这几个安装包。如果是并行编译,会出现一边编译,一边解压的情况。如果编译用到这个文件,另一边还没有解压完成,会出现这类报错。再次执行make -sj即可解决。

  • 问题描述:执行./madpack 安装时,遇到报错:“ERROR : Failed to connect to database”。

    处理方式:需要排查数据库是否启动,目标库是否存在,数据库端口是否被占用,安装用户是否具有管理员权限。另外执行madpack安装时,IP请使用127.0.0.1,不要使用localhost,否则也会出现连接失败的情况。