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
OSSのissueから学ぶユーザサポートのノウハウ
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Satoru Takeuchi
PRO
June 28, 2020
Technology
250
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
OSSのissueから学ぶユーザサポートのノウハウ
以下動画のテキストです。
https://youtu.be/M2lZuNk2tOk
Satoru Takeuchi
PRO
June 28, 2020
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
119-多機能ファイルシステムBtrfs_のコピー.pdf
sat
PRO
1
64
Linuxカーネルの インタフェースは変わりうる?
sat
PRO
1
92
あなたの知らないバージョン命名規則
sat
PRO
3
890
Rook: Intro and Deep Dive with Ceph
sat
PRO
1
63
Machine Check Exception
sat
PRO
2
63
バイナリダンプの模様を読む
sat
PRO
0
88
cpコマンドはディスク上でデータを コピーしないことがある
sat
PRO
3
86
114-ファイルのshallow_copy.pdf
sat
PRO
2
55
113-Btrfsのスナップショット.pdf
sat
PRO
0
40
Other Decks in Technology
See All in Technology
20260903 Tokyo Jazug Night #62 | Azure エンジニアよ、 その環境は本当にセキュアか?
olivia_0707
1
610
2026-09-04 SRE Tech Talk #15 怠惰なTerraform / Lazy Terraform
masasuzu
0
190
本番に近いテストをもっと手軽に - Postmanで広がるAPIテストの世界 / Expanding the World of API Testing with Postman
yokawasa
1
250
推論の観測、できていますか? 〜 Google Cloud Gemini Enterprise Agent Platformで 3つの Gemini モデルを実測して踏んだ、評価の罠 〜
shukob
PRO
0
140
最新技術に積極チャレンジ!EKS共通基盤のこれまでとこれから
daitak
0
300
こんなアーキテクチャ図は嫌だ BEYOND THE TIME: 半年後の自分へ贈る15のメッセージ / 15 of Anti-pattern in AWS Architecture Diagrams
naospon
3
230
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
150
いかに伝えるか 〜新卒エンジニアの教育のための、ライトノベル活用の一例
ikedon
1
190
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
0
240
Azure App Service / Container Apps の組み込み認証
kuniteru
0
190
Genie Code ワークショップ 基礎編 / Genie-Code-Workshop-fundamental
databricksjapan
PRO
0
350
その指示、Bobにしっかり伝わってる?初心者でも即実践できる プロンプト/コンテキスト設計のコツ
muehara
0
130
Featured
See All Featured
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
920
Rails Girls Zürich Keynote
gr2m
96
14k
How to train your dragon (web standard)
notwaldorf
97
6.8k
Paper Plane
katiecoart
PRO
2
53k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
The SEO identity crisis: Don't let AI make you average
varn
0
550
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
770
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
KATA
mclloyd
PRO
35
15k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
240
How to Talk to Developers About Accessibility
jct
2
540
Transcript
OSSのissueから学ぶ ユーザサポートのノウハウ Jun 28th, 2020 Satoru Takeuchi Twitter: satoru_takeuchi 1
前置き • この動画におけるユーザサポートの定義 ◦ 自分以外のユーザが検出した問題を解決すること • スキルを磨くのが大変 ◦ 具体的なことを学べる書籍や記事が少ない ◦
OSSのissueがよい教材になるが、眺めるだけではサポート技術者の意図に気づきにくい • 私が最近解決したOSSのissueを題材にユーザサポートのノウハウを学ぶ ◦ 業務としてのユーザサポートとは異なる点が多々あるが、ここでは割愛 • 対象OSSはRook ◦ 分散ストレージCephのオーケストレータ ▪ Ceph以外もサポートするがここでは割愛 ◦ Kubernetes上で動作する • 必要な情報は動画内で適宜補足 2
もくじ • 題材とするissue • ユーザと認識を合わせる • 原因の特定と修正 • まとめ 3
もくじ • 題材とするissue • ユーザと認識を合わせる • 原因の特定と修正 • まとめ 4
題材とするissue • devicePathFilter doesn't work with /dev/disk/by-partlabel #5504 ◦ https://github.com/rook/rook/issues/5504
• 前提知識 ◦ 設定ファイルにdevicePathFilterというフィールドがある ◦ このフィールドに記載の正規表現にマッチする名前のデバイスを Cephクラスタに組み込める • 概要 ◦ あるパーティションを Cephクラスタに組み込みたい ◦ パーティションラベルをもとに udevが作ったデバイス名を使ってデバイスを指定したい ▪ /dev/disk/by-partlabel/<パーティションラベル > ▪ 「その6 デバイス名は変わりうる」 ◦ “devicePathFilter: /dev/disk/by-partlabel/CEPH_DATA”と設定ファイルに書いた ◦ RookはパーティションをCephクラスタに組み込んでくれなかった 5
もくじ • 題材とするissue • ユーザと認識を合わせる • 原因の特定と修正 • まとめ 6
ユーザと認識を合わせる • ユーザと自分の間で「解決すべき問題は何か」という認識を合わせる ◦ 何が真の問題なのか、そもそも本当にそれは問題なのか ◦ ユーザ自身が真の問題に気づいていないこともある ◦ 認識を合わせないまま先に進めると無駄になりがち •
不明点がなくなるまで確認を繰り返す ◦ 足りていない情報を要求する ▪ https://github.com/rook/rook/issues/5504#issuecomment-630720248 ◦ もらった情報の不明点を明らかにする ▪ https://github.com/rook/rook/issues/5504#issuecomment-636632604 • できれば手元で再現させる ▪ https://github.com/rook/rook/issues/5504#issuecomment-636780880 7
もくじ • 題材とするissue • ユーザと認識を合わせる • 原因の特定と修正 • まとめ 8
原因の特定 • ユーザから受け取った情報をもとに当たりをつける ◦ ログを見ると、マッチすべきはずの条件でマッチしていないのが問題だった ▪ https://github.com/rook/rook/issues/5504#issuecomment-636828176 ◦ 当該デバイスを示す名前のリストが作られていなかった ▪
https://github.com/rook/rook/blob/v1.3.6/pkg/daemon/ceph/osd/daemon.go#L378 • それでもわからなければ別の手段をとる必要がある ◦ ログを仕込んだデバッグ用バイナリの作成、デバッガの利用 ◦ 手元で再現できない場合はユーザ環境でそれらを使ってもらったり、追加情報を要求したり 9
修正 1. 単に前述のリストを作るようコードを修正、マージ • https://github.com/rook/rook/pull/5628 2. ユーザが使っているバージョンへのバックポート • https://github.com/rook/rook/pull/5689 10
Master branch V1.3 branch (ユーザが使っているバージョン ) 本バグの修正commit backport
もくじ • 題材とするissue • ユーザと認識を合わせる • 原因の特定と修正 • まとめ 11
まとめ • まずはユーザと認識を合わせる • 手元で再現できると非常に楽 • 原因究明段階からは開発者としての能力が強く問われる 12