Exchange autodiscover authentication failures no longer handled correctly [regression]
Categories
(Thunderbird :: Account Manager, defect)
Tracking
(thunderbird_esr115? affected, thunderbird_esr128? affected, thunderbird128 affected, thunderbird129 affected, thunderbird130 affected)
People
(Reporter: neil, Assigned: neil)
References
(Regression)
Details
(Keywords: regression)
Attachments
(2 files, 2 obsolete files)
|
6.29 KB,
patch
|
BenB
:
review+
|
Details | Diff | Splinter Review |
|
4.93 KB,
patch
|
BenB
:
review+
|
Details | Diff | Splinter Review |
As of bug 1397646, FetchHTTP can't reliably use statusText any more as a means of detecting network failures, so if the autodiscover server doesn't provide any status text (e.g. because it uses HTTP/2), FetchHTTP now misidentifies these as network failures.
Furthermore, the code path changes caused by bug 1859656 prevent the authentication error from interrupting the autodiscover process like it used to.
| Assignee | ||
Comment 1•1 year ago
|
||
Updated•1 year ago
|
Comment 2•1 year ago
|
||
Thanks for the good patch. The new code is easier to read and more reliable.
Comment 3•1 year ago
|
||
Just a suggestion (not required): Should we use an exception class ExchangeUsernameException like in bug 1907130, to be more explicit about the code path?
Updated•1 year ago
|
Updated•1 year ago
|
| Assignee | ||
Comment 4•1 year ago
|
||
| Assignee | ||
Comment 5•1 year ago
|
||
Updated•1 year ago
|
Updated•1 year ago
|
Comment 6•1 year ago
|
||
Comment on attachment 9413036 [details] [diff] [review]
Addressed review comments
r=BenB
Updated•1 year ago
|
Comment 7•1 year ago
|
||
The problem is worse in TB 115 and the fix needed even more urgently in TB 115 than on trunk. See bug 1907130.
Comment 8•1 year ago
|
||
Thanks for the report and the suggested patches.
Could you please upload them to Phabricator? We don't handle bugzilla patches anymore.
I'm curious, how is this issue present in 115 if the regressors landed in 118 and 126?
Would it be possible to identify only a single regressor? That would be more accurate.
| Assignee | ||
Comment 9•1 year ago
•
|
||
(In reply to Alessandro Castellani from comment #8)
I'm curious, how is this issue present in 115 if the regressors landed in 118 and 126?
Bug 1907130 is only present in 115, but the fix happens to be equivalent to a backport of this fix.
Comment 10•1 year ago
•
|
||
Good question. It's complicated, so I wanted to spare you the details. Happy to explain.
The 115 problem was a race condition which has always been present, but was made very apparent and common only last year, when Office365 disabled Basic auth, which made certain HTTP calls always fail with a 401 (and apparently fail very fast, faster than the ISPDB responds) and triggered this case far more often.
In TB 128, that race does not actually happen, by coincidence, because the new OAuth2 prompt during AutoDiscover waits for user input and blocked the racing function. Nonetheless, we submit the code change for trunk as well, because a) the fix makes the code both more reliable and b) more readable, and c) to allow easier testing of the change on trunk.
In TB 128, there is another regression caused by bug 1397646, which changed the implementation so that XMLHttpRequest.statusText now returns nothing for HTTP2 calls, and this change caused our code to fail. This problem is fixed only in the TB 128 patch and does not apply to TB 115, so we left that part out of the TB 115 patch.
Comment 11•1 year ago
|
||
Thanks for the explanation.
I'm gonna mark Bug 1907130 as duplicate of this one since they're basically tackling the same thing.
Comment 13•1 year ago
|
||
Updated•1 year ago
|
| Assignee | ||
Comment 14•1 year ago
|
||
Comment 15•1 year ago
•
|
||
these two lines seems not to belong in a function that should show the username.
They belong there where they are, because they set the dialog in the state to show the username, be consistent with the state, and re-run the autoconfig after that. Without these lines, the dialog display is in an inconsistant state. Every caller who calls this showExchangeUsername() function must call these lines.
Comment 16•1 year ago
•
|
||
This bug here fixed 2 related, but separate bugs at the same time. On top, the symptom on TB 115 and TB 128 was also different. This caused confusion for the reviewers, causing a stalemate. The patches and fixes were correct, but never reviewed, due to that confusion. To solve that, I now filed 2 separate bugs: bug 1951827 and bug 1951824.
Updated•1 year ago
|
Updated•1 year ago
|
Description
•