記一次排查圖片偶爾加載不出來(lái)的排查經(jīng)歷

一. 問(wèn)題描述
在幾天前,現(xiàn)場(chǎng)技術(shù)反饋應(yīng)用的支付二維碼是過(guò)期圖片(上一筆交易記錄的支付二維碼).并隨時(shí)甩了一堆的日志.于是一場(chǎng)耗費(fèi)4务荆、5天的戰(zhàn)斗正式打響.
二. 問(wèn)題分析
由于版本正在改版階段,邏輯確實(shí)發(fā)生了一些變動(dòng),初步分析,認(rèn)為是由于過(guò)期的二維碼刷新延遲導(dǎo)致用戶(hù)掃到了前一筆訂單的支付二維碼信息了.但分析日志后,發(fā)現(xiàn)問(wèn)題并沒(méi)有那么簡(jiǎn)單.
1.一般情況下以現(xiàn)在的網(wǎng)絡(luò)條件.2穷遂、3秒內(nèi)就可以完成二維碼的刷新操作.
2.分析日志.

GetInCarDataByOutCarNoRequest>>>{parkid=0, outDspIp=172.19.2.3, serialType=0, outCarNo=xxx, etcNo=000000, extParam=}
....

接口沒(méi)有返回值,同時(shí)拿了后臺(tái)的日志,也沒(méi)有任何請(qǐng)求信息.可以發(fā)現(xiàn)請(qǐng)求沒(méi)有被服務(wù)器所接收.并且客戶(hù)端沒(méi)有任何的異常信息記錄.
3.現(xiàn)場(chǎng)有些機(jī)子反饋沒(méi)問(wèn)題函匕,有些機(jī)子反饋有問(wèn)題.(10臺(tái)機(jī)子,2臺(tái)運(yùn)行過(guò)程中就不再顯示二維碼了).

三. 問(wèn)題排查過(guò)程
這讓我陷入了兩難的境地,深入排查出問(wèn)題的邏輯方法也看不出什么異常.

我們決定在該請(qǐng)求接口中埋點(diǎn)日志

在主要的調(diào)用方法上補(bǔ)上了try/catch,希望能夠獲取到異常信息

通過(guò)對(duì)比穩(wěn)定版本,我們決定取消引入multidex分包(該方案主要解決64K方法數(shù)限制問(wèn)題)

但是很遺憾的是,在以上的努力之后,我們的問(wèn)題依然在發(fā)生,BUG仍在肆孽

是的(主要是Google自家的圖片加載引擎Glide 3.7.1,特別注意.回退后的版本在加載GIF圖片時(shí)存在閃爍的問(wèn)題.在不跳大版本的情況下推薦使用3.8.0).

基本已可以確認(rèn)是第三方庫(kù)的問(wèn)題.但是為什么日志上顯示不了呢?.在一次無(wú)關(guān)緊要的復(fù)現(xiàn)過(guò)程中,激發(fā)了一個(gè)想法.是不是還有其他地方消費(fèi)掉了異常信息呢?經(jīng)過(guò)排查EventBus自行消費(fèi)掉了異常.但它又沒(méi)強(qiáng)制處理.導(dǎo)致異常無(wú)故消失。


void invokeSubscriber(Subscription subscription, Object event) {
        try {
            subscription.subscriberMethod.method.invoke(subscription.subscriber, event);
        } catch (InvocationTargetException e) {
            handleSubscriberException(subscription, event, e.getCause());
        } catch (IllegalAccessException e) {
            throw new IllegalStateException("Unexpected exception", e);
        }
}

private void handleSubscriberException(Subscription subscription, Object event, Throwable cause) {
        if (event instanceof SubscriberExceptionEvent) {
            ...
        } else {
            if (throwSubscriberException) {
                throw new EventBusException("Invoking subscriber failed", cause);
            }
            if (logSubscriberExceptions) {
                logger.log(Level.SEVERE, "Could not dispatch event: " + event.getClass() + " to subscribing class "
                        + subscription.subscriber.getClass(), cause);
            }
            if (sendSubscriberExceptionEvent) {
                SubscriberExceptionEvent exEvent = new SubscriberExceptionEvent(this, cause, event,subscription.subscriber);
                post(exEvent);
            }
        }
    }

可以看到.出現(xiàn)一些異常的情況下,它會(huì)處理一些感興趣的異常,但是不強(qiáng)制用戶(hù)去處理.我們丟掉的就是這塊內(nèi)容的異常了.(當(dāng)然截止目前,SubscriberExceptionEvent異常已經(jīng)會(huì)被處理).
四. 經(jīng)驗(yàn)總結(jié)

  1. 該問(wèn)題正好進(jìn)入了我們遺失日志的陰暗角落,給我們排查問(wèn)題上增加了很大的麻煩.總讓人不知所措(超出個(gè)人的認(rèn)知)蚪黑,無(wú)從下手.出現(xiàn)問(wèn)題的時(shí)候,日志是我們最主要的依靠手段.善待日志也是善待自己.
  2. 做好第一點(diǎn)的情況下盅惜,出現(xiàn)大海撈針的情況就會(huì)變少.但即使出現(xiàn)了.靜下心去排查那些看似無(wú)厘頭的BUG.
  3. 遇到無(wú)從下手的問(wèn)題時(shí),又趕上急需發(fā)版確實(shí)是一種折磨.該版本測(cè)試流程已經(jīng)走完.但是在測(cè)試環(huán)境上始終無(wú)法重現(xiàn).為定位問(wèn)題所在增加了很大的困難。通過(guò)日志以及領(lǐng)導(dǎo)爭(zhēng)取的現(xiàn)場(chǎng)測(cè)試環(huán)境為該問(wèn)題的的最終解決帶來(lái)了很大的幫助.逐漸縮小排查范圍.
  4. 理論上第三方依賴(lài)庫(kù)高版本會(huì)修復(fù)低版本發(fā)現(xiàn)的問(wèn)題.但是同時(shí)也會(huì)引入新的問(wèn)題.特別是跨版本升級(jí).就目前來(lái)看應(yīng)該是在使用新版本Glide(4.3.1)導(dǎo)致引入BUG(但尚無(wú)精確判定).所以在使用第三方庫(kù)時(shí)忌穿,盡量事先查看該版本修復(fù)的BUG,以及issue列表.
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末抒寂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子掠剑,更是在濱河造成了極大的恐慌屈芜,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異井佑,居然都是意外死亡属铁,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)躬翁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)焦蘑,“玉大人,你說(shuō)我怎么就攤上這事盒发±觯” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵宁舰,是天一觀的道長(zhǎng)拼卵。 經(jīng)常有香客問(wèn)我,道長(zhǎng)明吩,這世上最難降的妖魔是什么间学? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮印荔,結(jié)果婚禮上低葫,老公的妹妹穿的比我還像新娘。我一直安慰自己仍律,他們只是感情好嘿悬,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著水泉,像睡著了一般善涨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上草则,一...
    開(kāi)封第一講書(shū)人閱讀 50,050評(píng)論 1 291
  • 那天钢拧,我揣著相機(jī)與錄音,去河邊找鬼炕横。 笑死源内,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的份殿。 我是一名探鬼主播膜钓,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼卿嘲!你這毒婦竟也來(lái)了颂斜?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤拾枣,失蹤者是張志新(化名)和其女友劉穎沃疮,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡忿磅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年糯彬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片葱她。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖似扔,靈堂內(nèi)的尸體忽然破棺而出吨些,到底是詐尸還是另有隱情,我是刑警寧澤炒辉,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布豪墅,位于F島的核電站,受9級(jí)特大地震影響黔寇,放射性物質(zhì)發(fā)生泄漏偶器。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一缝裤、第九天 我趴在偏房一處隱蔽的房頂上張望屏轰。 院中可真熱鬧,春花似錦憋飞、人聲如沸霎苗。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)唁盏。三九已至,卻和暖如春检眯,著一層夾襖步出監(jiān)牢的瞬間厘擂,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工锰瘸, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留刽严,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓获茬,卻偏偏與公主長(zhǎng)得像港庄,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子恕曲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • 7.1 壓縮圖片 一鹏氧、基礎(chǔ)知識(shí) 1、圖片的格式 jpg:最常見(jiàn)的圖片格式佩谣。色彩還原度比較好把还,可以支持適當(dāng)壓縮后保持...
    AndroidMaster閱讀 2,497評(píng)論 0 13
  • 一、簡(jiǎn)介 在泰國(guó)舉行的谷歌開(kāi)發(fā)者論壇上,谷歌為我們介紹了一個(gè)名叫Glide的圖片加載庫(kù)吊履,作者是bumptech安皱。這...
    天天大保建閱讀 7,461評(píng)論 2 28
  • Glide筆記 一、簡(jiǎn)介 在泰國(guó)舉行的谷歌開(kāi)發(fā)者論壇上艇炎,谷歌為我們介紹了一個(gè)名叫Glide的圖片加載庫(kù)酌伊,作者是bu...
    AndroidMaster閱讀 3,886評(píng)論 0 27
  • 今天老公送了我一個(gè)空閑的夜晚作為禮物。雖說(shuō)一個(gè)人與這“節(jié)日”略顯不夠搭調(diào)缀踪,甚至讓人掃興居砖。但于我,確是份極好...
    艾娃閱讀 337評(píng)論 0 0
  • 省三組學(xué)員【日精進(jìn)打卡第135天】 【知~學(xué)習(xí)】 誦讀《六項(xiàng)精進(jìn)》大綱1遍 誦讀《大學(xué)》1遍 閱讀《活法》篇 閱讀...
    周沖_22e8閱讀 139評(píng)論 0 0