惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
罗磊的独立博客
博客园 - 聂微东
T
The Blog of Author Tim Ferriss
博客园 - 司徒正美
Stack Overflow Blog
Stack Overflow Blog
F
Fortinet All Blogs
A
About on SuperTechFans
腾讯CDC
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed
IT之家
IT之家
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
宝玉的分享
宝玉的分享
C
Check Point Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Vercel News
Vercel News
爱范儿
爱范儿
Microsoft Security Blog
Microsoft Security Blog
月光博客
月光博客
T
Tailwind CSS Blog
The Cloudflare Blog
Hugging Face - Blog
Hugging Face - Blog

博客园 - 寒魔影

Linux waitpid函数分析 不同进程内相同的变量内存地址是相同的 Linux 内存虚拟地址介绍 Sword B树学习笔记二 Sword B树学习笔记一 defined but not used警告屏蔽 apisix流量高峰期服务卡住问题 服务卡死现象分析实录 服务资源加载延迟异常增加 Linux 常用命令四 TCP全连接队列 调用writev收到信号SIGPIPE问题分析记录 epoll_wait监听事件延迟问题记录 C++ new关键字运算符重载 Missing separate debuginfos类型崩溃分析 宏定义导致数据异常问题 服务压测偶现卡住问题分析 C语言 数据类型 Linux 终端光标控制函数
writev发送数据失败
寒魔影 · 2024-10-19 · via 博客园 - 寒魔影

最近项目上遇到一个问题,curl请求服务器阻塞了。

我初步怀疑是服务器没有下发数据,通过GDB调试,发现调试到writev函数时就是跳过,怀疑是writev函数出现问题。

1.我检查了一下自己的套接字是否已经被破坏,经过判断没有;

2.怀疑数据在TCP缓冲区里,特地设置TCP_NODELAY,没有产生效果;

3.抓包分析报文数据,看看能否找到有用信息,结果发现实际上服务器数据早就发送了,是客户端阻塞了

结论:HTTP请求有报文体时,必须设置Content-Length,否则客户端会一直阻塞。

备注:writev函数在GDB调试时略过时正常现象。