OSS线上业务突发回调失败

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: CallbackFailed回调失败,通常需要从网络层面或者回调服务本身查找原因,如果本地模拟无法复现则可以考虑使用一些公网的探测工具进行探测,并抓包分析。

问题描述

客户反馈线上业务大量回调失败,具体报错如下。但客户反馈本地去测试向回调服务发起请求,回调服务是可以正常接收请求的,但回调服务器上找不到OSS发起的回调日志。

com.aliyun.oss.OSSException:Error status :502

[ErrorCode]: CallbackFailed

[RequestId]: 6131E16DA8654B3338371A32

[HostId]: xxx.oss-cn-shenzhen.aliyuncs.com

问题排查

1. 初步分析

根据报错来看,502错误一种可能是回调服务直接响应了502,另一种可能是OSS向回调服务地址发起回调时候直接连不上或者会阻断,导致没有走到七层。初步判断是OSS到回调服务器之间的网络问题。

2. 基调探测

阿里网站运维监测平台发起基调探测,探测客户的回调地址,发起有很多地区都存在连不上的请求,请求被reset (connection reset by peer)。从探测结果来看,也怀疑是回调服务器的问题。

3. 抓包确认

本地模拟测试发一个post请求到客户回调服务确实是正常的,没有复现到问题。因此尝试到基调平台上抓包,同时由于阿里网站运维检平台目前暂时不支持抓包,因此先考虑用第三方基调"听云"平台去探测抓包。因为OSS用的深圳区域,因此直接在听云上用深圳三大运营商去发起探测,发现也是存在部分请求被重置(reset)的情况。

抓包分析发现有以下几个点
(1)21、25、26三个包是三次握手包,25号是回调服务器的握手sync包,通告的win窗口居然是0。
(2)三次握手成功以后,28号包直接发了reset包,从报文看这是服务端发了reset包。
(3)从TTL看,服务端握手sync包(25号)包 的TTL是119,服务端reset包(28号)包的TTL也是119,说明这种现象不太可能是劫持行为。因为如果不是服务端发的reset包,而是被网络链路的其他节点劫持以后发的reset包,那么TTL不会刚好也是119。基于以上,基本上可以确认是回调服务器的原因造成的。

问题原因

经过确认,原因是客户自己回调服务器的EIP有自带DDoS的防护功能,防护阈值是固定的,比如200Mb(入带宽)。在客户业务量上涨后,客户扩容了带宽,但DDoS 访问阈值没有跟着调整,导致业务量上涨后触发了DDoS防护机制,开始流量清洗。这次是Sync 访问的清洗,服务端通过回Sync+Ack+Win=0来阻断这次应用链接。

适用产品

对象存储OSS

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
存储 域名解析 安全
Nest 实现OSS 服务端签名直传并设置上传回调
Nest 实现OSS 服务端签名直传并设置上传回调
555 0
|
算法 应用服务中间件 对象存储
OSS上传回调支持自定义header以及v2版本签名
上传回调(callback)是OSS的一个重要功能,可以应用在客户端与服务器端数据同步等一些场景。上传回调功能支持在回调的body中传入信息,但是在一些场景下,用户希望能够在回调给应用服务器的请求header中传入自定义的header,用于满足服务器端的一些特殊需求。
4320 0
|
对象存储
OSS- OSS brower 登陆失败
案例: 登陆失败的几个原因 非公共云设置 1)endpoint 必须自定义 如果不自定义的话,类似金融云、政务云、专有云 等特殊环境登陆就会出现异常,比如 https 异常、或者 endpoint 和 bucket 设置的不一致; 2)当预设 OSS 路径为空时会先调 list bucket 接口做权限验证,如果客户登陆的不是主账号,是子账号的话,最好赋予 OSS 管理权限;如果没有权限的话就会出现登陆失败权限问题。
2455 0
|
移动开发 Java 应用服务中间件
OSS PostObject未发生回调的问题排查
今天排查一个问题,走了一些弯路,总结一下,希望可以为后来者提供参考建议。 ##问题: XX反馈,使用OSS PostObject的callback没有发生回调。但是通过putobject用同样的callback是有回调发生的。客户怀疑我们的PostObject有问题。 ##排查: OSS回调流程为 客户端->OSS->应用服务器->客户端 ![image.png](http://at
4130 0
|
3月前
|
机器学习/深度学习 人工智能 专有云
人工智能平台PAI使用问题之怎么将DLC的数据写入到另一个阿里云主账号的OSS中
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
2月前
|
存储 机器学习/深度学习 弹性计算
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
|
3月前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
存储 运维 安全
阿里云OSS的优势
【7月更文挑战第19天】阿里云OSS的优势
122 2
|
3月前
|
存储 API 开发工具
阿里云OSS
【7月更文挑战第19天】阿里云OSS
120 1

热门文章

最新文章

下一篇
无影云桌面