I managed to narrow down the issue to a minimum amount of steps to reproduce:
By doing some debugging the culprit seems to be that the serialized data is frozen (by storage.lock() upon deactivating the package), so if/when package is activated within the same window session again the package get activated with the very same frozen data.
Also, locked state is never reset/set to false upon storage.init().
I'll provide a PR promptly with a proposed solution.
Atom's error output upon thrown error:
Atom Version: 1.12.7
Electron Version: 1.3.13
System: Mac OS X 10.10.5
Thrown From: file-icons package, v2.0.2
Failed to activate the file-icons package
At Cannot delete property '/tmp/file-outside-project-dirs.txt' of #<Object>
TypeError: Cannot delete property '/tmp/file-outside-project-dirs.txt' of #<Object>
at Storage.deletePath (/Users/viddo/.atom/packages/file-icons/lib/storage.js:220:21)
at Storage.clean (/Users/viddo/.atom/packages/file-icons/lib/storage.js:37:10)
at Storage.init (/Users/viddo/.atom/packages/file-icons/lib/storage.js:27:8)
at Object.activate (/Users/viddo/.atom/packages/file-icons/lib/main.js:15:11)
at Package.module.exports.Package.activateNow (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:184:19)
at /Applications/Atom.app/Contents/Resources/app.asar/src/package.js:157:32
at Package.module.exports.Package.measure (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:92:15)
at /Applications/Atom.app/Contents/Resources/app.asar/src/package.js:150:26
at Package.module.exports.Package.activate (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:147:34)
at PackageManager.module.exports.PackageManager.activatePackage (/Applications/Atom.app/Contents/Resources/app.asar/src/package-manager.js:550:34)
at /Applications/Atom.app/Contents/Resources/app.asar/src/package-manager.js:352:19
at /Applications/Atom.app/Contents/Resources/app.asar/src/config.js:635:20
at Function.module.exports.Emitter.simpleDispatch (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:25:14)
at Emitter.module.exports.Emitter.emit (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:129:28)
at Config.module.exports.Config.emitChangeEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/config.js:826:29)
at Config.module.exports.Config.setRawValue (/Applications/Atom.app/Contents/Resources/app.asar/src/config.js:612:19)
at Config.module.exports.Config.set (/Applications/Atom.app/Contents/Resources/app.asar/src/config.js:227:14)
at Config.module.exports.Config.removeAtKeyPath (/Applications/Atom.app/Contents/Resources/app.asar/src/config.js:377:12)
at Package.module.exports.Package.enable (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:77:26)
at PackageManager.module.exports.PackageManager.enablePackage (/Applications/Atom.app/Contents/Resources/app.asar/src/package-manager.js:173:14)
at HTMLButtonElement.<anonymous> (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/settings-view/lib/package-card.js:358:27)
at HTMLButtonElement.dispatch (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/jquery/dist/jquery.js:4435:9)
at HTMLButtonElement.elemData.handle (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/jquery/dist/jquery.js:4121:28)
-1:02.3.0 blur (div.settings-view.pane-item)
-1:00.9.0 editor:consolidate-selections (atom-text-editor.editor.mini.is-focused)
-1:00.9.0 core:cancel (atom-text-editor.editor.mini.is-focused)
22x -1:00.4.0 blur (atom-text-editor.editor.mini.is-focused)
{
"core": {
"automaticallyUpdate": false,
"customFileTypes": {
"source.ini": [
".buckconfig",
".flowconfig"
],
"source.json": [
".arcconfig",
"BUCK.autodeps"
],
"source.python": [
"BUCK"
]
},
"disabledPackages": [
"atom-html-preview",
"atom-ternjs",
"linter-scss-lint",
"redacted",
"source-preview",
"symbols-tree-view",
"autosave",
"language-toml",
"language-ruby-on-rails",
"language-php",
"language-objective-c",
"language-perl",
"language-java",
"language-go",
"language-csharp",
"language-clojure",
"linter-coffeelint",
"minimap-pigments",
"minimap-linter",
"minimap-git-diff",
"minimap-find-and-replace",
"minimap-autohide",
"minimap",
"atom-beautify",
"vim-mode",
"about",
"background-tips"
],
"followSymlinks": true,
"packagesWithKeymapsDisabled": [
"fonts"
],
"projectHome": "/Users/viddo/src/",
"telemetryConsent": "limited"
},
"file-icons": {}
}
# User
atom-beautify, v0.29.16 (inactive)
atom-ternjs, v0.16.1 (inactive)
autocomplete-paths, v1.0.5 (active)
elm-format, v2.1.0 (active)
elmjutsu, v2.13.2 (active)
erb-helper, v1.0.1 (inactive)
file-icons, v2.0.2 (inactive)
fonts, v1.7.0 (active)
gfm-lists, v1.0.0 (inactive)
git-blame, v0.4.11 (inactive)
highlight-selected, v0.11.2 (active)
hyperclick, v0.0.39 (active)
indentation-indicator, v1.0.0 (active)
js-hyperclick, v1.10.0 (active)
language-babel, v2.49.3 (active)
language-elm, v1.5.0 (active)
language-generic-config, v1.3.0 (active)
language-stylus, v0.2.0 (active)
linter, v1.11.21 (active)
linter-coffeelint, v1.2.1 (inactive)
linter-elm-make, v0.18.1 (active)
linter-erb, v1.0.3 (active)
linter-eslint, v8.0.0 (active)
linter-flow, v5.5.0 (active)
linter-js-standard, v3.7.0 (active)
linter-js-yaml, v1.2.6 (inactive)
linter-jsonlint, v1.3.0 (active)
linter-ruby, v1.2.4 (inactive)
linter-scss-lint, v3.0.4 (inactive)
minimap, v4.26.3 (inactive)
minimap-autohide, v0.10.1 (inactive)
minimap-find-and-replace, v4.5.1 (inactive)
minimap-git-diff, v4.3.1 (inactive)
minimap-linter, v1.6.0 (inactive)
minimap-pigments, v0.2.2 (inactive)
open-this, v0.3.0 (inactive)
open-vim, v0.2.3 (inactive)
pigments, v0.38.0 (active)
preview, v0.17.0 (inactive)
quick-file-actions, v0.1.1 (inactive)
recent-files-fuzzy-finder, v0.2.4 (active)
redacted, v0.5.0 (inactive)
soft-wrap-indicator, v1.0.1 (active)
sort-lines, v0.14.0 (inactive)
source-preview, v0.5.0 (inactive)
standard-formatter, v2.6.0 (active)
symbols-tree-view, v0.13.2 (inactive)
toggle-markdown-task, v0.5.0 (inactive)
toggle-quotes, v1.0.0 (inactive)
vim-mode, v0.65.2 (inactive)
vim-mode-plus, v0.69.0 (active)
zentabs, v0.8.7 (active)
atom-dark-syntax, v0.27.0 (inactive)
atom-dark-ui, v0.52.0 (inactive)
atom-light-syntax, v0.28.0 (inactive)
atom-light-ui, v0.45.0 (inactive)
base16-tomorrow-dark-theme, v1.3.0 (inactive)
base16-tomorrow-light-theme, v1.3.0 (inactive)
one-dark-ui, v1.6.2 (active)
one-light-ui, v1.6.2 (inactive)
one-dark-syntax, v1.5.0 (active)
one-light-syntax, v1.5.0 (inactive)
solarized-dark-syntax, v1.0.5 (inactive)
solarized-light-syntax, v1.0.5 (inactive)
about, v1.7.0 (inactive)
archive-view, v0.62.0 (active)
autocomplete-atom-api, v0.10.0 (active)
autocomplete-css, v0.13.1 (active)
autocomplete-html, v0.7.2 (active)
autocomplete-plus, v2.31.4 (active)
autocomplete-snippets, v1.11.0 (active)
autoflow, v0.27.0 (inactive)
autosave, v0.23.1 (inactive)
background-tips, v0.26.1 (inactive)
bookmarks, v0.42.0 (active)
bracket-matcher, v0.82.2 (active)
command-palette, v0.39.0 (inactive)
deprecation-cop, v0.54.1 (active)
dev-live-reload, v0.47.0 (active)
encoding-selector, v0.22.0 (active)
exception-reporting, v0.40.0 (active)
find-and-replace, v0.202.2 (inactive)
fuzzy-finder, v1.4.0 (active)
git-diff, v1.1.0 (active)
go-to-line, v0.31.0 (inactive)
grammar-selector, v0.48.2 (active)
image-view, v0.60.0 (active)
incompatible-packages, v0.26.1 (active)
keybinding-resolver, v0.35.0 (active)
line-ending-selector, v0.5.0 (active)
link, v0.31.2 (inactive)
markdown-preview, v0.158.8 (active)
metrics, v1.1.2 (active)
notifications, v0.65.1 (active)
open-on-github, v1.2.1 (inactive)
package-generator, v1.0.1 (inactive)
settings-view, v0.243.1 (active)
snippets, v1.0.4 (active)
spell-check, v0.68.4 (active)
status-bar, v1.4.1 (active)
styleguide, v0.47.2 (active)
symbols-view, v0.113.1 (inactive)
tabs, v0.103.0 (active)
timecop, v0.33.2 (active)
tree-view, v0.210.0 (active)
update-package-dependencies, v0.10.0 (active)
welcome, v0.35.1 (active)
whitespace, v0.35.0 (active)
wrap-guide, v0.38.2 (active)
language-c, v0.54.0 (active)
language-clojure, v0.22.1 (inactive)
language-coffee-script, v0.48.0 (active)
language-csharp, v0.13.0 (inactive)
language-css, v0.40.1 (active)
language-gfm, v0.88.0 (active)
language-git, v0.15.0 (active)
language-go, v0.43.0 (inactive)
language-html, v0.47.1 (active)
language-hyperlink, v0.16.1 (active)
language-java, v0.24.0 (inactive)
language-javascript, v0.122.0 (active)
language-json, v0.18.3 (active)
language-less, v0.29.6 (active)
language-make, v0.22.2 (active)
language-mustache, v0.13.0 (active)
language-objective-c, v0.15.1 (inactive)
language-perl, v0.37.0 (inactive)
language-php, v0.37.3 (inactive)
language-property-list, v0.8.0 (active)
language-python, v0.45.1 (active)
language-ruby, v0.70.2 (active)
language-ruby-on-rails, v0.25.1 (inactive)
language-sass, v0.57.0 (active)
language-shellscript, v0.23.0 (active)
language-source, v0.9.0 (active)
language-sql, v0.25.0 (active)
language-text, v0.7.1 (active)
language-todo, v0.29.1 (active)
language-toml, v0.18.1 (inactive)
language-xml, v0.34.12 (active)
language-yaml, v0.27.1 (active)
# Dev
No dev packages
Still occurs in 2.0.9 at initial activation (immediately after install). Restarting atom solves the problem.
@kalsan Bugs will naturally be floating around until Atom is restarted. People shouldn't report a bug after upgrading until they've restarted.
But (as far as I know) I didn't have it installed previously. I hit it after installing it for the first time, as @kalsan said. After I restarted Atom, everything appears to be fine. The link from the error brought me to this issue.
Same thing here. Error msg with link as described by @mikebishop and first time install. Got no prompt to restart atom.
Sounds like a separate issue altogether then, although I've no idea why it's linking to this one...
Filed a separate issue, then.
鈥lthough I've no idea why it's linking to this one...
According to a comment by the concerned atom/notifications package: https://github.com/atom/notifications/issues/82#issuecomment-117298641
Currently, issue equality is based on the title. If the titles are the same, then the issue is assumed to be the same. The problem is that undefined is not a function is the vaguest error message ever. In some later version of chrome this should change.
I'll write a comment on that issue thread since it seems to be somewhat related.
Most helpful comment
Filed a separate issue, then.