OSS线上业务突发回调失败

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000 次 1年
对象存储OSS,敏感数据保护2.0 200GB 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

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
目录
相关文章
|
存储 域名解析 安全
Nest 实现OSS 服务端签名直传并设置上传回调
Nest 实现OSS 服务端签名直传并设置上传回调
873 0
|
算法 应用服务中间件 对象存储
OSS上传回调支持自定义header以及v2版本签名
上传回调(callback)是OSS的一个重要功能,可以应用在客户端与服务器端数据同步等一些场景。上传回调功能支持在回调的body中传入信息,但是在一些场景下,用户希望能够在回调给应用服务器的请求header中传入自定义的header,用于满足服务器端的一些特殊需求。
4556 0
|
对象存储
OSS- OSS brower 登陆失败
案例: 登陆失败的几个原因 非公共云设置 1)endpoint 必须自定义 如果不自定义的话,类似金融云、政务云、专有云 等特殊环境登陆就会出现异常,比如 https 异常、或者 endpoint 和 bucket 设置的不一致; 2)当预设 OSS 路径为空时会先调 list bucket 接口做权限验证,如果客户登陆的不是主账号,是子账号的话,最好赋予 OSS 管理权限;如果没有权限的话就会出现登陆失败权限问题。
2647 0
|
移动开发 Java 应用服务中间件
OSS PostObject未发生回调的问题排查
今天排查一个问题,走了一些弯路,总结一下,希望可以为后来者提供参考建议。 ##问题: XX反馈,使用OSS PostObject的callback没有发生回调。但是通过putobject用同样的callback是有回调发生的。客户怀疑我们的PostObject有问题。 ##排查: OSS回调流程为 客户端->OSS->应用服务器->客户端 ![image.png](http://at
4227 0
|
1月前
|
存储 运维 安全
阿里云国际站OSS与自建存储的区别
阿里云国际站对象存储OSS提供海量、安全、低成本的云存储解决方案。相比自建存储,OSS具备易用性强、稳定性高、安全性好、成本更低等优势,支持无限扩展、自动冗余、多层防护及丰富增值服务,助力企业高效管理数据。
|
1月前
|
存储 域名解析 前端开发
震惊!不买服务器,还可以用阿里云国际站 OSS 轻松搭建静态网站
在数字化时代,利用阿里云国际站OSS可低成本搭建静态网站。本文详解OSS优势及步骤:创建Bucket、上传文件、配置首页与404页面、绑定域名等,助你快速上线个人或小型业务网站,操作简单,成本低廉,适合初学者与中小企业。
|
1月前
|
存储 安全 API
某网盘不好用?有没有类似某网盘的存储软件?阿里云国际站 OSS:云存储的全能助手,你 get 了吗?
在数据爆炸时代,阿里云国际站OSS提供海量、安全、低成本的云存储服务,支持多种数据类型存储与灵活访问,助力企业与个人高效管理数据,降低存储成本。开通简便,操作友好,是理想的云端数据解决方案。
|
7月前
|
SQL 分布式计算 Serverless
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
154 0
|
机器学习/深度学习 人工智能 专有云
人工智能平台PAI使用问题之怎么将DLC的数据写入到另一个阿里云主账号的OSS中
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。