记录工作中第一次解决bug的小事
生活随笔
收集整理的這篇文章主要介紹了
记录工作中第一次解决bug的小事
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
關(guān)于在openwrt中丟配置的問(wèn)題
??? 前一段時(shí)間,就是國(guó)慶節(jié)前一兩天吧,我的導(dǎo)師帶我們?nèi)?shí)驗(yàn)室,任務(wù)就是改正測(cè)試部門發(fā)來(lái)的bug。本來(lái)分了我五個(gè)問(wèn)題,但是因?yàn)槲抑皼](méi)有經(jīng)驗(yàn),所以著重改其中一個(gè)bug。bug問(wèn)題大概是:在路由器出廠設(shè)置之后,用戶在界面上修改配置并保存退出,然后reboot之后,配置就會(huì)丟失!任務(wù)很明確:讓我找到問(wèn)題所在并改正這個(gè)問(wèn)題。
???? 剛開始的時(shí)候,我呆在實(shí)驗(yàn)室,一直在測(cè)試,然后從和修改的配置相關(guān)的文件入手,分析代碼。由于之前的測(cè)試失誤,我們以為只有wan口設(shè)置重啟后會(huì)丟配置,后來(lái)才發(fā)現(xiàn),原來(lái)設(shè)置其它的東西reboot之后也會(huì)丟掉配置。然后我照著我們剛開始的測(cè)試結(jié)果,開始尋找出錯(cuò)的地方。
???? 從點(diǎn)擊按鈕觸發(fā)"重新設(shè)置"事件開始,到reboot結(jié)束。一步一步地找問(wèn)題,開始階段,我一直在看etc/目錄下的文件,因?yàn)榕渲梦募荚谶@個(gè)目錄中。配置文件就好比數(shù)據(jù)庫(kù),界面上傳過(guò)來(lái)的數(shù)據(jù)寫進(jìn)/etc/config/相應(yīng)的目錄中,然后界面上需要什么數(shù)據(jù),就從配置文件中讀取數(shù)據(jù)顯示出來(lái)。我們猜想,應(yīng)該是在擦除數(shù)據(jù)并更改數(shù)據(jù)之后,配置數(shù)據(jù)沒(méi)有丟,然后再reboot,配置丟失。說(shuō)明肯定是reboot程序運(yùn)行出了問(wèn)題。
???? 期間,我把網(wǎng)絡(luò)配置之中的運(yùn)行流程,基本上都有打印信息,但是還是找不到wan口配置丟失問(wèn)題(因?yàn)橹耙詾橹挥羞@個(gè)wan口配置出問(wèn)題).我把時(shí)間都花在了wan口配置的問(wèn)題上,正應(yīng)了那句話,壞事不一定是壞事。因?yàn)閛penwrt系統(tǒng)也是最近一段時(shí)間才開始接觸,所以也更加熟悉這個(gè)系統(tǒng)。
???? 過(guò)了快一周時(shí)間了,包括我問(wèn)導(dǎo)師和同事,上網(wǎng)查資料,終于,我在后面發(fā)現(xiàn)一個(gè)現(xiàn)象:就是系統(tǒng)在第二次reboot之后,配置便不再丟失。那我設(shè)想,如果在出廠設(shè)置之后,緊接著reboot,那么雖說(shuō)具體原因沒(méi)找到,但是卻好使的辦法。嘿嘿。但是,最終沒(méi)能實(shí)現(xiàn)這種方法。然后,我看了一個(gè)帖子后,我發(fā)現(xiàn)如果我把
?
//blog.csdn.net/chang198932/article/details/36435209
?mtd -r erase rootdf_data命令(此命令在luci/controller/system.lua文件中),換成
?rm -rf /overlay* && reboot,
?這個(gè)問(wèn)題居然被解決掉了!有點(diǎn)意外,有點(diǎn)驚喜!
?細(xì)細(xì)想來(lái),前一個(gè)命令,是把所有的分區(qū)擦除掉了,后一個(gè)命令,只是刪除掉了分區(qū)上的所有數(shù)據(jù)。但是具體的原因,還有待查找??赡苁欠謪^(qū)擦除掉了,配置后reboot,配置不會(huì)被保存。
?自我批評(píng):沒(méi)有刨根問(wèn)底的精神,以后要改正。
??? 前一段時(shí)間,就是國(guó)慶節(jié)前一兩天吧,我的導(dǎo)師帶我們?nèi)?shí)驗(yàn)室,任務(wù)就是改正測(cè)試部門發(fā)來(lái)的bug。本來(lái)分了我五個(gè)問(wèn)題,但是因?yàn)槲抑皼](méi)有經(jīng)驗(yàn),所以著重改其中一個(gè)bug。bug問(wèn)題大概是:在路由器出廠設(shè)置之后,用戶在界面上修改配置并保存退出,然后reboot之后,配置就會(huì)丟失!任務(wù)很明確:讓我找到問(wèn)題所在并改正這個(gè)問(wèn)題。
???? 剛開始的時(shí)候,我呆在實(shí)驗(yàn)室,一直在測(cè)試,然后從和修改的配置相關(guān)的文件入手,分析代碼。由于之前的測(cè)試失誤,我們以為只有wan口設(shè)置重啟后會(huì)丟配置,后來(lái)才發(fā)現(xiàn),原來(lái)設(shè)置其它的東西reboot之后也會(huì)丟掉配置。然后我照著我們剛開始的測(cè)試結(jié)果,開始尋找出錯(cuò)的地方。
???? 從點(diǎn)擊按鈕觸發(fā)"重新設(shè)置"事件開始,到reboot結(jié)束。一步一步地找問(wèn)題,開始階段,我一直在看etc/目錄下的文件,因?yàn)榕渲梦募荚谶@個(gè)目錄中。配置文件就好比數(shù)據(jù)庫(kù),界面上傳過(guò)來(lái)的數(shù)據(jù)寫進(jìn)/etc/config/相應(yīng)的目錄中,然后界面上需要什么數(shù)據(jù),就從配置文件中讀取數(shù)據(jù)顯示出來(lái)。我們猜想,應(yīng)該是在擦除數(shù)據(jù)并更改數(shù)據(jù)之后,配置數(shù)據(jù)沒(méi)有丟,然后再reboot,配置丟失。說(shuō)明肯定是reboot程序運(yùn)行出了問(wèn)題。
???? 期間,我把網(wǎng)絡(luò)配置之中的運(yùn)行流程,基本上都有打印信息,但是還是找不到wan口配置丟失問(wèn)題(因?yàn)橹耙詾橹挥羞@個(gè)wan口配置出問(wèn)題).我把時(shí)間都花在了wan口配置的問(wèn)題上,正應(yīng)了那句話,壞事不一定是壞事。因?yàn)閛penwrt系統(tǒng)也是最近一段時(shí)間才開始接觸,所以也更加熟悉這個(gè)系統(tǒng)。
???? 過(guò)了快一周時(shí)間了,包括我問(wèn)導(dǎo)師和同事,上網(wǎng)查資料,終于,我在后面發(fā)現(xiàn)一個(gè)現(xiàn)象:就是系統(tǒng)在第二次reboot之后,配置便不再丟失。那我設(shè)想,如果在出廠設(shè)置之后,緊接著reboot,那么雖說(shuō)具體原因沒(méi)找到,但是卻好使的辦法。嘿嘿。但是,最終沒(méi)能實(shí)現(xiàn)這種方法。然后,我看了一個(gè)帖子后,我發(fā)現(xiàn)如果我把
?
//blog.csdn.net/chang198932/article/details/36435209
?mtd -r erase rootdf_data命令(此命令在luci/controller/system.lua文件中),換成
?rm -rf /overlay* && reboot,
?這個(gè)問(wèn)題居然被解決掉了!有點(diǎn)意外,有點(diǎn)驚喜!
?細(xì)細(xì)想來(lái),前一個(gè)命令,是把所有的分區(qū)擦除掉了,后一個(gè)命令,只是刪除掉了分區(qū)上的所有數(shù)據(jù)。但是具體的原因,還有待查找??赡苁欠謪^(qū)擦除掉了,配置后reboot,配置不會(huì)被保存。
?自我批評(píng):沒(méi)有刨根問(wèn)底的精神,以后要改正。
總結(jié)
以上是生活随笔為你收集整理的记录工作中第一次解决bug的小事的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LeetCode中常用语言的一些基本方法
- 下一篇: 关于luci的几个问题一