View Issue Details

IDProjectCategoryView StatusLast Update
000985210000-012: DiscoverySpecpublic2024-10-15 16:03
ReporterMarcel Patzlaff Assigned ToRandy Armstrong  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version1.05.03 
Fixed in Version1.05.04 
Summary0009852: Potential deadlock situation when manipulating TrustLists via File-API
Description

There is a potential deadlock when manipulating TrustLists via the File-API: Consider clients A and B:
According to the specification they are both allowed to open distinct TrustLists objects concurrently for writing. Eventually Client A has finished writing and calls "CloseAndUpdate()". This will create a new transaction - so far so good.
But now there is the following situation: if Client A calls "ApplyChanges()" it will get an "Bad_InvalidState" according to https://reference.opcfoundation.org/GDS/v105/docs/7.10.6 ("ApplyChanges returns Bad_InvalidState if any TrustLIst is still open for writing."). And also Client B cannot do anything meaningful, because calling "CloseAndUpdate()" should give it "Bad_TransactionPending" in this case (even if not mentioned at https://reference.opcfoundation.org/GDS/v105/docs/7.8.2.3).
The only resolution here is that either Client A calls "CancelChanges()" or closes its session; or Client B calls "Close()" or closes its session; or the ActivityTimeout" triggers (which eventually closes the trust list for client B).

Is this behaviour really desired? Would it make sense to just drop the any-trust-list-is-open-for-writing restriction in "ApplyChanges()" so that Client A can finish its change?

This issue is still present in the 1.05.04 RC1.

TagsNo tags attached.
Commit Version
Fix Due Date

Activities

Randy Armstrong

2024-10-06 08:54

administrator   ~0021832

Last edited: 2024-10-06 14:06

Moved transaction creation to the TrustList Open method.

Jim Luth

2024-10-15 16:03

administrator   ~0021891

Agreed to changes in web meeting.

Issue History

Date Modified Username Field Change
2024-09-23 08:12 Marcel Patzlaff New Issue
2024-10-06 08:54 Randy Armstrong Assigned To => Randy Armstrong
2024-10-06 08:54 Randy Armstrong Status new => resolved
2024-10-06 08:54 Randy Armstrong Resolution open => fixed
2024-10-06 08:54 Randy Armstrong Note Added: 0021832
2024-10-06 14:06 Randy Armstrong Note Edited: 0021832
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: 0021891