Anonymous | Login
Project:
RSS
  
News | My View | View Issues | Roadmap | Summary

View Issue DetailsJump to Notes ] Issue History ] Print ]
ID
0053132
TypeCategorySeverityReproducibilityDate SubmittedLast Update
backport[Retail Modules] Web POSmajorhave not tried2023-07-28 14:342023-08-09 08:49
ReporterAugustoMauchView Statuspublic 
Assigned ToAugustoMauch 
PrioritynormalResolutionfixedFixed in VersionRR23Q3
StatusclosedFix in branchFixed in SCM revision
ProjectionnoneETAnoneTarget VersionRR23Q3
OSAnyDatabaseAnyJava version
OS VersionDatabase versionAnt version
Product VersionSCM revision 
Merge Request Statusapproved
Review Assigned To
OBNetwork customerNo
Support ticket
Regression level
Regression date
Regression introduced in release
Regression introduced by commit
Triggers an Emergency PackNo
Summary

0053132: SynchronizationBuffer.internalFlush does not flush all messages if some endpoints where currently syncing other messages

DescriptionThe internalFlush function of SynchronizationBuffer tries to synchronize all the messages from all the available endpoints. If an endpoint is already synchronizing previous messages, that endpoint will be skipped.

That function is invoked whenever new messages are added to the synchronization buffer, but also externally (i.e. to ensure all messages are synchronized before stopping the synchronization buffer when logging out).

It would be useful if, on demand, when internalFlush is executed and some endpoints are skipped because they were busy, it is recursively invoked a reasonable number of times until all messages are synchronized
Steps To ReproduceThis issue is difficult to reproduce, as it relies on a race condition (i.e. the backend endpoint being busy synchronizing terminal log messages when a user closes a cashup, resulting in the cashup not being synchronized until the next time the user logs in).

To help reproduce the issue:
- Install the attached sleepOnTerminalLog.diff patch. It contains commented out code that will result in the synchronized terminal log messages taking very long. Uncomment the code right after opening the cashup screen in pos2, if you do it before it will be difficult to use POS2.
- Open the Cashup window, move to the last step. Pay attention to the eclipse log, and the momento the "Sleeping" message is shown, complete the cashup. The user will be logged out, and if you check the synchronization buffer store in IndexedDB you will check that the message was not synchronized
TagsNo tags attached.
Attached Files

- Relationships Relation Graph ] Dependency Graph ]
blocks defect 0053100 closedAugustoMauch SynchronizationBuffer.internalFlush does not flush all messages if some endpoints where currently syncing other messages 

-  Notes
(0153122)
hgbot (developer)
2023-08-02 14:12

Merge Request created: https://gitlab.com/openbravo/product/pmods/org.openbravo.mobile.core/-/merge_requests/589 [^]
(0153380)
hgbot (developer)
2023-08-09 08:49

Merge request merged: https://gitlab.com/openbravo/product/pmods/org.openbravo.mobile.core/-/merge_requests/589 [^]
(0153381)
hgbot (developer)
2023-08-09 08:49

Directly closing issue as related merge request is already approved.

Repository: https://gitlab.com/openbravo/product/pmods/org.openbravo.mobile.core [^]
Changeset: c85e59a7dfe8244653e4889a46a556568e98c968
Author: Augusto Mauch <augusto.mauch@openbravo.com>
Date: 09-08-2023 06:48:58
URL: https://gitlab.com/openbravo/product/pmods/org.openbravo.mobile.core/-/commit/c85e59a7dfe8244653e4889a46a556568e98c968 [^]

Fixes ISSUE-53132: SynchronizationBuffer.internalFlush does not ensure all messages are synchronized

Now, if the internalFlush method was executed and any of the endpoints were busy with previous synchronizations, it will be
recursively invoked after waiting for 500ms. The recursive calls will continue until none of the endpoints were busy or until
a maximum number of recursive calls (set to 10 for a total of a 5 second wait) is reached.

By default, internalFlush will behave as before, the new retry behaviour will only take place if its first param is passed to true

---
M web/org.openbravo.mobile.core/app/model/synchronization-buffer/SynchronizationBuffer.js
---

- Issue History
Date Modified Username Field Change
2023-08-02 11:26 AugustoMauch Type defect => backport
2023-08-02 11:26 AugustoMauch Target Version => RR23Q3
2023-08-02 14:12 hgbot Note Added: 0153122
2023-08-08 14:56 priyam Issue Monitored: priyam
2023-08-09 08:49 hgbot Note Added: 0153380
2023-08-09 08:49 hgbot Resolution open => fixed
2023-08-09 08:49 hgbot Status scheduled => closed
2023-08-09 08:49 hgbot Fixed in Version => RR23Q3
2023-08-09 08:49 hgbot Note Added: 0153381


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker