searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

记一次简单的python默认数据类型引发的spdk decode bug

2024-07-16 09:32:18
8
0

今天写一个接口的时候一直报错decode 参数错误:

通过加日志追踪到出问题的代码:

这是个函数指针,找到对应的函数进去看到:

 

打印出val->type的值为32,SPDK_JSON_VAL_NUMBER的值是16,SPDK_JSON_VAL_STRING的值才是32,也就是这个传入的val是string类型,不是想要的int number类型,再继续追踪:

可以看到rpc_create顶层函数传入的size值就是string类型,这就奇怪了,明明命令行输入的值是数字呀,那就只能再去python脚本看看了,

和其他接口对比后,再去查看了python的argparse模块的命令行接口发现不指定参数类型默认是字符串类型,因此需要给数字类型的参数指定类型,修改后如下:

问题解决。

0条评论
0 / 1000
13文章数
1粉丝数
13 文章 | 1 粉丝
原创

记一次简单的python默认数据类型引发的spdk decode bug

2024-07-16 09:32:18
8
0

今天写一个接口的时候一直报错decode 参数错误:

通过加日志追踪到出问题的代码:

这是个函数指针,找到对应的函数进去看到:

 

打印出val->type的值为32,SPDK_JSON_VAL_NUMBER的值是16,SPDK_JSON_VAL_STRING的值才是32,也就是这个传入的val是string类型,不是想要的int number类型,再继续追踪:

可以看到rpc_create顶层函数传入的size值就是string类型,这就奇怪了,明明命令行输入的值是数字呀,那就只能再去python脚本看看了,

和其他接口对比后,再去查看了python的argparse模块的命令行接口发现不指定参数类型默认是字符串类型,因此需要给数字类型的参数指定类型,修改后如下:

问题解决。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0