-
Notifications
You must be signed in to change notification settings - Fork 65
Description
Bug Report
The BeginSidebandStream method fails when either the read or write moniker is empty. To function correctly, this method requires both monikers to be populated with valid data. Currently, if either the read moniker or the write moniker is null or empty, the function returns an error instead of proceeding. This bug prevents the sideband stream from being initialized, even if one of the monikers is correctly provided.
Repro or Code Sample
Expected Behavior
The BeginSidebandStream method should be flexible enough to handle scenarios where either the read or write moniker is specified, but not necessarily both.
When only a read moniker is provided, the method should successfully initialize a read-only stream. The user should be able to perform read operations without the server hanging or returning errors.
When only a write moniker is provided, the method should successfully initialize a write-only stream. The user should be able to perform write operations without encountering the "Error writing to buffer" message.
Current Behavior
When only read monikers are specified, the gRPC server hangs. A session is successfully created, but the server becomes unresponsive as soon as a read or write operation is attempted. This prevents any further communication and effectively deadlocks the process.
When only write monikers are specified, the method immediately returns a "Error writing to buffer" message. This error occurs continuously upon any attempt to write data, making the write-only functionality unusable.
Possible Solution
Accept empty moniker if possible for the read and write and process the rest
Context
Our implementation is not generic and have to force either a read or write channel on the DAQ for systems that dont require them. There could be a case where we might need to buy a card since the card we use on the DAQ are all read only channels and we need to specify a write channel.
Your Environment
Client System: Ubuntu 24.04.2 LTS
Target System: NI Linux Real-Time 10.1
grpc-device
version: v2.10.0
NI Driver version:
{
"software": [
{
"packageId": "ni-labview-realtime",
"packageVersion": "24.1.0.49362-0+f210",
"productName": "LabVIEW Real-Time"
},
{
"packageId": "ni-nve-rt",
"packageVersion": "24.1.0.49350-0+f198",
"productName": "Network Variable Engine"
},
{
"packageId": "ni-scan-engine",
"packageVersion": "24.1.0.49560-0+f408",
"productName": "NI Scan Engine"
},
{
"packageId": "ni-syscfg-runtime",
"packageVersion": "24.0.0.49281-0+f129",
"productName": "NI System Configuration"
},
{
"packageId": "ni-sysapi-remote",
"packageVersion": "24.0.0.49281-0+f129",
"productName": "NI System Configuration Remote Support"
},
{
"packageId": "ni-wireless-cert-management-webservice",
"packageVersion": "21.0.0.49444-0+f292",
"productName": "NI Wireless Certificate Management Web Service"
},
{
"packageId": "ni-daqmx",
"packageVersion": "24.0.0.49420-0+f268",
"productName": "NI-DAQmx"
},
{
"packageId": "ni-daqmx-driver-opc",
"packageVersion": "24.0.0.49417-0+f265",
"productName": "NI-DAQmx OPC Server"
},
{
"packageId": "ni-rdma",
"packageVersion": "24.0.0.49261-0+f109",
"productName": "NI-RDMA"
},
{
"packageId": "ni-rio",
"packageVersion": "24.0.0.49291-0+f139",
"productName": "NI-RIO"
},
{
"packageId": "ni-crio-ioscan",
"packageVersion": "24.0.0.49255-0+f103",
"productName": "NI-RIO IO Scan"
},
{
"packageId": "ni-rseries",
"packageVersion": "24.0.0.49237-0+f85",
"productName": "NI-RIO R Series Driver"
},
{
"packageId": "ni-rio-server",
"packageVersion": "24.0.0.49291-0+f139",
"productName": "NI-RIO Server"
},
{
"packageId": "ni-visa",
"packageVersion": "24.0.0.49405-0+f253",
"productName": "NI-VISA"
},
{
"packageId": "ni-visa-passport-enet",
"packageVersion": "24.0.0.49402-0+f250",
"productName": "NI-VISA ENET Passport"
},
{
"packageId": "ni-visa-passport-enet-serial",
"packageVersion": "24.0.0.49402-0+f250",
"productName": "NI-VISA ENET-ASRL Passport"
},
{
"packageId": "ni-visa-passport-gpib",
"packageVersion": "24.0.0.49402-0+f250",
"productName": "NI-VISA GPIB Passport"
},
{
"packageId": "ni-visa-lxi-discovery",
"packageVersion": "24.0.0.49402-0+f250",
"productName": "NI-VISA LXI Discovery Service"
},
{
"packageId": "ni-visa-passport-pxi",
"packageVersion": "24.0.0.49403-0+f251",
"productName": "NI-VISA PXI Passport"
},
{
"packageId": "ni-visa-passport-remote",
"packageVersion": "24.0.0.49402-0+f250",
"productName": "NI-VISA Remote Passport"
},
{
"packageId": "ni-visa-server",
"packageVersion": "24.0.0.49402-0+f250",
"productName": "NI-VISA Server"
},
{
"packageId": "ni-visa-passport-usb",
"packageVersion": "24.0.0.49402-0+f250",
"productName": "NI-VISA USB Passport"
},
{
"packageId": "ni-watchdog",
"packageVersion": "24.0.0.49306-0+f154",
"productName": "NI-Watchdog"
},
{
"packageId": "ni-pxiplatformservices",
"packageVersion": "24.0.0.49311-0+f159",
"productName": "PXI Platform Services"
},
{
"packageId": "ni-webservices-webserver-support",
"packageVersion": "24.1.0.49346-0+f194",
"productName": "Run-Time Engine for Web Services"
},
{
"packageId": "ni-sysmgmt-salt-minion-support",
"packageVersion": "24.0.0.49236-0+f84",
"productName": "SystemLink Client"
},
{
"packageId": "ni-varclient-rt",
"packageVersion": "24.1.0.49350-0+f198",
"productName": "Variable Client Support for LabVIEW RT"
},
{
"packageId": "ni-webdav-system-webserver-support",
"packageVersion": "20.0.0.49152-0+f0",
"productName": "WebDAV Server"
}
]
}