View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0009850 | 10000-012: Discovery | Spec | public | 2024-09-23 08:01 | 2024-10-15 16:03 |
Reporter | Marcel Patzlaff | Assigned To | Randy Armstrong | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | closed | Resolution | reopened | ||
Product Version | 1.05.03 | ||||
Fixed in Version | 1.05.04 | ||||
Summary | 0009850: Figure 22 in Part 12, Chapter 7.10 | ||||
Description | The transaction part of TrustLists in Figure 22 at https://reference.opcfoundation.org/GDS/v105/docs/7.10 does not fit to the descriptions of Open(Write+EraseExisting) and CloseAndUpdate(). The creation of a new transaction is depicted at "Open()" while it is described to be at "CloseAndUpdate()". This issue is still present in the 1.05.04 RC1. | ||||
Tags | No tags attached. | ||||
Commit Version | |||||
Fix Due Date | |||||
|
Moved transaction creation to the TrustList Open method. |
|
This change caught me by surprise now. The description for transactions made perfectly sense to me. Also the CloseAndUpdate() method looks like a perfect equivalent to the UpdateCertificate() method and therefore hints that it is responsible to create a transaction. This makes also sense, because only CloseAndUpdate() has all information required to validate the new data before creating a transaction for it - like UpdateCertificate() is able to do for Application Instance Certificates. Moving the transaction creation to the Open() method also introduces additional complexity: what shall happen to the transaction if validation fails in CloseAndUpdate() or the Close() method is called? These situations basically mean that no changes are to be applied to the opened trust list. But the server cannot blindly discard the new transaction now because there might be other changes already scheduled with it. This looks rather complex and also has to be specified where the most obvious change to me would have been to just adapt the diagram to the described behaviour. |
|
Needed to address the race condition issue you mentioned in another issue. Also, the new file based update mechanism which will be the preferred mechanism moving forward effectively requires the same thing. Transactions exist based on the assumption that changes need to applied all at once or not all. |
|
OK that's fine for me. This seems to keep the complexity relatively low. I assume that the following cases shall then discard an open transaction:
|
|
Fixed by moving transaction creation to the Open(). The CancelChanges method is used to clear up any transaction. |
|
Agreed to changes in web meeting. |
Date Modified | Username | Field | Change |
---|---|---|---|
2024-09-23 08:01 | Marcel Patzlaff | New Issue | |
2024-10-06 14:06 | Randy Armstrong | Assigned To | => Randy Armstrong |
2024-10-06 14:06 | Randy Armstrong | Status | new => resolved |
2024-10-06 14:06 | Randy Armstrong | Resolution | open => fixed |
2024-10-06 14:06 | Randy Armstrong | Note Added: 0021834 | |
2024-10-07 05:23 | Marcel Patzlaff | Status | resolved => feedback |
2024-10-07 05:23 | Marcel Patzlaff | Resolution | fixed => reopened |
2024-10-07 05:23 | Marcel Patzlaff | Note Added: 0021839 | |
2024-10-07 19:38 | Randy Armstrong | Note Added: 0021851 | |
2024-10-08 04:23 | Marcel Patzlaff | Note Added: 0021855 | |
2024-10-08 04:23 | Marcel Patzlaff | Status | feedback => assigned |
2024-10-15 16:01 | Randy Armstrong | Status | assigned => resolved |
2024-10-15 16:01 | Randy Armstrong | Note Added: 0021889 | |
2024-10-15 16:03 | Jim Luth | Status | resolved => closed |
2024-10-15 16:03 | Jim Luth | Fixed in Version | => 1.05.04 |
2024-10-15 16:03 | Jim Luth | Note Added: 0021890 |