0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

令人頭疼的異常重啟,竟然是KV的鍋…

合宙LuatOS ? 來源:合宙LuatOS ? 作者:合宙LuatOS ? 2024-09-26 18:14 ? 次閱讀

?在技術(shù)支持群,看到有用戶報了一個不明原因的重啟問題。 重啟現(xiàn)象是 ——有極個別設(shè)備在工作中不定時反復異常重啟,大部分設(shè)備正常;反復重啟設(shè)備,有時候又能持續(xù)正常工作。

隔著屏幕都感覺到了客戶的著急和無奈,我決定和這位用戶一起揪出這個“搗蛋鬼”。

圖片?

一、查找線索

按常規(guī)流程先詢問用戶開發(fā)模塊、開發(fā)方式,并要求提供對應(yīng)日志。經(jīng)確認如下:

開發(fā)模塊:Air780E

最新資料:www.air780e.cn

開發(fā)方式:LuatOS

開發(fā)教程

https://doc.openluat.com/wiki/26?wiki_page_id=3020

客戶提供日志反饋:

腳本日志沒報錯誤,就是不定時卡住一會,然后就重啟了。

圖片?

第一反應(yīng):不會是死循環(huán)導致的重啟吧?

用戶反饋:“沒有死循環(huán),任務(wù)里面都有延時的,而且大部分設(shè)備是正常的。且重啟的時間也不定,最短4秒,最長是三分多鐘,看起來不符合20秒的看門狗重啟呀,而且設(shè)備昨天有正常工作一天,然后異常的時候就持續(xù)一直異常。但是這個固件的絕大部分設(shè)備是正常工作,不會異常重啟的?!?/p>

看來不是死循環(huán)導致的看門狗重啟問題。

為了進行一步排查重啟原因,我讓用戶用pm.lastReson()這個接口打印開機原因值。

客戶反饋:“我們有平臺上傳數(shù)據(jù), pm.lastReson()是006異常重啟 ”。

根據(jù)接口文檔相關(guān)說明來看,確實不是內(nèi)部看門狗導致的重啟,是異常重啟導致的。

接口文檔詳見:

https://wiki.luatos.com/api/pm.html#pm-lastreson

圖片?

二、了解背景

心想看不出啥具體原因,先了解一下客戶使用背景吧,說不定會有啥線索。

我問:“之前正常,現(xiàn)在是用不了,一直在重啟嗎?”

客戶反饋:“也不是吧,一開始是好的,然后掛了幾個月一直重啟,最近發(fā)現(xiàn),昨天我拿過來掛了一天又正常,然后今天又重啟,老化區(qū)就這個設(shè)備會重啟,其他同固件是正常的?!?/p>

我又問:“換DEMO會重啟嗎? 確認一下是硬件問題,還是軟件問題。

客戶反饋:“ 今天測試過,只下載腳本是一定會出問題。 然后我剛剛重新下載底層和腳本,目前五分鐘沒有重啟?!?/p>

看上去應(yīng)該不是硬件問題,可能是軟件引起的。心想讓客戶用最新版本試一下吧,確認一下還會不會出現(xiàn)問題。

客戶反饋:“我們是因為有一個設(shè)備到客戶手上有這個問題是V1108的,然后老化區(qū)只有這個設(shè)備也是異常重啟,是V1106的,然后就看的這個,后面重新燒錄1106的底層也是正常的,這設(shè)備挺難出現(xiàn)這個問題的,只能我們這邊掛著測一下?!?/p>

看來又是一個令人頭大的重啟問題,要等客戶提供底層日志來進一步排除問題了。

三、重要線索


客戶把掛測的底層日志提供過來了,打開后確實看到了RamDumpData開頭的死機信息

圖片?

打開上面的RamDumpData出現(xiàn)如下信息:

圖片?

我趕緊和研發(fā)大佬確認,可能是啥情況。大佬問答大概率是FLASH壞掉了,讓和客戶確認不是有KV相關(guān)的操作。

客戶回答,確實有KV的操作。

本文提到的KV:

KV數(shù)據(jù)庫 ——指的是LuatOS中的FSKV庫,提供鍵值對數(shù)據(jù)庫功能,數(shù)據(jù)持久化在Flash上,使用獨立的KV分區(qū),使用LuaTools刷機時可選擇清空,默認是不清空。由Flash的特性決定了,寫入次數(shù)是有限的,頻繁寫入導致超限后,將無法設(shè)置/更新數(shù)據(jù),導致系統(tǒng)異常。

為了進一步驗證猜測,讓客戶做了如下測試:

問:“死機重啟后,燒錄不清除KV試試看還會不會重啟,或者去除KV相關(guān)操作看還會不會重啟?!?/p>

答:“KV操作挺多的,不好清除,我試下燒錄不清除KV,有時候斷電過一會就好了,不是很好復現(xiàn),我先試試燒錄不清除KV?!?/p>

客戶反饋:“不清除KV也會有重啟?!?/p>

問:“重新燒錄底層的時候,有沒有清理KV?!?/p>

答:“有”…

根據(jù)此前客戶反饋和當前測試來看,應(yīng)該是FALSH模塊有些區(qū)域壞掉了。

四、確認猜測


至此,可以說這個重啟的原因基本是確認了,導致模塊令人琢磨不透的重啟問題的“搗蛋鬼”也基礎(chǔ)上算是給揪出來了。但是,還是需做進一步的測試來確定猜測。

研發(fā)大佬給了一下測試固件,來確認猜測是否正確。

圖片?

經(jīng)過測試驗證后,確定是FALSH部分區(qū)域壞掉引起的重啟。

至此這個“重啟案件”算是偵破了。

給客戶的建議:

要改腳本,需要大幅度減少寫KV的次數(shù),防止破壞模塊重啟的“搗蛋鬼”再次出來搗亂。

溫馨提示:

KV的寫壽命是10萬次,過于頻繁操作可能會導致FLASH壞掉,引起設(shè)備反復重啟。

因此,在寫代碼的時候要盡量減少寫KV的次數(shù)。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8274

    瀏覽量

    150027
  • 燒錄
    +關(guān)注

    關(guān)注

    8

    文章

    249

    瀏覽量

    35407
  • LuatOS
    +關(guān)注

    關(guān)注

    0

    文章

    50

    瀏覽量

    1900
收藏 人收藏

    評論

    相關(guān)推薦

    用線性電橋測Pt100,輸出不正確是怎么回事?

    用線性電橋測Pt100,即上圖中的RTD1,運放選用TLC2274,電路用面包板搭建好了,但是輸出不正確。其中2腳電壓為+3.6V,3腳為+2.6V,輸出竟然是正的+1.39V,求解?
    發(fā)表于 09-06 06:35

    DRV8662沒有輸出信號是哪里的問題?

    了50nf的獨石電容作為假負載,仍然不行。實在是令人頭疼。 都折騰了半月了,就是查不出毛病,求教各位,多謝多謝。
    發(fā)表于 08-27 06:24

    電磁爐檢電阻怎么測好壞

    電磁爐是一種利用電磁感應(yīng)原理將電能轉(zhuǎn)換為熱能的廚房電器,廣泛應(yīng)用于家庭、餐館、食堂等場所。電磁爐的檢功能是其核心功能之一,通過檢測具的電阻值來判斷具是否符合電磁爐的使用要求。 一、電磁爐檢
    的頭像 發(fā)表于 07-15 09:27 ?660次閱讀

    長時間發(fā)送344個字節(jié)的UDP報文,出現(xiàn)overflow the heap_size并導致系統(tǒng)異常重啟怎么解決?

    ;pmT\"(stack_size = 0,task handle = 3fff56c8) overflow the heap_size. 2,異常重啟 ShowCritical:0 ets
    發(fā)表于 07-11 07:55

    STM32H743異常重啟的原因有哪些?

    里面開了一個線程喂狗,喂狗線程優(yōu)先級是最高的,喂狗周期是rt_thread_mdelay 100個毫秒。 現(xiàn)在遇到問題是,10幾臺設(shè)備,每次連續(xù)運行,10幾個小時后就有1-2臺重啟了,由于不能連接
    發(fā)表于 03-27 07:03

    N9H20 GPIO上電竟然是高電平,有沒有辦法解決?

    一直很納悶,GPIO上電竟然是高電平。有沒有辦法解決,是不是要改動啟動程序才能解決問題?
    發(fā)表于 01-17 08:27

    NAS設(shè)備及硬盤的選購與安裝使用

    面對海量的存儲需求難題,眾多企業(yè)與工作室往往會首選NAS存儲解決方案。但市面上NAS設(shè)備與硬盤產(chǎn)品繁多,如何組建適合自己的一套NAS系統(tǒng)也常常令人頭疼。
    的頭像 發(fā)表于 01-07 15:39 ?909次閱讀
    NAS設(shè)備及硬盤的選購與安裝使用

    新火種AI|4年增長13倍!中國AI PC產(chǎn)業(yè)大爆發(fā):千億市場誰來分羹?

    誰能想到,AI大模型的最大受益者之一,竟然是PC。
    的頭像 發(fā)表于 12-12 23:03 ?670次閱讀
    新火種AI|4年增長13倍!中國AI PC產(chǎn)業(yè)大爆發(fā):千億市場誰來分羹?

    如何通過Nginx實現(xiàn)禁止國外IP訪問網(wǎng)站

    最近不少小伙伴反饋自己維護的項目中,經(jīng)常在后臺可以看到來自國外IP的攻擊,令人頭疼。今天浩道跟大家分享如何通過Nginx來實現(xiàn)禁止國外IP訪問網(wǎng)站,確保你網(wǎng)站免遭國外IP攻擊了!
    的頭像 發(fā)表于 12-01 11:12 ?1279次閱讀
    如何通過Nginx實現(xiàn)禁止國外IP訪問網(wǎng)站

    失效分析的原因、機理及其過程介紹

    以IGBT、MOSFET為主的電力電子器件通常具有十分廣泛的應(yīng)用,但廣泛的應(yīng)用場景也意味著可能會出現(xiàn)各種各樣令人頭疼的失效情況,進而導致機械設(shè)備發(fā)生故障!
    的頭像 發(fā)表于 11-24 17:31 ?3006次閱讀
    失效分析的原因、機理及其過程介紹

    linux重啟命令有哪些

    Linux是一種自由和開放源代碼的操作系統(tǒng),被廣泛應(yīng)用于服務(wù)器和嵌入式設(shè)備。在Linux中,有多種命令用于重啟系統(tǒng)。在本文中,我們將詳細介紹常用的Linux重啟命令并解釋每個命令的用途
    的頭像 發(fā)表于 11-17 09:49 ?1837次閱讀

    你不知道的FPC,它的發(fā)展史竟然是這樣的!

    你不知道的FPC,它的發(fā)展史竟然是這樣的!
    的頭像 發(fā)表于 11-15 10:48 ?864次閱讀

    使用emSim輕松地進行自動化測試

    對于嵌入式或本地解決方案來說,軟件測試似乎是一件令人頭疼的事情,但事實并非如此!
    的頭像 發(fā)表于 11-10 11:14 ?476次閱讀
    使用emSim輕松地進行自動化測試

    介紹一種前饋形式的振蕩控制器(上)

    在控制指令下達之后,震蕩現(xiàn)象往往是個令人頭疼的問題,超調(diào)可能會帶來物理系統(tǒng)損害,從振動形式達到穩(wěn)態(tài)時間需要很長時間等問題。
    的頭像 發(fā)表于 11-07 17:12 ?573次閱讀
    介紹一種前饋形式的振蕩控制器(上)

    程序員節(jié) | 今年程序員們都想要的禮物竟然是……

    原文標題:程序員節(jié) | 今年程序員們都想要的禮物竟然是…… 文章出處:【微信公眾號:微軟科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
    的頭像 發(fā)表于 10-24 10:35 ?412次閱讀
    程序員節(jié) | 今年程序員們都想要的禮物<b class='flag-5'>竟然是</b>……