Project:
View Issue Details[ Jump to Notes ] | [ Issue History ] [ Print ] | |||||||
ID | ||||||||
0053133 | ||||||||
Type | Category | Severity | Reproducibility | Date Submitted | Last Update | |||
backport | [Retail Modules] Web POS | major | have not tried | 2023-07-28 14:34 | 2023-08-09 08:49 | |||
Reporter | AugustoMauch | View Status | public | |||||
Assigned To | AugustoMauch | |||||||
Priority | normal | Resolution | fixed | Fixed in Version | RR23Q2.3 | |||
Status | closed | Fix in branch | Fixed in SCM revision | |||||
Projection | none | ETA | none | Target Version | RR23Q2.3 | |||
OS | Any | Database | Any | Java version | ||||
OS Version | Database version | Ant version | ||||||
Product Version | SCM revision | |||||||
Merge Request Status | approved | |||||||
Review Assigned To | ||||||||
OBNetwork customer | No | |||||||
Support ticket | ||||||||
Regression level | ||||||||
Regression date | ||||||||
Regression introduced in release | ||||||||
Regression introduced by commit | ||||||||
Triggers an Emergency Pack | No | |||||||
Summary | 0053133: SynchronizationBuffer.internalFlush does not flush all messages if some endpoints where currently syncing other messages | |||||||
Description | The 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 Reproduce | This 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 | |||||||
Tags | No tags attached. | |||||||
Attached Files | ||||||||
![]() |
||||||||
|
![]() |
|
(0153121) hgbot (developer) 2023-08-02 14:07 |
Merge Request created: https://gitlab.com/openbravo/product/pmods/org.openbravo.mobile.core/-/merge_requests/588 [^] |
(0153378) 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: b49e5128b072e0aa01f58f9b65630426ef0290ab Author: Augusto Mauch <augusto.mauch@openbravo.com> Date: 02-08-2023 14:06:26 URL: https://gitlab.com/openbravo/product/pmods/org.openbravo.mobile.core/-/commit/b49e5128b072e0aa01f58f9b65630426ef0290ab [^] Fixes ISSUE-53133: 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 --- |
(0153379) hgbot (developer) 2023-08-09 08:49 |
Merge request merged: https://gitlab.com/openbravo/product/pmods/org.openbravo.mobile.core/-/merge_requests/588 [^] |
![]() |
|||
Date Modified | Username | Field | Change |
2023-08-02 11:26 | AugustoMauch | Type | defect => backport |
2023-08-02 11:26 | AugustoMauch | Target Version | => RR23Q2.3 |
2023-08-02 14:07 | hgbot | Note Added: 0153121 | |
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 | => RR23Q2.3 |
2023-08-09 08:49 | hgbot | Note Added: 0153378 | |
2023-08-09 08:49 | hgbot | Note Added: 0153379 |
Copyright © 2000 - 2009 MantisBT Group |