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
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
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
170
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
180
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
540
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.3k
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
360
The NotImplementedError Problem in Ruby
koic
1
830
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
270
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
590
Webフレームワークの ベンチマークについて
yusukebe
0
170
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
550
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
820
AIだと陥りがちなJakarta EE最新技術への移行時の落とし穴と解決策
tnagao7
0
110
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
21k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
170
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Skip the Path - Find Your Career Trail
mkilby
1
150
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Designing Experiences People Love
moore
143
24k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
210
Thoughts on Productivity
jonyablonski
76
5.2k
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