客退机开不机异常分析
来源:互联网 发布:超链接宣传单制作软件 编辑:程序博客网 时间:2024/06/05 19:30
客退机出现了开不机的现象一直定着开机logo界面。
刷入eng的boot.img,可以连上usb,抓出android 和 kernel log部分信息如下 :
main.log :
1-01 08:00:47.036 932 949 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: ActivityManager
01-01 08:00:47.036 932 949 E AndroidRuntime: java.lang.RuntimeException: Unable to get provider com.android.providers.settings.SettingsProvider: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:5434)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.app.ActivityThread.acquireProvider(ActivityThread.java:5050)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.app.ContextImpl$ApplicationContentResolver.acquireProvider(ContextImpl.java:2004)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.content.ContentResolver.acquireProvider(ContentResolver.java:1501)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.provider.Settings$NameValueCache.lazyGetProvider(Settings.java:1315)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.provider.Settings$NameValueCache.getStringForUser(Settings.java:1369)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.provider.Settings$Global.getStringForUser(Settings.java:8507)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.provider.Settings$Global.getString(Settings.java:8496)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.provider.Settings$Global.getInt(Settings.java:8563)
01-01 08:00:47.036 932 949 E AndroidRuntime: at com.android.server.am.ActivityManagerService$20.run(ActivityManagerService.java:13766)
01-01 08:00:47.036 932 949 E AndroidRuntime: at com.android.server.am.ActivityManagerService.addErrorToDropBox(ActivityManagerService.java:13806)
01-01 08:00:47.036 932 949 E AndroidRuntime: at com.android.server.am.ActivityManagerService.handleApplicationWtfInner(ActivityManagerService.java:13583)
01-01 08:00:47.036 932 949 E AndroidRuntime: at com.android.server.am.ActivityManagerService$19.run(ActivityManagerService.java:13555)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:815)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:104)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.os.Looper.loop(Looper.java:207)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.os.HandlerThread.run(HandlerThread.java:61)
01-01 08:00:47.036 932 949 E AndroidRuntime: at com.android.server.ServiceThread.run(ServiceThread.java:46)
01-01 08:00:47.036 932 949 E AndroidRuntime: Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:212)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:196)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:836)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:821)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:714)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:576)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:223)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
01-01 08:00:47.036 932 949 E AndroidRuntime: at com.android.providers.settings.SettingsProvider$SettingsRegistry.migrateAllLegacySettingsIfNeeded(SettingsProvider.java:1577)
01-01 08:00:47.036 932 949 E AndroidRuntime: at com.android.providers.settings.SettingsProvider$SettingsRegistry.<init>(SettingsProvider.java:1400)
01-01 08:00:47.036 932 949 E AndroidRuntime: at com.android.providers.settings.SettingsProvider.onCreate(SettingsProvider.java:219)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.content.ContentProvider.attachInfo(ContentProvider.java:1801)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.content.ContentProvider.attachInfo(ContentProvider.java:1776)
01-01 08:00:47.036 932 949 E AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:5431)
01-01 08:00:47.036 932 949 E AndroidRuntime: ... 17 more
。。。
kernel log:
Line 2562: [ 4.956290] <1>.(1)[194:init]fs_mgr: check_fs(): mount(/dev/block/platform/mtk-msdc.0/11230000.msdc0/by-name/userdata,/data,ext4)=-1: Invalid argument
Line 2614: [ 5.2147[ 5.235339] <1>.(1)[194:init]fs_mgr: fs_mgr_mount_all(): possibly an encryptable blkdev /dev/blocSTOP<12><0x0> Error<0> Resp<0x0> <- msdc_dump_trans_error() : L<6610> PID<kworker/1:1><0x3c>
Line 2622: [ 5.374160] <0>.(0)[194:init]EXT4-fs (mmcblk0p23): mounted filesystem with ordered data mode. Opts: nomblk_io_submit,errors=remount-ro
分析从上层来说是settings db文件无法打开,从kernel log来看是userdata分区,即data出现挂载失败,挂载成remount_ro 。
然后尝试push 一些小文件进/data/local/tmp不能pull,显示no space。
但是使用adb shell df 看到机器是有460M多可用空间,显然不是没空间 。
把kernel代码映射到fs_mgr.c中去看,确实是出现了异常 。
可见,文件系统挂载跑到异常error的代码中去了。然后正常挂载是挂载ext4文件系统格式,反正挂载不上,就remout_ro .
故不能读写就是提示没空间错误 。
当然该问题分析,都是客户机器出现问题后的事后分析,只能分析到,什么原因导致开不机,是什么问题。
但是怎么操作导致的,显然客户在出问题之前不能抓来一个现场的日志 。
照理来说flash是比较稳定的,但是怎么说呢,机器冷着了,热着了,摔了还可能有轻微虚焊的机器,都有可能问题。 出现问题的原因只要客户不说,怎么也无法得知,不过公司给客户做了退机处理 。已经很人性化了。
- 客退机开不机异常分析
- 异常分析
- java异常机制分析
- java 异常处理分析
- 异常的Rethrow分析
- struts 常见异常分析
- 深入分析异常机制!
- 深入分析异常机制!
- ConcurrentModificationException 的异常分析
- ConcurrentModificationException 的异常分析
- vxworks异常分析
- WINCE 驱动异常分析
- 分析堆栈,处理异常
- ConcurrentModificationException 的异常分析
- vxworks异常分析方法
- root'@'localhost 异常分析
- 网页异常分析报告
- JNI各种异常分析
- MyBatis入门(一)
- 10027---Linux 查看本机IP地址
- Retrofit原理浅析
- RF+Appium 测试webview:用户注册
- python3 与 Django 连接数据库:Error loading MySQLdb module: No module named 'MySQLdb'
- 客退机开不机异常分析
- 第一个.so文件
- 使用SUI与JQuery冲突的解决方法
- 干货:细数视频交友SDK的开放策略
- node error
- nginx 配置访问框架yaf,yii,laravel,thinkphp
- 阿里安全潘多拉实验室首先完美越狱苹果iOS 11.2
- 软件工程概论知识总结
- MIT-BIH Arrhythmia Database 数据下载及matlab处理程序