開発以外でもLogcat重要

先日いきなりNexus oneで特定の通信ができないトラブルが発生した。回線は3Gを使おうがWi-fiからFletsを経由しようが状況変わらず。

サービス毎に一通り調べて見ると

・Web  ○
Gmail  ×
・Market ×
Twitter ×

さっぱり解らないので、ADBを起動してLogcatを見てみることにした。

01-06 09:36:37.308: DEBUG/Gmail(498): MailProvider.query: content://gmail-ls/conversations/xxxxxxxx@gmail.com(, null)
01-06 09:36:37.338: DEBUG/Gmail(498): ConversationHeaderCursorAdapter.cursorStatusChanged: LOADING
01-06 09:36:37.798: INFO/Gmail(498): MailCursor encountered an IOException:Not trusted server certificate
01-06 09:36:37.809: DEBUG/Gmail(498): MailProvider.query: content://gmail-ls/conversations/xxxxxxxx@gmail.com(, null)
01-06 09:36:37.809: DEBUG/Gmail(498): ConversationHeaderCursorAdapter.cursorStatusChanged: ERROR
:
:
01-06 09:36:54.948: INFO/Gmail(498): getStartSyncRequest: handledServerOpId: 249740, upperFetchedConvoId: 1353176070075973632, lowerFetchedConvoId: 0, ackedClientOp: 51
01-06 09:36:55.788: DEBUG/Gmail(498): IO exception: javax.net.ssl.SSLException: Not trusted server certificate

SSLサーバ証明書の扱いにおいてエラーが発生しているようだ。

これを頼りに

ハード故障ではない

WAN側の障害ではない

Wi-fiの通常の設定範囲ではない

メンテナンスモードで通信方法が何故か"unknown"になっていたので"WCDMA Only"に変更

これで治った。何故unknownになっていたことでSSL通信が失敗していたのか、逆に何故WWWは問題無かったのかが腑に落ちないが、良い手がかりになったことだけは確かだ。