Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
cb73a5c1
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
cb73a5c1
编写于
3月 07, 2023
作者:
S
slzhou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: check udf python plugin load/open failure
上级
6dae414e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
19 addition
and
7 deletion
+19
-7
source/libs/function/src/udfd.c
source/libs/function/src/udfd.c
+19
-7
未找到文件。
source/libs/function/src/udfd.c
浏览文件 @
cb73a5c1
...
...
@@ -345,7 +345,7 @@ int32_t udfdLoadSharedLib(char *libPath, uv_lib_t *pLib, const char *funcName[],
return
0
;
}
void
udfdInitializePythonPlugin
(
SUdfScriptPlugin
*
plugin
)
{
int32_t
udfdInitializePythonPlugin
(
SUdfScriptPlugin
*
plugin
)
{
plugin
->
scriptType
=
TSDB_FUNC_SCRIPT_PYTHON
;
// todo: windows support
sprintf
(
plugin
->
libPath
,
"%s"
,
"libtaospyudf.so"
);
...
...
@@ -360,8 +360,9 @@ void udfdInitializePythonPlugin(SUdfScriptPlugin *plugin) {
int32_t
err
=
udfdLoadSharedLib
(
plugin
->
libPath
,
&
plugin
->
lib
,
funcName
,
funcs
,
UDFD_MAX_PLUGIN_FUNCS
);
if
(
err
!=
0
)
{
fnError
(
"can not load python plugin. lib path %s"
,
plugin
->
libPath
);
return
;
return
err
;
}
if
(
plugin
->
openFunc
)
{
int16_t
lenPythonPath
=
strlen
(
tsUdfdLdLibPath
)
+
strlen
(
tsTempDir
)
+
1
+
1
;
// tsTempDir:tsUdfdLdLibPath
char
*
pythonPath
=
taosMemoryMalloc
(
lenPythonPath
);
...
...
@@ -371,11 +372,17 @@ void udfdInitializePythonPlugin(SUdfScriptPlugin *plugin) {
snprintf
(
pythonPath
,
lenPythonPath
,
"%s:%s"
,
tsTempDir
,
tsUdfdLdLibPath
);
#endif
SScriptUdfEnvItem
items
[]
=
{{
"PYTHONPATH"
,
pythonPath
},
{
"LOGDIR"
,
tsLogDir
}};
plugin
->
openFunc
(
items
,
1
);
err
=
plugin
->
openFunc
(
items
,
1
);
taosMemoryFree
(
pythonPath
);
}
if
(
err
!=
0
)
{
fnError
(
"udf script python plugin open func failed. error: %d"
,
err
);
uv_dlclose
(
&
plugin
->
lib
);
return
err
;
}
plugin
->
libLoaded
=
true
;
return
;
return
0
;
}
void
udfdDeinitCPlugin
(
SUdfScriptPlugin
*
plugin
)
{
...
...
@@ -420,9 +427,14 @@ int32_t udfdInitScriptPlugin(int8_t scriptType) {
case
TSDB_FUNC_SCRIPT_BIN_LIB
:
udfdInitializeCPlugin
(
plugin
);
break
;
case
TSDB_FUNC_SCRIPT_PYTHON
:
udfdInitializePythonPlugin
(
plugin
);
case
TSDB_FUNC_SCRIPT_PYTHON
:
{
int32_t
err
=
udfdInitializePythonPlugin
(
plugin
);
if
(
err
!=
0
)
{
taosMemoryFree
(
plugin
);
return
err
;
}
break
;
}
default:
fnError
(
"udf script type %d not supported"
,
scriptType
);
taosMemoryFree
(
plugin
);
...
...
@@ -518,7 +530,7 @@ int32_t udfdInitUdf(char *udfName, SUdf *udf) {
uv_mutex_lock
(
&
global
.
scriptPluginsMutex
);
SUdfScriptPlugin
*
scriptPlugin
=
global
.
scriptPlugins
[
udf
->
scriptType
];
if
(
scriptPlugin
==
NULL
)
{
if
(
scriptPlugin
==
NULL
||
scriptPlugin
->
libLoaded
==
false
)
{
err
=
udfdInitScriptPlugin
(
udf
->
scriptType
);
if
(
err
!=
0
)
{
uv_mutex_unlock
(
&
global
.
scriptPluginsMutex
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录