View Issue Details

IDProjectCategoryView StatusLast Update
000415910000-004: ServicesSpecpublic2021-03-05 16:02
ReporterFrank Fischer Assigned ToMatthias Damm  
PrioritynormalSeverityminorReproducibilityN/A
Status closedResolutionfixed 
Summary0004159: Clarification for behavior of FilterOperators in case of error
Description

Part 4, 7.4.3 FilterOperator (page 117)

Table 119 defines the behavior of the different FilterOperators for specific expected errors (usually return NULL). But there are errors that can happen in every FilterOperator, especially out-of-memory. Please add a clarification on how to handle such errors.

Possible solutions would be to return TRUE/FALSE/NULL as a result, or propagate the error to the top level operator.

TagsNo tags attached.
Commit Version
Fix Due Date

Relationships

related to 0004188 closedMatthias Damm No operator to handle Event fields with Bad StatusCode 

Activities

Matthias Damm

2020-06-16 14:21

developer   ~0012337

I can add clarifications to each FilterOperator to resolve in the case of an error either to False or to NULL.

The question is what happens in addition if there is a fatal error like OutOfMemory. Since the event is most likely skipped, there is no indication for such an error.
For queue overflow we insert a special event into the queue.

Matthias Damm

2021-03-03 13:02

developer   ~0013927

My proposal is to add the following clarification:
For any fatal errors like out of memory situations, the operator either evaluates to FALSE or NULL.

In addition we should not allow implicit conversions from StatusCode to integers:
Since Event fields can have a StatusCode instead of the expected DataType, a StatusCode can only be converted to an integer with an explicit conversion.

Open Question for me:
Do we want to have some additional error indication?
We have already EventQueueOverflowEventType.
Should we introduce an EventFilterEvaluationErrorEventType?

Matthias Damm

2021-03-04 21:24

developer   ~0013983

7.7.3 FilterOperator
Added following clarification:
For any fatal errors like out of memory situations, the operator either evaluates to FALSE or NULL.

5.12.1.5 Queue parameters
Added following clarification:
For any fatal error during event processing like out of memory situations, the Server should queue an SystemStatusChangeEventType event with the ServerState COMMUNICATION_FAULT and the source set to the Server Object. If there are no resources available at the time the error happens, the Server should flag an error internally until there are resources to further process Events for the MonitoredItem.

Added in
OPC 10000-4 - UA Specification Part 4 - Services 1.05.0 Draft15.docx

Jim Luth

2021-03-05 14:09

administrator   ~0013991

Needs 1.04 Errata

Jim Luth

2021-03-05 16:02

administrator   ~0013997

Agreed to changes in Virtual F2F.

Issue History

Date Modified Username Field Change
2018-02-15 13:37 Frank Fischer New Issue
2018-08-14 17:00 Jim Luth Assigned To => Matthias Damm
2018-08-14 17:00 Jim Luth Status new => assigned
2020-06-16 14:21 Matthias Damm Note Added: 0012337
2020-06-16 16:05 Matthias Damm Relationship added related to 0004188
2021-03-03 13:02 Matthias Damm Note Added: 0013927
2021-03-04 21:24 Matthias Damm Status assigned => resolved
2021-03-04 21:24 Matthias Damm Resolution open => fixed
2021-03-04 21:24 Matthias Damm Note Added: 0013983
2021-03-05 14:09 Jim Luth Note Added: 0013991
2021-03-05 16:02 Jim Luth Status resolved => closed
2021-03-05 16:02 Jim Luth Fixed in Version => 1.05
2021-03-05 16:02 Jim Luth Note Added: 0013997