Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fails to install with "this.addon._repositoryAddon is null", TB 45.2.0 + AddOn TorBirdy, Ubuntu 16.04 #18

Closed
tomreyn opened this issue Sep 10, 2016 · 14 comments

Comments

@tomreyn
Copy link

tomreyn commented Sep 10, 2016

Hi Brummolix,

I'm trying to install v9.9.9.2 on ThunderBird 45.2.0 on Ubuntu 16.04 (amd64), using the GUI option on the addon list to install an extension from a file.

On the terminal I started TB from, I get to see these messages (I cannot tell which add-on causes them):

*************************
A coding exception was thrown and uncaught in a Task.

Full message: TypeError: this.addon._repositoryAddon is null
Full stack: AddonInstall.prototype.loadManifest<@resource://gre/modules/addons/XPIProvider.jsm:5563:5
TaskImpl_run@resource://gre/modules/Task.jsm:315:40
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:933:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:812:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:1

*************************
*************************
A coding exception was thrown in a Promise rejection callback.
See https://developer.mozilla.org/Mozilla/JavaScript_code_modules/Promise.jsm/Promise

Full message: TypeError:  is not iterable
Full stack: AddonInstall.prototype.initLocalInstall/<@resource://gre/modules/addons/XPIProvider.jsm:5174:1
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:936:21
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:812:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:1

*************************
*************************
A coding exception was thrown and uncaught in a Task.

Full message: TypeError: this.addon._repositoryAddon is null
Full stack: AddonInstall.prototype.loadManifest<@resource://gre/modules/addons/XPIProvider.jsm:5563:5
TaskImpl_run@resource://gre/modules/Task.jsm:315:40
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:933:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:812:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:1

*************************
*************************
A coding exception was thrown in a Promise rejection callback.
See https://developer.mozilla.org/Mozilla/JavaScript_code_modules/Promise.jsm/Promise

Full message: TypeError:  is not iterable
Full stack: AddonInstall.prototype.initLocalInstall/<@resource://gre/modules/addons/XPIProvider.jsm:5174:1
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:936:21
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:812:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:1

*************************
*************************
A coding exception was thrown and uncaught in a Task.

Full message: TypeError: this.addon._repositoryAddon is null
Full stack: AddonInstall.prototype.loadManifest<@resource://gre/modules/addons/XPIProvider.jsm:5563:5
TaskImpl_run@resource://gre/modules/Task.jsm:315:40
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:933:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:812:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:1

*************************
*************************
A coding exception was thrown in a Promise rejection callback.
See https://developer.mozilla.org/Mozilla/JavaScript_code_modules/Promise.jsm/Promise

Full message: TypeError:  is not iterable
Full stack: AddonInstall.prototype.initLocalInstall/<@resource://gre/modules/addons/XPIProvider.jsm:5174:1
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:936:21
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:812:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:1

*************************

On ThunderBird's error console, the following message displays:

Timestamp: 10.09.2016 20:31:43
Error: A promise chain failed to handle a rejection. Did you forget to '.catch', or did you forget to 'return'?
See https://developer.mozilla.org/Mozilla/JavaScript_code_modules/Promise.jsm/Promise

Date: Sat Sep 10 2016 20:28:27 GMT+0200 (CEST)
Full Message: TypeError:  is not iterable
Full Stack: AddonInstall.prototype.initLocalInstall/<@resource://gre/modules/addons/XPIProvider.jsm:5174:1
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:936:21
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:812:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:1

File: resource://gre/modules/addons/XPIProvider.jsm
Line: 5174
Source code:
5174

As a result, AAR fails to install, no message is provided on the GUI (with the exception of the above entry in error console) as to why or that it fails.

FWIW, I had previously installed AAR (v0.9.9.1 IIRC), which always showed up as "null" on the extension list (and was so crashy that I could not actually use it).

If you have any questions or need more thorough debugging info, please ping me here or on FreeNode (same name).

Thanks, also for your continued work on keeping this extension alive,

Tom

@tomreyn
Copy link
Author

tomreyn commented Sep 10, 2016

Initial post updated (more console output).

@Brummolix
Copy link
Owner

I can not reproduce the error in Ubuntu 16.04 LTS with TB 45.2.0

Does the same error occur when you install directly from TB (Extras\AddOns > Search > search for AutoarchiveReloaded > Install

Where do you got the xpi file from?
Can you upload it here, then I can check if it is corrupted in any way.

@tomreyn
Copy link
Author

tomreyn commented Sep 11, 2016

A similar situation occurs when I install from TB (Extras\AddOns > Search > search for AutoarchiveReloaded > Install). It stays on "downloading" (which turns from white to a solid blue fill), then nothing happens on the GUI and the error console reports:

Timestamp: 12.09.2016 01:03:16
Error: A promise chain failed to handle a rejection. Did you forget to '.catch', or did you forget to 'return'?
See https://developer.mozilla.org/Mozilla/JavaScript_code_modules/Promise.jsm/Promise

Date: Mon Sep 12 2016 01:03:05 GMT+0200 (CEST)
Full Message: TypeError:  is not iterable
Full Stack: AddonInstall.prototype.onStopRequest/<@resource://gre/modules/addons/XPIProvider.jsm:5811:1
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:936:21
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:812:7
this.PromiseWalker.scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:746:1

File: resource://gre/modules/addons/XPIProvider.jsm
Line: 5811
Source code:
5811

When I access the list of installed add-ons, I get to see an add-on called 'null' at this point. double-clicking it does nothing. On the right hand side it says "downloading".

Other add-ons install fine using both the search + download integrated into Thunderbird, as well as by browsing for an XPI file and installing that.

I no longer have the XPIs I used yesterday available, but I had downloaded it from AMO using HTTPS (and the certificate was valid). I had previously downloaded and installed (and later uninstalled) the GitHub Release XPI as well (I removed it since I could not get it to work - probably the same issue).

I'll be happy to send along (not publicly) the output of "information for error recovery" which Thunderbird offers to produce on the Help menu, if this will be of any use. Please let me know, if so, and how to transfer it outside of GitHub.

@Brummolix
Copy link
Owner

What is the value of "general.useragent.locale" and "intl.locale.matchOS"
(you find it under Edit\properties > Extended > edit config > search for "general.useragent.locale" / "general.useragent.locale")

Do you start TB with a special locale (special shell script or similar)?
Can you install any other extensions?

@tomreyn
Copy link
Author

tomreyn commented Sep 12, 2016

general.useragent.locale=en
intl.locale.matchOS=true

I start Thunderbird using the default startup mechanism (on this Xubuntu 16.04), which invokes thunderbird %u (where %u is an optional URI) when you click on the application icon.

$ file `which thunderbird`
/usr/bin/thunderbird: symbolic link to ../lib/thunderbird/thunderbird.sh
$ file `which thunderbird`
/usr/bin/thunderbird: symbolic link to ../lib/thunderbird/thunderbird.sh
$ file $(readlink -f `which thunderbird`)
/usr/lib/thunderbird/thunderbird.sh: POSIX shell script, ASCII text executable
$ head /usr/lib/thunderbird/thunderbird.sh
#!/bin/sh

set -e

# Firefox launcher containing a Profile migration helper for
# temporary profiles used during alpha and beta phases.

# Authors:
#  Alexander Sack <asac@jwsdot.com>
#  Fabien Tassin <fta@sofaraway.org>
$ sha512sum /usr/lib/thunderbird/thunderbird.sh
28c3d0b3ce405d2e1c7c91aafea0dc0eecaee0dcfa9484ba14f53dcc3848e08575c60bc15376c254a8105fb9832aba77977e3abbb5e92546da73f0fa648b1d75  /usr/lib/thunderbird/thunderbird.sh

I can install, update and uninstall other extensions fine (whether or not the "null" AutoArchiveReloaded extension is in its half installed state). I did this with 2 other extensions just to make sure it still works in general.

Since you asked about locale related settings: I have the "Dictionary Switcher" extension installed, which, I think, may modify locale settings during runtime. The other possibly locale modifying extension I have installed is TorBirdy. Besides those, I have ten other extensions installed (one of which is deactivated).

@tomreyn
Copy link
Author

tomreyn commented Sep 12, 2016

Further testing shows that this is indeed locale related. My default user locale is this:

$ locale
LANG=de_DE.UTF-8
LANGUAGE=de_DE
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=

Using this locale, installing AutoArchiveReloaded fails with the error messages provided here previously ("this.addon._repositoryAddon is null" and "[..] is not iterable").

If, however, I start Thunderbird using

$ LANG=C thunderbird

then I can install the extension just fine, confirm, that it is listed properly in the extension list, and can access its preferences screen as well. No error is recorded to the error console during this process.

If I then start TB again using my default locale (i.e. without the LANG=C), AutoArchive Reloaded again shows up as "null" on the extension list. However, it now shows with a properly localized description text, and I can access its (properly localized) preferences menu as well.

Trying to do an auto-archiving run results in this message written to error log, though:

12.9.2016, 21:58:42 - AutoarchiveReloaded - ERROR: TypeError: this.view.dbView is null; Source: 'chrome://messenger/content/folderDisplay.js'; Line: 1449; code: (new TypeError("this.view.dbView is null", "chrome://messenger/content/folderDisplay.js", 1449)); stack: FolderDisplayWidget_hintAboutToDeleteMessages@chrome://messenger/content/folderDisplay.js:1449:5
FolderDisplayWidget_hintMassMoveStarting@chrome://messenger/content/folderDisplay.js:1465:5
BatchMessageMover.prototype.archiveMessages@chrome://messenger/content/mailWindowOverlay.js:1628:5
AutoarchiveReloadedOverlay.SearchListener.prototype.archiveMessages@chrome://autoarchivereloaded/content/overlay.js:304:9
AutoarchiveReloadedOverlay.SearchListener.prototype.onSearchDone@chrome://autoarchivereloaded/content/overlay.js:386:18

(Please let me know if this is actually a different issue which should be reported separately)

Update: On a repeat run (with the extensions' own logging to file enabled), auto-archiving actually works.

=> second issue moved to #19

@Brummolix
Copy link
Owner

The second error is probably the same as #1, #5 and #7

@Brummolix
Copy link
Owner

I can reproduce locale behavior, if I install TorBirdy...

@Brummolix Brummolix changed the title Fails to install with "this.addon._repositoryAddon is null", TB 45.2.0 Fails to install with "this.addon._repositoryAddon is null", TB 45.2.0 + AddOn TorBirdy Sep 12, 2016
@Brummolix
Copy link
Owner

I have no glue what TorBirdy is changing in TB. Maybe you can post this as an error to TorBirdy?
Also the error message you have shown above is an error in TB itself (inside XPIProvider.jsm). It should not fail silently. You may post this as an TB error at https://bugzilla.mozilla.org/ (but to be honest I don't think they will do much about it...)
At the moment I don't know how to fix this...

@Brummolix Brummolix changed the title Fails to install with "this.addon._repositoryAddon is null", TB 45.2.0 + AddOn TorBirdy Fails to install with "this.addon._repositoryAddon is null", TB 45.2.0 + AddOn TorBirdy, Ubuntu 16.04 Sep 12, 2016
@tomreyn
Copy link
Author

tomreyn commented Sep 12, 2016

The TB preferences changed by TorBirdy are documented at https://trac.torproject.org/projects/tor/wiki/torbirdy/changes - would you have any suggestion on which of those might cause AAR installation to fail with a non-C locale? Or do you think it does something else which breaks installation of AAR (only, not any other extensions as far as we can tell at this point)?

Brummolix added a commit that referenced this issue Sep 12, 2016
The extension TorBirdy changed the config value "extensions.getAddons.cache.enabled"
Now the AddOn could not be displayed.
The locales also need a name (even if the name is the same as without localization).

I also added the homepage url as localized url.
@Brummolix Brummolix removed the wontfix label Sep 12, 2016
@Brummolix
Copy link
Owner

Thank you, this was a good overview about TorBirdy.
The value that was changed and that makes the error was "extensions.getAddons.cache.enabled"

I think I also found a way to prevent the error now.

Please try beta version under https://github.com/Brummolix/AutoarchiveReloaded/releases/download/0.9.9.3_beta/AutoarchiveReloaded_0.9.9.3_beta.xpi

@tomreyn
Copy link
Author

tomreyn commented Sep 12, 2016

This one works fine for me.
Thanks a lot!

Brummolix added a commit that referenced this issue Sep 13, 2016
Issues:
#1 #5 #7 #18

When dbView is null I try to select the folder to archive. When TorBirdy was installed the selectFolder did not work.
I changed this to gFolderDisplay.show as this one worked with TorBirdy.
@Brummolix
Copy link
Owner

I have splitted the second error ("this.view.dbView is null") to a separate issue: #19
Please check this one and add your notes there.

I will close this issue as it seem to be solved with the next version.

@Brummolix
Copy link
Owner

Released via 0.9.9.3 (may take some time until it is reviewed and accepted by Mozilla).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants