移动文件时返回的结果和预期的不一致
ramwin opened this issue · 6 comments
ramwin commented
我使用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操作成功,
ret == {}
- 线程2操作失败,
ret != {}
user-avatar-2586-key1
存在数据,user-avatar-2586-key2
不存在数据
实际上操作结果是:
- 线程1操作成功,
ret == {}
- 线程2操作也成功,
ret == {}
user-avatar-2586-key1
不存在数据,user-avatar-2586-key2
存在数据
请问这个有没有可能修复一下。
forrest-mao commented
内部issue TS-997
yangjunren commented
您好
这边使用多线程和多进程 方式 测试都未能复现您反馈的上述问题,您那边方便提供下 复现上述问题的多线程代码 和 两次请求的 req_id 信息么?
ramwin commented
您好
这边使用多线程和多进程 方式 测试都未能复现您反馈的上述问题,您那边方便提供下 复现上述问题的多线程代码 和 两次请求的 req_id 信息么?
issue里有
yangjunren commented
这边按照您描述的方式 多次测试都没有复现,多次测试的返回结果都是这种预期的:
线程1操作成功,ret == {}
线程2操作失败, ret != {}
user-avatar-2586-key1存在数据, user-avatar-2586-key2不存在数据
能麻烦您提供下您出现问题的代码和复现时的req_id信息吗?非常感谢
ramwin commented
这个不行了, 我这边已经换工作了, 没有测试环境账号了. 代码也拿不到了
yangjunren commented
好的,如果您这边还能复现上述问题,可以工单反馈我们来为您跟进处理:https://support.qiniu.com/tickets/new