Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
出了问题不要靠猜
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
LI Daobing
September 14, 2013
Programming
4.1k
40
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
出了问题不要靠猜
LI Daobing
September 14, 2013
More Decks by LI Daobing
See All by LI Daobing
How to attack TLS in PQC decade, part I
lidaobing
0
49
HTTP协议相关的若干安全问题
lidaobing
9
1.2k
Debian & Packaging
lidaobing
1
580
Java 质量保障
lidaobing
3
310
OAuth: How and Why?
lidaobing
1
160
从 Struts 迁移到 Spring MVC,以及为什么?
lidaobing
2
670
glusterfs 文件系统
lidaobing
2
210
如何学习 Shell
lidaobing
3
340
Other Decks in Programming
See All in Programming
Agentic UI
manfredsteyer
PRO
0
170
Inside Stream API
skrb
1
730
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
540
AI時代のUIはどこへ行く?その2!
yusukebe
21
7.3k
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
410
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
120
A2UI という光を覗いてみる
satohjohn
1
140
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
350
RTSPクライアントを自作してみた話
simotin13
0
610
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
13k
New "Type" system on PicoRuby
pocke
1
970
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
120
Featured
See All Featured
KATA
mclloyd
PRO
35
15k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
200
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Navigating Weather and Climate Data
rabernat
0
220
Documentation Writing (for coders)
carmenintech
77
5.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
750
The Language of Interfaces
destraynor
162
27k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
180
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
230
Facilitating Awesome Meetings
lara
57
7k
Transcript
ग़ྃ问题ෆཁᯪᘃ LI Daobing <
[email protected]
> ࣣڇӠଘ储 2013-09-14 Saturday, September 14, 13
• ཥಓฌ <
[email protected]
> • Debian Developer • 2004 䇖࢝৮ Debian
• qterm, ibus, scim 软݅แಘ维护ਓ员 • 䇖ݯ爱ऀ • தจ维جඦՊલཧ员 • ࢀ༩维护 iso-codes, translationproject.org • python-lunardate, capistrano-scm-jenkins ࡞ऀ • manpages-zh, douban-ruby, iptux 现维护ਓ员 • զ对䇖ݯత๏ • ࢀ༩Ұ项ɼ贡ݙզత时间ੋҼ为认ಉଞతཧ೦ɼࣕෆੋվଞతཧ೦ • Github: http://github.com/lidaobing https://speakerdeck.com/lidaobing Saturday, September 14, 13
录 • ဓҰ Bug 讲ى • զ౸తཚ • զਪᣑతղႊํҊ Saturday,
September 14, 13
Ұحոత Bug • ᠓盘త্传务 • Windows Լ IE, Chrome 浏览ثԼਖ਼ৗ
• Linux Լ Firefox, Chrome 浏览ثԼਖ਼ৗ • Windows Լత Firefox ෆਖ਼ৗ, ্传ࣦ 败ɻ Saturday, September 14, 13
ԿఆҐBug Saturday, September 14, 13
ԿఆҐBug • टઌ查浏览ثత߇੍ɼ观ੋ൱༗错误(༗) Saturday, September 14, 13
ԿఆҐBug • टઌ查浏览ثత߇੍ɼ观ੋ൱༗错误(༗) • ༻ Wireshark ፊ获请ٻแɼ发现ࣦ败తҊྫ务ฦ ճ412(௨ৗ为200) Saturday, September
14, 13
ԿఆҐBug • टઌ查浏览ثత߇੍ɼ观ੋ൱༗错误(༗) • ༻ Wireshark ፊ获请ٻแɼ发现ࣦ败తҊྫ务ฦ ճ412(௨ৗ为200) • 对ൺ
HTTP Requestɼ发现ࣦ败Ҋྫత HTTP 头༗ “Content-length”ɼࣕଖଞႎԼ为 “Content- Length” Saturday, September 14, 13
ԿఆҐBug • टઌ查浏览ثత߇੍ɼ观ੋ൱༗错误(༗) • ༻ Wireshark ፊ获请ٻแɼ发现ࣦ败తҊྫ务ฦ ճ412(௨ৗ为200) • 对ൺ
HTTP Requestɼ发现ࣦ败Ҋྫత HTTP 头༗ “Content-length”ɼࣕଖଞႎԼ为 “Content- Length” • ༻ telnet 发ૹෆಉత请ٻདྷ验证结论 Saturday, September 14, 13
ԿఆҐBug Saturday, September 14, 13
ԿఆҐBug • 䉯认ݪҼੋ务对 Content-Length త େখࣸහײɼ༩标।ෆූɼྃ这 Bug Saturday, September 14,
13
ԿఆҐBug • 䉯认ݪҼੋ务对 Content-Length త େখࣸහײɼ༩标।ෆූɼྃ这 Bug • ௨务䇖发ਓ员ਚշम䐾 Saturday,
September 14, 13
Bug/ᆀBug Saturday, September 14, 13
Bug/ᆀBug • ೳ࠶现త Bug बੋ Bug Saturday, September 14, 13
Bug/ᆀBug • ೳ࠶现త Bug बੋ Bug • Ռෆೳ࠶现ɼೳ፤౸䇗ৗ栈҃ऀ详细 ࢤతੋBug Saturday,
September 14, 13
Bug/ᆀBug • ೳ࠶现త Bug बੋ Bug • Ռෆೳ࠶现ɼೳ፤౸䇗ৗ栈҃ऀ详细 ࢤతੋBug •
对ဋᆀ Bug, ଞత࠷େ༻处बੋಜଅ㟬补 ॆࢤ Saturday, September 14, 13
㠥ҰحոతBug • ဓެ࢘访问᠓༗12sԆ迟 • ping 㠳应շ • ဓଖଞ᠓络དྷݯ访问༗问题 •
监߇༗问题, ༗٬户དྷ๊ԇࠑࣄ Saturday, September 14, 13
ઌᘃᘃ Saturday, September 14, 13
ઌᘃᘃ • ެ࢘࿏༝ग़问题ྃʁ • ॏ启ҰԼ࿏༝试试ʁ • ୠ为ॄ㜮༗访问զ们ࣗݾ᠓ձग़ࣄʁ Saturday, September 14,
13
ઌᘃᘃ • ެ࢘࿏༝ग़问题ྃʁ • ॏ启ҰԼ࿏༝试试ʁ • ୠ为ॄ㜮༗访问զ们ࣗݾ᠓ձग़ࣄʁ • ਓ问题ʁ •
၏ఔং员还ੋ།Ұൺ较 Saturday, September 14, 13
ઌᘃᘃ • ެ࢘࿏༝ग़问题ྃʁ • ॏ启ҰԼ࿏༝试试ʁ • ୠ为ॄ㜮༗访问զ们ࣗݾ᠓ձग़ࣄʁ • ਓ问题ʁ •
၏ఔং员还ੋ།Ұൺ较 • ෆɼਖ਼ਓ๊ԇ这ࣄ • 99% త༻户ձ۰౸问题时ෆձ报ࠂ Saturday, September 14, 13
ੳ Saturday, September 14, 13
ੳ • tcpdumpแ • ٬户: 发ྃ6 SYN แɼ౸࠷Ұ࠽Ꮕ౸ SYN/ACK •
务: 䉯实Ꮕ౸ྃ6 SYN แ, ࣕ䉯实લ໘5 SYN แ༗ճ䐾 • ဓଖଞ᠓络访问ɼ䉯实ࡏट SYN แ೭ฦճ Saturday, September 14, 13
ੳ • tcpdumpแ • ٬户: 发ྃ6 SYN แɼ౸࠷Ұ࠽Ꮕ౸ SYN/ACK •
务: 䉯实Ꮕ౸ྃ6 SYN แ, ࣕ䉯实લ໘5 SYN แ༗ճ䐾 • ဓଖଞ᠓络访问ɼ䉯实ࡏट SYN แ೭ฦճ • 结论: 问题᪑࿏༝/线࿏Ꮰ䎔ɼ䉯实ੋ务త问题 Saturday, September 14, 13
ੳ Saturday, September 14, 13
ੳ • ࠶ॏ৽ੳ tcpdump త记录ɼ发现લ5 SYN แ带ྃ timestamp, ୈ6带 •
尝试䎔ᎃ٬户 TCP timestamp, ॠ间㠳应 • 尝试䎔ᎃ务 TCP timestamp, ॠ间㠳应 Saturday, September 14, 13
ੳ • ࠶ॏ৽ੳ tcpdump త记录ɼ发现લ5 SYN แ带ྃ timestamp, ୈ6带 •
尝试䎔ᎃ٬户 TCP timestamp, ॠ间㠳应 • 尝试䎔ᎃ务 TCP timestamp, ॠ间㠳应 • 结论: Bug ༩ timestamp ૬䎔ɼୠနવᏠ๏ ղ释为ॄ㜮ଖଞ᠓络问题 Saturday, September 14, 13
ղႊํҊA Saturday, September 14, 13
ղႊํҊA • 䎔ᎃ务త TCP timestamp • TCP timestamp ձӨ㠳传输ɼୠӨ 㠳ෆେ
Saturday, September 14, 13
ղႊํҊA • 䎔ᎃ务త TCP timestamp • TCP timestamp ձӨ㠳传输ɼୠӨ 㠳ෆେ
• ٙ问နવଘࡏɼ为ॄ㜮务ثෆ㠳应 ࠣ timestamp แ, ༗时ީຢೳਖ਼ৗ㠳应 Saturday, September 14, 13
ੳ Saturday, September 14, 13
ੳ • ֩ݯ码 (CTO 亲ࣗૢ) • ೖޱصث༗େྔతཧɼޱ经ৗෆ䭧༻ɼॴҎ䇖 启ྃTIME_WAIT ޱॏ༻ •
䇖启ྃ TIME_WAIT ޱॏ༻ɼ务ཁٻಉҰIPత SYN แ timestamp ඞ须ੋ顺ংత • 办ެ᠓络ੋ᠓, ኂ对զ们᠓访问频ൟɼ导கނো 发ੜ Saturday, September 14, 13
ੳ • ֩ݯ码 (CTO 亲ࣗૢ) • ೖޱصث༗େྔతཧɼޱ经ৗෆ䭧༻ɼॴҎ䇖 启ྃTIME_WAIT ޱॏ༻ •
䇖启ྃ TIME_WAIT ޱॏ༻ɼ务ཁٻಉҰIPత SYN แ timestamp ඞ须ੋ顺ংత • 办ެ᠓络ੋ᠓, ኂ对զ们᠓访问频ൟɼ导கނো 发ੜ • དྷፙ౸ਅ实తݪҼྃ, ༗༗ߋղႊํҊʁ Saturday, September 14, 13
ղႊํҊB • nginx ߴ൛ຊቮ经ࢧ࣋ keep-alive • ঋ级 nginx, 启༻ keep-alive,
߱ޱ༻ • 䎔闭ޱॏ༻ɼኂՃ㖘ޱత监߇ 报ܯ Saturday, September 14, 13
զॴ౸తཚ • ༻寻ፙ workaround ସղႊ问题 Saturday, September 14, 13
զॴ౸తཚ • ༻寻ፙ workaround ସղႊ问题 • 换浏览ث㠧 Saturday, September 14,
13
զॴ౸తཚ • ༻寻ፙ workaround ସղႊ问题 • 换浏览ث㠧 • ॏ启, ਗ਼
cookie, ਗ਼ cache, ॏ৽ొ录 Saturday, September 14, 13
զॴ౸తཚ • ༻寻ፙ workaround ସղႊ问题 • 换浏览ث㠧 • ॏ启, ਗ਼
cookie, ਗ਼ cache, ॏ৽ొ录 • 现场ඃഁᆀಘׯׯ净净 Saturday, September 14, 13
զॴ౸తཚ • ༻寻ፙ workaround ସղႊ问题 • 换浏览ث㠧 • ॏ启, ਗ਼
cookie, ਗ਼ cache, ॏ৽ొ录 • 现场ඃഁᆀಘׯׯ净净 • 对ဋಹࠣෆқ࠶现త Bug, ब损ࣦྃҰ࣍म 䐾తصձ Saturday, September 14, 13
զॴ౸తཚ • 尝试༻试错๏ղႊॴ༗问题 Saturday, September 14, 13
զॴ౸తཚ • 尝试༻试错๏ղႊॴ༗问题 • ঋ级ґ赖แ, ঋ级ᎎ݅, ... Saturday, September 14,
13
զॴ౸తཚ • 尝试༻试错๏ղႊॴ༗问题 • ঋ级ґ赖แ, ঋ级ᎎ݅, ... • ਵศᘃҰݪҼɼվ䫆۟码ɼવ ॏ৽测试
Saturday, September 14, 13
զॴ౸తཚ • ᠍গল Saturday, September 14, 13
զॴ౸తཚ • ᠍গল • 寻ፙ౸ workaround ศ认为问题ղႊྃ Saturday, September 14,
13
զॴ౸తཚ • ᠍গল • 寻ፙ౸ workaround ศ认为问题ղႊྃ • ༗༻测试ݻԽ Bug,
༰қ产ੜճ归Bug Saturday, September 14, 13
զॴ౸తཚ • ᠍গল • 寻ፙ౸ workaround ศ认为问题ղႊྃ • ༗༻测试ݻԽ Bug,
༰қ产ੜճ归Bug • Ұ Bug Մೳࡏଟ处ग़现ɼ༗尝试፺ࡧଖଞ༗ Bug తํ Saturday, September 14, 13
զॴ౸తཚ • ᠍গল • 寻ፙ౸ workaround ศ认为问题ղႊྃ • ༗༻测试ݻԽ Bug,
༰қ产ੜճ归Bug • Ұ Bug Մೳࡏଟ处ग़现ɼ༗尝试፺ࡧଖଞ༗ Bug తํ • ༗௨过补ॆࢤखஈདྷ߱ఆҐBugత难 Saturday, September 14, 13
զॴ౸తཚ • ւԸ๏则: 㑌Ұى严ॏࣄނతഎɼඞવ ༗29࣍轻ඍࣄނ300ىະઌஹҎٴ 1000ىࣄނ隐ױ Saturday, September 14, 13
զ们ਪᣑతํ๏ • ग़ྃ问题ෆཁᯪᘃ • 浏览ث • 务ࢤ • แ۩ Saturday,
September 14, 13
浏览ثॄ㜮ʁ Saturday, September 14, 13
浏览ثॄ㜮ʁ • ੋ൱༗ JS 错误? Saturday, September 14, 13
浏览ثॄ㜮ʁ • ੋ൱༗ JS 错误? • ᠓络请ٻੋ൱发ग़ʁ Saturday, September 14,
13
浏览ثॄ㜮ʁ • ੋ൱༗ JS 错误? • ᠓络请ٻੋ൱发ग़ʁ • 发ग़త请ٻੋ൱ਖ਼䉯ɿ URL,
ํ๏, ࢀ, Accept, Cookie Saturday, September 14, 13
浏览ثॄ㜮ʁ • ੋ൱༗ JS 错误? • ᠓络请ٻੋ൱发ग़ʁ • 发ग़త请ٻੋ൱ਖ਼䉯ɿ URL,
ํ๏, ࢀ, Accept, Cookie • ظతฦճ值ੋॄ㜮ʁ Saturday, September 14, 13
浏览ثॄ㜮ʁ • ੋ൱༗ JS 错误? • ᠓络请ٻੋ൱发ग़ʁ • 发ग़త请ٻੋ൱ਖ਼䉯ɿ URL,
ํ๏, ࢀ, Accept, Cookie • ظతฦճ值ੋॄ㜮ʁ • Request-Id Saturday, September 14, 13
Request-Id • 对㑌࣍请ٻ产ੜҰ།ҰతId Saturday, September 14, 13
Request-Id • 对㑌࣍请ٻ产ੜҰ།ҰతId • 该 Id Ҏ HTTP Response Header
తํࣜ 发ૹ౸٬户 Saturday, September 14, 13
Request-Id • 对㑌࣍请ٻ产ੜҰ།ҰతId • 该 Id Ҏ HTTP Response Header
తํࣜ 发ૹ౸٬户 • ՄҎࡏ nginx 层໘实现҃ऀࡏ业务逻辑层 ໘实现 Saturday, September 14, 13
务ࢤॄ㜮ʁ • ࢛ཁૉ Saturday, September 14, 13
务ࢤॄ㜮ʁ • ࢛ཁૉ • 时间: 䇖࢝时间ɼ总时 Saturday, September 14, 13
务ࢤॄ㜮ʁ • ࢛ཁૉ • 时间: 䇖࢝时间ɼ总时 • 谁: ༻户Id, Session-Id,
Request-Id Saturday, September 14, 13
务ࢤॄ㜮ʁ • ࢛ཁૉ • 时间: 䇖࢝时间ɼ总时 • 谁: ༻户Id, Session-Id,
Request-Id • ၏ॄ㜮: URL, ํ๏ɼXHR?, format, ࢀ(ҙ อ护ີ码) Saturday, September 14, 13
务ࢤॄ㜮ʁ • ࢛ཁૉ • 时间: 䇖࢝时间ɼ总时 • 谁: ༻户Id, Session-Id,
Request-Id • ၏ॄ㜮: URL, ํ๏ɼXHR?, format, ࢀ(ҙ อ护ີ码) • 结Ռੋॄ㜮ʁ Saturday, September 14, 13
务ࢤॄ㜮ʁ • 对ଖଞ务త请ٻ • 邮݅ɼ৴ɼଖଞ务... • 记录请ٻ详时 Saturday, September 14,
13
ୠੋ经ৗ༗䭧తࢤ Saturday, September 14, 13
wireshark tcpdump • แ۩ • wireshark: ༗ք໘ • tcpdump: sudo
tcpdump -n -s 4096 -w 1.log port 80 Saturday, September 14, 13
ଖଞ۩ • strace/dtruss: ܥ统调༻᪑᪨۩ • lsof: ྻग़จ݅ଧ䇖ႎ • valgrind: 查ଘᔔ࿐
• ltrace: 查询库调༻ Saturday, September 14, 13
总结 • զ们ਪਸ௨过Ұ䝅ܥ统తํ๏དྷੳ问题ɼ寻ፙ 问题తࠜݯ • զ们对ᯪ试错๏དྷղႊ问题 • ೳ࠶现త Bug ੋ
Bug, Ռෆೳ࠶现ɼཁ፤౸ 对应త᠓络请ٻࢤ • Ռ这࣍ղႊෆྃ Bug, ಹ㜮बվળ㟬తࢤɼ䉯 อԼ࣍ Bug ग़现త时ީೳղႊଞ Saturday, September 14, 13
զ们团队 Saturday, September 14, 13
Q&A Saturday, September 14, 13