-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
[HOLD for payment 2023-10-18] [$500] Log in - Can't login with google button when open 2 tabs #26161
Comments
Triggered auto assignment to @flaviadefaria ( |
Bug0 Triage Checklist (Main S/O)
|
@flaviadefaria Uh oh! This issue is overdue by 2 days. Don't forget to update your issues! |
@flaviadefaria Still overdue 6 days?! Let's take care of this! |
Job added to Upwork: https://www.upwork.com/jobs/~0185c017a22df15531 |
Current assignee @flaviadefaria is eligible for the External assigner, not assigning anyone new. |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @robertKozik ( |
I want to be a contributor |
📣 @naveedauliat! 📣
|
Contributor details |
|
Contributor details |
✅ Contributor details stored successfully. Thank you for contributing to Expensify! |
Hello @naveedauliat, if you'd like to contribute to this issue, please feel free to draft a proposal with your suggested solution. For additional details on contributing, you can refer to our contribution guidelines. |
Contributor details Your Expensify account email: selyatinismet@gmail.com |
✅ Contributor details stored successfully. Thank you for contributing to Expensify! |
The issue is caused by ActiveClientManager picking the most recently opened browser tab as the Leader Client, meaning all the request processing must be handled through the most recently opened tab to keep all tabs synchronized. Here's the SequentialQueue line that checks if the current client is the leader or not, then processes the request if it's the leader, otherwise it doesn't take any action. Removing the leader check causes issues in the app, as demonstrated here. 2023-09-07.03-58-06.mp4Using the latest opened tab works as displayed here: 2023-09-07.04-05-16.mp4The most straightforward solution to this problem is disabling the Login form on the page that's not the leader and displaying a message to the user such as The complex path involves implementing a synchronization method. This method would include polling the persistent data stored in IndexDB and removing the task that is executed by the current tab to prevent it from being executed by other tabs. I'll prepare a PR with the straightforward solution, since the complex path doesn't seem to be a viable solution, it would most likely require quite a bit of changes on how the queue is handled. However I might be wrong since I've only dabbled my feet in the project for merely 3 hours. |
Hello @Selyatin! Your input is greatly appreciated. Could you please create your proposal using this template? I'll review it, and if you're assigned, you can proceed with preparing a PR. You can find additional information in our contributing guidelines. |
ProposalPlease re-state the problem that we are trying to solve in this issue.When a user opens multiple tabs of the login page and tries to login with any tab other than the most recently opened one the page will keep in loading state and will not issue any requests to the back-end. What is the root cause of that problem?We only make requests from the leader tab which is the most recently opened one. Thus meaning if the user uses any tab that is not the leader, then the app will not make any requests to make sure all tabs are properly synchronized. What changes do you think we should make in order to solve the problem?Informing the user that they've opened a separate tab and that they should use that tab to Login would be the best option. Such as What alternative solutions did you explore? (Optional)We could implement a more complex synchronization method which could be done via fetching the |
@robertKozik, @flaviadefaria Whoops! This issue is 2 days overdue. Let's get this updated quick! |
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.3.80-3 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue: If no regressions arise, payment will be issued on 2023-10-18. 🎊 After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.
For reference, here are some details about the assignees on this issue:
As a reminder, here are the bonuses/penalties that should be applied for any External issue:
|
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
|
Payment Summary:
@Selyatin - $500 - 50% penalty = $250 |
@ Le Thi Thu Thuy isn't an actual GH handle so I can't communicate with or pay this contributor. |
@thuyle04 is the correct GH handle (found on slack) |
Bump @thuyle04! |
Contributor details |
|
Contributor details |
✅ Contributor details stored successfully. Thank you for contributing to Expensify! |
@thuyle04 thanks! I sent you an offer, now I just need you to accept it so that I can process your payment. |
@flaviadefaria I think I will be paid 250 USD instead of 50 USD (old payment structure ) because the new payment structure was just changed on August 31 while the bug was approved before that. |
Cool, np! You can accept the contract and I'll pay the 200 difference as a bonus. Can you let me know once you have accepted it? |
@thuyle04 you've been paid so closing this. |
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
Action Performed:
Expected Result:
Can login to main space of Expensify
Actual Result:
The page hangs, can't login
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Version Number: v1.3.57-5
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Hang.Login.mp4
Login.mp4
bandicam.2023-08-29.00-26-57-998.mp4
Expensify/Expensify Issue URL:
Issue reported by: @ Le Thi Thu Thuy
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1692681137050609
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: