有一天,我的firefox突然挂掉了。症状是chinese language pack无效,而且pentadactyl和ABP等一部分addons全都挂掉了——但是disable-enable之后又可以用,而且另外一些Addons居然好好的……

(中略)

解决:

用df检查磁盘空间,然后把/目录最大的文件夹干掉。顺便推荐一个软件:xdiskusage


没用的部分:

  1. 重新安装firefox(因为吃过好几次yaourt的亏)

  2. 无效。上Google,查资料,关键词”firefox 23 addon enable|disable”之类

  3. 尝试各种方法。无效

  4. 备份~/.mozilla/firefox/<乱码>.defaultprofile.ini

  5. (愤怒地)reset profile

  6. 问题没有解决

  7. 怀疑为权限问题,观察权限无异常。曾想递归把整个profile目录改为777~~(beast mode)~~,然后(用优秀的涵养)忍住了

  8. 干掉整个~/.mozilla/firefox/目录

  9. 出现欢迎界面(英文)

  10. 高兴地关闭Firefox,然后发现无法再次打开

  11. 尝试在terminal中打开,没有输出可用信息。顺便推荐tilda

  12. 观察\home目录,剩余空间2.0G
    <–最接近真相的位置,谁叫文件管理器(推荐spaceFM)看磁盘空间这么容易呢

  13. 到备份的<乱码>.default文件夹乱翻,找到一堆log,其中extensions.log有一段是这样的:

    2013-09-07 14:04:58 ERROR addons.xpi-utils: SQL error 13: database or disk is full at resource://gre/modules/XPIProvider.jsm -> resource://gre/modules/XPIProviderUtils.js:204
    2013-09-07 14:04:58 ERROR addons.xpi: Error processing file changes: [Exception… “Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [mozIStorageStatement.execute]” nsresult: “0x80004005 (NS_ERROR_FAILURE)” location: “JS frame :: resource://gre/modules/XPIProvider.jsm -> resource://gre/modules/XPIProviderUtils.js :: XPIDB_rollbackTransaction :: line 457” data: no] at resource://gre/modules/XPIProvider.jsm -> resource://gre/modules/XPIProviderUtils.js:457
    2013-09-07 14:04:58 ERROR addons.xpi: Error during startup file checks, rolling back any database changes: [Exception… “Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [mozIStorageStatement.execute]” nsresult: “0x80004005 (NS_ERROR_FAILURE)” location: “JS frame :: resource://gre/modules/XPIProvider.jsm -> resource://gre/modules/XPIProviderUtils.js :: XPIDB_commitTransaction :: line 442” data: no] at resource://gre/modules/XPIProvider.jsm -> resource://gre/modules/XPIProviderUtils.js:442
    2013-09-07 14:04:58 ERROR addons.manager: Exception calling provider startup: [Exception… “Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [mozIStorageStatement.execute]” nsresult: “0x80004005 (NS_ERROR_FAILURE)” location: “JS frame :: resource://gre/modules/XPIProvider.jsm -> resource://gre/modules/XPIProviderUtils.js :: XPIDB_rollbackTransaction :: line 457” data: no] at resource://gre/modules/XPIProvider.jsm -> resource://gre/modules/XPIProviderUtils.js:457

  14. 新关键词GET,查询结果乱七八糟。

  15. 怀疑sqlite有上限:database or disk is full

  16. 对于(不会SQL)的一般小市民,再次查询,未果

  17. 注意到脑内自动添加的删除线,删除删除线

  18. 跳至解决部分

总结:

  • 用英文描述问题
  • 上Google
  • 查 log
  • Google that log
  • 意识到以上步骤其实很有可能没用
  • 静静等待灵感的降临
  • (bonus) 不要安装 Matlab,特别是在\文件夹只有30G的情况下