qiniu/python-sdk

移动文件时返回的结果和预期的不一致

ramwin opened this issue · 6 comments

我使用2个线程(web上2个请求), 同时移动一个文件, 线程1先执行,线程2后执行,两者相差200ms到300ms)
线程1:

ret, info = bucket_manager.move(bucketname, 'tmp-2586-avatar', bucketname, 'user-avatar-2586-key1')
print(ret)  # {}
print(info)  # exception:None, status_code:200, _ResponseInfo__response:, text_body:, req_id:_gMAAMtDdOyPArgV, _gMAAMtDdOyPArgV, x_log:-

线程2:

ret, info = bucket_manager.move(bucketname, 'tmp-2586-avatar', bucketname, 'user-avatar-2586-key2')
print(ret)  # {}
print(info)  # exception:None, status_code:200, _ResponseInfo__response:, text_body:, req_id:fwsAACs_BODHArgV, fwsAACs_BODHArgV, x_log:-

2个线程都同时成功了。但是最后只有线程2才成功了。我期待的结果是:

  1. 线程1操作成功,ret == {}
  2. 线程2操作失败, ret != {}
  3. user-avatar-2586-key1存在数据, user-avatar-2586-key2不存在数据

实际上操作结果是:

  1. 线程1操作成功,ret == {}
  2. 线程2操作也成功, ret == {}
  3. user-avatar-2586-key1不存在数据, user-avatar-2586-key2存在数据

请问这个有没有可能修复一下。

内部issue TS-997

您好
这边使用多线程和多进程 方式 测试都未能复现您反馈的上述问题,您那边方便提供下 复现上述问题的多线程代码 和 两次请求的 req_id 信息么?

您好
这边使用多线程和多进程 方式 测试都未能复现您反馈的上述问题,您那边方便提供下 复现上述问题的多线程代码 和 两次请求的 req_id 信息么?

issue里有

这边按照您描述的方式 多次测试都没有复现,多次测试的返回结果都是这种预期的:
线程1操作成功,ret == {}
线程2操作失败, ret != {}
user-avatar-2586-key1存在数据, user-avatar-2586-key2不存在数据

能麻烦您提供下您出现问题的代码和复现时的req_id信息吗?非常感谢

这个不行了, 我这边已经换工作了, 没有测试环境账号了. 代码也拿不到了

好的,如果您这边还能复现上述问题,可以工单反馈我们来为您跟进处理:https://support.qiniu.com/tickets/new