今天写一个接口的时候一直报错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模块的命令行接口发现不指定参数类型默认是字符串类型,因此需要给数字类型的参数指定类型,修改后如下:
问题解决。