Openbravo Issue Tracking System - Retail Modules |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0053132 | Retail Modules | Web POS | public | 2023-07-28 14:34 | 2023-08-09 08:49 |
|
Reporter | AugustoMauch | |
Assigned To | AugustoMauch | |
Priority | normal | Severity | major | Reproducibility | have not tried |
Status | closed | Resolution | fixed | |
Platform | | OS | 5 | OS Version | |
Product Version | | |
Target Version | RR23Q3 | Fixed in Version | RR23Q3 | |
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 | 0053132: 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 |
Proposed Solution | |
Additional Information | |
Tags | No tags attached. |
Relationships | blocks | defect | 0053100 | | closed | AugustoMauch | SynchronizationBuffer.internalFlush does not flush all messages if some endpoints where currently syncing other messages |
|
Attached Files | |
|
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 | |