Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simple Server Example Unable to Handle Multiple Clients #281

Open
kevincolyar opened this issue Aug 2, 2023 · 2 comments
Open

Simple Server Example Unable to Handle Multiple Clients #281

kevincolyar opened this issue Aug 2, 2023 · 2 comments

Comments

@kevincolyar
Copy link

Using the simple server example, once I connect a second client (Prosys OPC UA Browser), the server goes into a loop creating new sessions for each client about every 4 seconds.

2023-08-02 18:45:58.281 - INFO - opcua::server::comms::secure_channel_service - CloseSecureChannelRequest received, session closing
2023-08-02 18:45:58.282 - INFO - opcua::server::comms::tcp_transport - Closing connection with status BadConnectionClosed
2023-08-02 18:45:58.282 - DEBUG - opcua::server::comms::tcp_transport - Transport is being placed in finished state, code BadConnectionClosed
2023-08-02 18:45:58.282 - INFO - opcua::server::session - Session being set to terminated
2023-08-02 18:45:58.282 - INFO - opcua::server::session - Session is being dropped
2023-08-02 18:45:58.282 - DEBUG - opcua::server::diagnostics - Decrementing current session count to 0
2023-08-02 18:45:58.285 - INFO - opcua::server::server - Handling new connection PollEvented { io: Some(TcpStream { addr: 127.0.0.1:4855, peer: 127.0.0.1:58911, fd: 10 }) }
2023-08-02 18:45:58.287 - INFO - opcua::server::comms::tcp_transport - Socket info:
  Linger - No linger,
  TTL - 64
2023-08-02 18:45:58.287 - INFO - opcua::server::comms::tcp_transport - Session transport i=263 started at 2023-08-02 18:45:58.287262 UTC
2023-08-02 18:45:58.287 - DEBUG - opcua::server::state - Endpoints requested, transport profile uris None
2023-08-02 18:45:58.288 - DEBUG - opcua::server::state - user_identity_tokens() returned zero endpoints for endpoint /noaccess / None None
2023-08-02 18:45:58.288 - DEBUG - opcua::server::comms::tcp_transport - Sending ACK
2023-08-02 18:45:58.288 - DEBUG - opcua::server::comms::tcp_transport - Starting subscription timer loop
2023-08-02 18:45:58.290 - DEBUG - opcua::server::comms::secure_channel_service - Message security mode == None
2023-08-02 18:45:58.290 - DEBUG - opcua::core::comms::secure_channel - AsymmetricSecurityHeader = AsymmetricSecurityHeader { security_policy_uri: UAString { value: Some("http://opcfoundation.org/UA/SecurityPolicy#None") }, sender_certificate: ByteString { value: None }, receiver_certificate_thumbprint: ByteString { value: None } }
2023-08-02 18:45:58.291 - WARN - opcua::server::services::message_handler - validate_activate_service_request, session not found for token b=vgRO1wi0kzwsb5efc5qcNTQCOHOxBZRYXDmV8/v3daY=
2023-08-02 18:45:58.292 - DEBUG - opcua::server::diagnostics - Incrementing current session count to 1
2023-08-02 18:45:58.292 - DEBUG - opcua::server::services::session - Create session request CreateSessionRequest { request_header: RequestHeader { authentication_token: NodeId { namespace: 0, identifier: Numeric(0) }, timestamp: DateTime { date_time: 2023-08-02T18:45:58.292Z }, request_handle: 0, return_diagnostics: (empty), audit_entry_id: UAString { value: None }, timeout_hint: 0, additional_header: ExtensionObject { node_id: NodeId { namespace: 0, identifier: Numeric(0) }, body: None } }, client_description: ApplicationDescription { application_uri: UAString { value: Some("urn:is-kevinc:ProsysOPC:UaBrowser") }, product_uri: UAString { value: Some("urn:prosysopc.com:UaBrowser") }, application_name: LocalizedText { locale: UAString { value: Some("") }, text: UAString { value: Some("UaBrowser@is-kevinc") } }, application_type: Client, gateway_server_uri: UAString { value: None }, discovery_profile_uri: UAString { value: None }, discovery_urls: None }, server_uri: UAString { value: Some("urn:OPC UA Sample Server") }, endpoint_url: UAString { value: Some("opc.tcp://0.0.0.0:4855/") }, session_name: UAString { value: Some("UaBrowser@is-kevinc - Session 7") }, client_nonce: ByteString { value: Some([175, 206, 93, 60, 76, 83, 26, 7, 45, 84, 101, 242, 202, 22, 139, 244, 249, 15, 53, 210, 13, 27, 77, 157, 95, 73, 245, 206, 59, 29, 19, 93]) }, client_certificate: ByteString { value: Some([48, 130, 3, 154, 48, 130, 2, 130, 160, 3, 2, 1, 2, 2, 6, 1, 135, 93, 133, 147, 208, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 48, 51, 49, 28, 48, 26, 6, 3, 85, 4, 3, 12, 19, 85, 97, 66, 114, 111, 119, 115, 101, 114, 64, 105, 115, 45, 107, 101, 118, 105, 110, 99, 49, 19, 48, 17, 6, 3, 85, 4, 10, 12, 10, 80, 114, 111, 115, 121, 115, 32, 79, 80, 67, 48, 30, 23, 13, 50, 51, 48, 52, 48, 55, 50, 48, 48, 48, 52, 55, 90, 23, 13, 51, 51, 48, 52, 48, 52, 50, 49, 48, 48, 52, 55, 90, 48, 51, 49, 28, 48, 26, 6, 3, 85, 4, 3, 12, 19, 85, 97, 66, 114, 111, 119, 115, 101, 114, 64, 105, 115, 45, 107, 101, 118, 105, 110, 99, 49, 19, 48, 17, 6, 3, 85, 4, 10, 12, 10, 80, 114, 111, 115, 121, 115, 32, 79, 80, 67, 48, 130, 1, 34, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 1, 5, 0, 3, 130, 1, 15, 0, 48, 130, 1, 10, 2, 130, 1, 1, 0, 172, 50, 196, 18, 98, 249, 53, 51, 24, 59, 170, 246, 18, 88, 56, 177, 19, 196, 107, 146, 10, 93, 228, 220, 20, 40, 224, 76, 211, 3, 66, 178, 62, 19, 99, 238, 68, 124, 98, 146, 155, 49, 38, 54, 130, 9, 76, 55, 72, 232, 245, 78, 195, 26, 196, 33, 230, 207, 251, 138, 232, 137, 63, 125, 163, 154, 88, 247, 29, 184, 71, 144, 30, 98, 46, 146, 244, 239, 137, 42, 221, 174, 10, 229, 199, 199, 59, 213, 139, 251, 226, 113, 26, 1, 82, 92, 66, 186, 250, 133, 132, 208, 59, 193, 18, 173, 167, 139, 167, 144, 187, 141, 163, 36, 216, 223, 178, 167, 210, 81, 236, 135, 28, 128, 66, 173, 220, 29, 111, 162, 148, 205, 195, 133, 97, 154, 7, 1, 177, 255, 115, 65, 119, 81, 75, 197, 123, 88, 173, 114, 16, 148, 230, 101, 13, 233, 47, 211, 250, 228, 112, 219, 197, 160, 118, 152, 170, 123, 97, 169, 94, 73, 224, 217, 244, 8, 190, 34, 100, 83, 36, 229, 73, 223, 115, 215, 223, 41, 201, 209, 148, 10, 13, 197, 85, 238, 48, 214, 231, 5, 113, 84, 150, 202, 143, 227, 214, 7, 166, 143, 191, 80, 191, 51, 218, 131, 157, 21, 182, 3, 160, 158, 125, 186, 184, 41, 93, 225, 97, 166, 203, 18, 237, 33, 40, 210, 136, 152, 245, 103, 192, 136, 13, 192, 23, 214, 45, 157, 57, 66, 244, 83, 24, 34, 44, 151, 2, 3, 1, 0, 1, 163, 129, 179, 48, 129, 176, 48, 31, 6, 3, 85, 29, 35, 4, 24, 48, 22, 128, 20, 155, 217, 5, 232, 120, 119, 111, 20, 235, 11, 58, 197, 224, 41, 203, 214, 28, 127, 227, 126, 48, 29, 6, 3, 85, 29, 14, 4, 22, 4, 20, 155, 217, 5, 232, 120, 119, 111, 20, 235, 11, 58, 197, 224, 41, 203, 214, 28, 127, 227, 126, 48, 9, 6, 3, 85, 29, 19, 4, 2, 48, 0, 48, 11, 6, 3, 85, 29, 15, 4, 4, 3, 2, 2, 244, 48, 29, 6, 3, 85, 29, 37, 4, 22, 48, 20, 6, 8, 43, 6, 1, 5, 5, 7, 3, 1, 6, 8, 43, 6, 1, 5, 5, 7, 3, 2, 48, 55, 6, 3, 85, 29, 17, 4, 48, 48, 46, 134, 33, 117, 114, 110, 58, 105, 115, 45, 107, 101, 118, 105, 110, 99, 58, 80, 114, 111, 115, 121, 115, 79, 80, 67, 58, 85, 97, 66, 114, 111, 119, 115, 101, 114, 130, 9, 105, 115, 45, 107, 101, 118, 105, 110, 99, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 3, 130, 1, 1, 0, 42, 228, 213, 107, 247, 223, 215, 66, 128, 48, 5, 103, 90, 16, 78, 66, 121, 234, 125, 159, 47, 24, 238, 211, 169, 153, 200, 210, 127, 137, 143, 87, 170, 217, 240, 194, 248, 217, 74, 175, 244, 37, 65, 91, 116, 16, 26, 190, 14, 155, 129, 219, 232, 54, 236, 22, 244, 16, 148, 106, 67, 83, 107, 214, 252, 42, 216, 135, 9, 93, 249, 61, 54, 227, 40, 73, 224, 20, 95, 221, 231, 11, 84, 30, 224, 167, 245, 177, 57, 37, 95, 94, 42, 152, 125, 188, 197, 99, 63, 100, 79, 67, 118, 231, 247, 102, 47, 23, 102, 74, 244, 69, 4, 247, 7, 28, 240, 24, 189, 247, 58, 128, 23, 60, 157, 212, 187, 149, 176, 202, 170, 250, 22, 17, 7, 120, 182, 8, 96, 158, 160, 81, 237, 145, 196, 18, 167, 117, 65, 219, 152, 196, 95, 244, 82, 176, 25, 52, 184, 200, 192, 28, 140, 164, 230, 196, 247, 24, 4, 238, 202, 66, 132, 65, 207, 104, 240, 123, 98, 137, 18, 213, 43, 74, 135, 185, 158, 252, 242, 119, 111, 189, 241, 242, 47, 24, 240, 84, 13, 1, 58, 104, 241, 144, 83, 93, 106, 232, 95, 76, 149, 29, 108, 219, 235, 166, 188, 35, 242, 157, 2, 238, 43, 175, 101, 171, 46, 224, 130, 58, 141, 208, 179, 165, 205, 92, 121, 66, 34, 153, 223, 145, 53, 225, 90, 185, 6, 126, 49, 13, 4, 195, 63, 144, 222, 111]) }, requested_session_timeout: 3600000.0, max_response_message_size: 0 }
2023-08-02 18:45:58.293 - DEBUG - opcua::server::state - find_endpoint, url = opc.tcp://0.0.0.0:4855/
2023-08-02 18:45:58.296 - INFO - opcua::server::events::audit - Audit Event: EventId=ByteString(ByteString { value: Some([249, 204, 122, 58, 174, 32, 73, 6, 178, 18, 232, 244, 166, 131, 127, 151]) }),EventType=i=2071,SourceNode=i=0,SourceName=[null],Time=2023-08-02T18:45:58.295106+00:00,ReceiveTime=2023-08-02T18:45:58.295106+00:00,Message=LocalizedText(LocalizedText { locale: UAString { value: None }, text: UAString { value: None } }),Severity=1,ActionTimeStamp=2023-08-02T18:45:58.295127+00:00,Status=true,ServerId=[null],ClientAuditEntryId=[null],ClientUserId=[null],SessionId=ns=1;s=Session-7,SecureChannelId=1,ClientCertificate=ByteString(ByteString { value: Some([48, 130, 3, 154, 48, 130, 2, 130, 160, 3, 2, 1, 2, 2, 6, 1, 135, 93, 133, 147, 208, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 48, 51, 49, 28, 48, 26, 6, 3, 85, 4, 3, 12, 19, 85, 97, 66, 114, 111, 119, 115, 101, 114, 64, 105, 115, 45, 107, 101, 118, 105, 110, 99, 49, 19, 48, 17, 6, 3, 85, 4, 10, 12, 10, 80, 114, 111, 115, 121, 115, 32, 79, 80, 67, 48, 30, 23, 13, 50, 51, 48, 52, 48, 55, 50, 48, 48, 48, 52, 55, 90, 23, 13, 51, 51, 48, 52, 48, 52, 50, 49, 48, 48, 52, 55, 90, 48, 51, 49, 28, 48, 26, 6, 3, 85, 4, 3, 12, 19, 85, 97, 66, 114, 111, 119, 115, 101, 114, 64, 105, 115, 45, 107, 101, 118, 105, 110, 99, 49, 19, 48, 17, 6, 3, 85, 4, 10, 12, 10, 80, 114, 111, 115, 121, 115, 32, 79, 80, 67, 48, 130, 1, 34, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 1, 5, 0, 3, 130, 1, 15, 0, 48, 130, 1, 10, 2, 130, 1, 1, 0, 172, 50, 196, 18, 98, 249, 53, 51, 24, 59, 170, 246, 18, 88, 56, 177, 19, 196, 107, 146, 10, 93, 228, 220, 20, 40, 224, 76, 211, 3, 66, 178, 62, 19, 99, 238, 68, 124, 98, 146, 155, 49, 38, 54, 130, 9, 76, 55, 72, 232, 245, 78, 195, 26, 196, 33, 230, 207, 251, 138, 232, 137, 63, 125, 163, 154, 88, 247, 29, 184, 71, 144, 30, 98, 46, 146, 244, 239, 137, 42, 221, 174, 10, 229, 199, 199, 59, 213, 139, 251, 226, 113, 26, 1, 82, 92, 66, 186, 250, 133, 132, 208, 59, 193, 18, 173, 167, 139, 167, 144, 187, 141, 163, 36, 216, 223, 178, 167, 210, 81, 236, 135, 28, 128, 66, 173, 220, 29, 111, 162, 148, 205, 195, 133, 97, 154, 7, 1, 177, 255, 115, 65, 119, 81, 75, 197, 123, 88, 173, 114, 16, 148, 230, 101, 13, 233, 47, 211, 250, 228, 112, 219, 197, 160, 118, 152, 170, 123, 97, 169, 94, 73, 224, 217, 244, 8, 190, 34, 100, 83, 36, 229, 73, 223, 115, 215, 223, 41, 201, 209, 148, 10, 13, 197, 85, 238, 48, 214, 231, 5, 113, 84, 150, 202, 143, 227, 214, 7, 166, 143, 191, 80, 191, 51, 218, 131, 157, 21, 182, 3, 160, 158, 125, 186, 184, 41, 93, 225, 97, 166, 203, 18, 237, 33, 40, 210, 136, 152, 245, 103, 192, 136, 13, 192, 23, 214, 45, 157, 57, 66, 244, 83, 24, 34, 44, 151, 2, 3, 1, 0, 1, 163, 129, 179, 48, 129, 176, 48, 31, 6, 3, 85, 29, 35, 4, 24, 48, 22, 128, 20, 155, 217, 5, 232, 120, 119, 111, 20, 235, 11, 58, 197, 224, 41, 203, 214, 28, 127, 227, 126, 48, 29, 6, 3, 85, 29, 14, 4, 22, 4, 20, 155, 217, 5, 232, 120, 119, 111, 20, 235, 11, 58, 197, 224, 41, 203, 214, 28, 127, 227, 126, 48, 9, 6, 3, 85, 29, 19, 4, 2, 48, 0, 48, 11, 6, 3, 85, 29, 15, 4, 4, 3, 2, 2, 244, 48, 29, 6, 3, 85, 29, 37, 4, 22, 48, 20, 6, 8, 43, 6, 1, 5, 5, 7, 3, 1, 6, 8, 43, 6, 1, 5, 5, 7, 3, 2, 48, 55, 6, 3, 85, 29, 17, 4, 48, 48, 46, 134, 33, 117, 114, 110, 58, 105, 115, 45, 107, 101, 118, 105, 110, 99, 58, 80, 114, 111, 115, 121, 115, 79, 80, 67, 58, 85, 97, 66, 114, 111, 119, 115, 101, 114, 130, 9, 105, 115, 45, 107, 101, 118, 105, 110, 99, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 3, 130, 1, 1, 0, 42, 228, 213, 107, 247, 223, 215, 66, 128, 48, 5, 103, 90, 16, 78, 66, 121, 234, 125, 159, 47, 24, 238, 211, 169, 153, 200, 210, 127, 137, 143, 87, 170, 217, 240, 194, 248, 217, 74, 175, 244, 37, 65, 91, 116, 16, 26, 190, 14, 155, 129, 219, 232, 54, 236, 22, 244, 16, 148, 106, 67, 83, 107, 214, 252, 42, 216, 135, 9, 93, 249, 61, 54, 227, 40, 73, 224, 20, 95, 221, 231, 11, 84, 30, 224, 167, 245, 177, 57, 37, 95, 94, 42, 152, 125, 188, 197, 99, 63, 100, 79, 67, 118, 231, 247, 102, 47, 23, 102, 74, 244, 69, 4, 247, 7, 28, 240, 24, 189, 247, 58, 128, 23, 60, 157, 212, 187, 149, 176, 202, 170, 250, 22, 17, 7, 120, 182, 8, 96, 158, 160, 81, 237, 145, 196, 18, 167, 117, 65, 219, 152, 196, 95, 244, 82, 176, 25, 52, 184, 200, 192, 28, 140, 164, 230, 196, 247, 24, 4, 238, 202, 66, 132, 65, 207, 104, 240, 123, 98, 137, 18, 213, 43, 74, 135, 185, 158, 252, 242, 119, 111, 189, 241, 242, 47, 24, 240, 84, 13, 1, 58, 104, 241, 144, 83, 93, 106, 232, 95, 76, 149, 29, 108, 219, 235, 166, 188, 35, 242, 157, 2, 238, 43, 175, 101, 171, 46, 224, 130, 58, 141, 208, 179, 165, 205, 92, 121, 66, 34, 153, 223, 145, 53, 225, 90, 185, 6, 126, 49, 13, 4, 195, 63, 144, 222, 111]) }),ClientCertificateThumbprint=ef4e12dd728971b911fe640771c217339a717b55,RevisedSessionTimeout=60000
2023-08-02 18:45:58.296 - DEBUG - opcua::server::session_diagnostics - register_session for session id ns=1;s=Session-7
2023-08-02 18:45:58.296 - DEBUG - opcua::server::session_diagnostics - Adding an object node for the session id ns=1;s=Session-7
2023-08-02 18:45:58.303 - DEBUG - opcua::server::state - Anonymous identity is authenticated
2023-08-02 18:45:58.303 - INFO - opcua::server::services::session - activate_session success for session ns=1;s=Session-7
2023-08-02 18:45:58.304 - INFO - opcua::server::events::audit - Audit Event: EventId=ByteString(ByteString { value: Some([163, 106, 81, 157, 243, 225, 67, 32, 147, 20, 56, 3, 99, 253, 254, 106]) }),EventType=i=2071,SourceNode=i=0,SourceName=[null],Time=2023-08-02T18:45:58.303566+00:00,ReceiveTime=2023-08-02T18:45:58.303566+00:00,Message=LocalizedText(LocalizedText { locale: UAString { value: None }, text: UAString { value: None } }),Severity=1,ActionTimeStamp=2023-08-02T18:45:58.303584+00:00,Status=true,ServerId=[null],ClientAuditEntryId=[null],ClientUserId=[null],SessionId=ns=1;s=Session-7,ClientSoftwareCertificates=Array(Array { value_type: ExtensionObject, values: [], dimensions: [] }),UserIdentityToken=ExtensionObject(ExtensionObject { node_id: NodeId { namespace: 0, identifier: Numeric(318) }, body: ByteString(ByteString { value: Some([255, 255, 255, 255]) }) }),SecureChannelId=1
2023-08-02 18:45:58.687 - INFO - opcua::server::comms::secure_channel_service - CloseSecureChannelRequest received, session closing
2023-08-02 18:45:58.688 - INFO - opcua::server::comms::tcp_transport - Closing connection with status BadConnectionClosed
2023-08-02 18:45:58.688 - DEBUG - opcua::server::comms::tcp_transport - Transport is being placed in finished state, code BadConnectionClosed
2023-08-02 18:45:58.688 - INFO - opcua::server::session - Session being set to terminated
2023-08-02 18:45:58.688 - INFO - opcua::server::session - Session is being dropped
2023-08-02 18:45:58.688 - DEBUG - opcua::server::diagnostics - Decrementing current session count to 0
2023-08-02 18:45:58.690 - INFO - opcua::server::server - Handling new connection PollEvented { io: Some(TcpStream { addr: 127.0.0.1:4855, peer: 127.0.0.1:58912, fd: 11 }) }
2023-08-02 18:45:58.692 - INFO - opcua::server::comms::tcp_transport - Socket info:
  Linger - No linger,
  TTL - 64
2023-08-02 18:45:58.692 - INFO - opcua::server::comms::tcp_transport - Session transport i=301 started at 2023-08-02 18:45:58.692485 UTC
2023-08-02 18:45:58.692 - DEBUG - opcua::server::state - Endpoints requested, transport profile uris None
2023-08-02 18:45:58.693 - DEBUG - opcua::server::state - user_identity_tokens() returned zero endpoints for endpoint /noaccess / None None
2023-08-02 18:45:58.693 - DEBUG - opcua::server::comms::tcp_transport - Sending ACK
2023-08-02 18:45:58.693 - DEBUG - opcua::server::comms::tcp_transport - Starting subscription timer loop
2023-08-02 18:45:58.695 - DEBUG - opcua::server::comms::secure_channel_service - Message security mode == None
2023-08-02 18:45:58.695 - DEBUG - opcua::core::comms::secure_channel - AsymmetricSecurityHeader = AsymmetricSecurityHeader { security_policy_uri: UAString { value: Some("http://opcfoundation.org/UA/SecurityPolicy#None") }, sender_certificate: ByteString { value: None }, receiver_certificate_thumbprint: ByteString { value: None } }
2023-08-02 18:45:58.696 - WARN - opcua::server::services::message_handler - validate_activate_service_request, session not found for token b=S4bzMHRsE1VTi7uNUnngTE542LNwIcUeW6xgaVLHM54=
2023-08-02 18:45:58.696 - DEBUG - opcua::server::diagnostics - Incrementing current session count to 1
2023-08-02 18:45:58.697 - DEBUG - opcua::server::services::session - Create session request CreateSessionRequest { request_header: RequestHeader { authentication_token: NodeId { namespace: 0, identifier: Numeric(0) }, timestamp: DateTime { date_time: 2023-08-02T18:45:58.696Z }, request_handle: 0, return_diagnostics: (empty), audit_entry_id: UAString { value: None }, timeout_hint: 0, additional_header: ExtensionObject { node_id: NodeId { namespace: 0, identifier: Numeric(0) }, body: None } }, client_description: ApplicationDescription { application_uri: UAString { value: Some("urn:is-kevinc:ProsysOPC:UaBrowser") }, product_uri: UAString { value: Some("urn:prosysopc.com:UaBrowser") }, application_name: LocalizedText { locale: UAString { value: Some("") }, text: UAString { value: Some("UaBrowser@is-kevinc") } }, application_type: Client, gateway_server_uri: UAString { value: None }, discovery_profile_uri: UAString { value: None }, discovery_urls: None }, server_uri: UAString { value: Some("urn:OPC UA Sample Server") }, endpoint_url: UAString { value: Some("opc.tcp://0.0.0.0:4855/") }, session_name: UAString { value: Some("UaBrowser@is-kevinc - Session 8") }, client_nonce: ByteString { value: Some([222, 224, 168, 140, 81, 104, 158, 92, 189, 181, 34, 35, 255, 57, 98, 187, 23, 28, 232, 223, 148, 223, 70, 174, 57, 101, 137, 10, 122, 170, 122, 59]) }, client_certificate: ByteString { value: Some([48, 130, 3, 154, 48, 130, 2, 130, 160, 3, 2, 1, 2, 2, 6, 1, 135, 93, 133, 147, 208, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 48, 51, 49, 28, 48, 26, 6, 3, 85, 4, 3, 12, 19, 85, 97, 66, 114, 111, 119, 115, 101, 114, 64, 105, 115, 45, 107, 101, 118, 105, 110, 99, 49, 19, 48, 17, 6, 3, 85, 4, 10, 12, 10, 80, 114, 111, 115, 121, 115, 32, 79, 80, 67, 48, 30, 23, 13, 50, 51, 48, 52, 48, 55, 50, 48, 48, 48, 52, 55, 90, 23, 13, 51, 51, 48, 52, 48, 52, 50, 49, 48, 48, 52, 55, 90, 48, 51, 49, 28, 48, 26, 6, 3, 85, 4, 3, 12, 19, 85, 97, 66, 114, 111, 119, 115, 101, 114, 64, 105, 115, 45, 107, 101, 118, 105, 110, 99, 49, 19, 48, 17, 6, 3, 85, 4, 10, 12, 10, 80, 114, 111, 115, 121, 115, 32, 79, 80, 67, 48, 130, 1, 34, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 1, 5, 0, 3, 130, 1, 15, 0, 48, 130, 1, 10, 2, 130, 1, 1, 0, 172, 50, 196, 18, 98, 249, 53, 51, 24, 59, 170, 246, 18, 88, 56, 177, 19, 196, 107, 146, 10, 93, 228, 220, 20, 40, 224, 76, 211, 3, 66, 178, 62, 19, 99, 238, 68, 124, 98, 146, 155, 49, 38, 54, 130, 9, 76, 55, 72, 232, 245, 78, 195, 26, 196, 33, 230, 207, 251, 138, 232, 137, 63, 125, 163, 154, 88, 247, 29, 184, 71, 144, 30, 98, 46, 146, 244, 239, 137, 42, 221, 174, 10, 229, 199, 199, 59, 213, 139, 251, 226, 113, 26, 1, 82, 92, 66, 186, 250, 133, 132, 208, 59, 193, 18, 173, 167, 139, 167, 144, 187, 141, 163, 36, 216, 223, 178, 167, 210, 81, 236, 135, 28, 128, 66, 173, 220, 29, 111, 162, 148, 205, 195, 133, 97, 154, 7, 1, 177, 255, 115, 65, 119, 81, 75, 197, 123, 88, 173, 114, 16, 148, 230, 101, 13, 233, 47, 211, 250, 228, 112, 219, 197, 160, 118, 152, 170, 123, 97, 169, 94, 73, 224, 217, 244, 8, 190, 34, 100, 83, 36, 229, 73, 223, 115, 215, 223, 41, 201, 209, 148, 10, 13, 197, 85, 238, 48, 214, 231, 5, 113, 84, 150, 202, 143, 227, 214, 7, 166, 143, 191, 80, 191, 51, 218, 131, 157, 21, 182, 3, 160, 158, 125, 186, 184, 41, 93, 225, 97, 166, 203, 18, 237, 33, 40, 210, 136, 152, 245, 103, 192, 136, 13, 192, 23, 214, 45, 157, 57, 66, 244, 83, 24, 34, 44, 151, 2, 3, 1, 0, 1, 163, 129, 179, 48, 129, 176, 48, 31, 6, 3, 85, 29, 35, 4, 24, 48, 22, 128, 20, 155, 217, 5, 232, 120, 119, 111, 20, 235, 11, 58, 197, 224, 41, 203, 214, 28, 127, 227, 126, 48, 29, 6, 3, 85, 29, 14, 4, 22, 4, 20, 155, 217, 5, 232, 120, 119, 111, 20, 235, 11, 58, 197, 224, 41, 203, 214, 28, 127, 227, 126, 48, 9, 6, 3, 85, 29, 19, 4, 2, 48, 0, 48, 11, 6, 3, 85, 29, 15, 4, 4, 3, 2, 2, 244, 48, 29, 6, 3, 85, 29, 37, 4, 22, 48, 20, 6, 8, 43, 6, 1, 5, 5, 7, 3, 1, 6, 8, 43, 6, 1, 5, 5, 7, 3, 2, 48, 55, 6, 3, 85, 29, 17, 4, 48, 48, 46, 134, 33, 117, 114, 110, 58, 105, 115, 45, 107, 101, 118, 105, 110, 99, 58, 80, 114, 111, 115, 121, 115, 79, 80, 67, 58, 85, 97, 66, 114, 111, 119, 115, 101, 114, 130, 9, 105, 115, 45, 107, 101, 118, 105, 110, 99, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 3, 130, 1, 1, 0, 42, 228, 213, 107, 247, 223, 215, 66, 128, 48, 5, 103, 90, 16, 78, 66, 121, 234, 125, 159, 47, 24, 238, 211, 169, 153, 200, 210, 127, 137, 143, 87, 170, 217, 240, 194, 248, 217, 74, 175, 244, 37, 65, 91, 116, 16, 26, 190, 14, 155, 129, 219, 232, 54, 236, 22, 244, 16, 148, 106, 67, 83, 107, 214, 252, 42, 216, 135, 9, 93, 249, 61, 54, 227, 40, 73, 224, 20, 95, 221, 231, 11, 84, 30, 224, 167, 245, 177, 57, 37, 95, 94, 42, 152, 125, 188, 197, 99, 63, 100, 79, 67, 118, 231, 247, 102, 47, 23, 102, 74, 244, 69, 4, 247, 7, 28, 240, 24, 189, 247, 58, 128, 23, 60, 157, 212, 187, 149, 176, 202, 170, 250, 22, 17, 7, 120, 182, 8, 96, 158, 160, 81, 237, 145, 196, 18, 167, 117, 65, 219, 152, 196, 95, 244, 82, 176, 25, 52, 184, 200, 192, 28, 140, 164, 230, 196, 247, 24, 4, 238, 202, 66, 132, 65, 207, 104, 240, 123, 98, 137, 18, 213, 43, 74, 135, 185, 158, 252, 242, 119, 111, 189, 241, 242, 47, 24, 240, 84, 13, 1, 58, 104, 241, 144, 83, 93, 106, 232, 95, 76, 149, 29, 108, 219, 235, 166, 188, 35, 242, 157, 2, 238, 43, 175, 101, 171, 46, 224, 130, 58, 141, 208, 179, 165, 205, 92, 121, 66, 34, 153, 223, 145, 53, 225, 90, 185, 6, 126, 49, 13, 4, 195, 63, 144, 222, 111]) }, requested_session_timeout: 3600000.0, max_response_message_size: 0 }
2023-08-02 18:45:58.697 - DEBUG - opcua::server::state - find_endpoint, url = opc.tcp://0.0.0.0:4855/
2023-08-02 18:45:58.701 - INFO - opcua::server::events::audit - Audit Event: EventId=ByteString(ByteString { value: Some([105, 240, 1, 251, 3, 17, 77, 181, 130, 72, 243, 209, 111, 220, 94, 77]) }),EventType=i=2071,SourceNode=i=0,SourceName=[null],Time=2023-08-02T18:45:58.699510+00:00,ReceiveTime=2023-08-02T18:45:58.699510+00:00,Message=LocalizedText(LocalizedText { locale: UAString { value: None }, text: UAString { value: None } }),Severity=1,ActionTimeStamp=2023-08-02T18:45:58.699535+00:00,Status=true,ServerId=[null],ClientAuditEntryId=[null],ClientUserId=[null],SessionId=ns=1;s=Session-8,SecureChannelId=1,ClientCertificate=ByteString(ByteString { value: Some([48, 130, 3, 154, 48, 130, 2, 130, 160, 3, 2, 1, 2, 2, 6, 1, 135, 93, 133, 147, 208, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 48, 51, 49, 28, 48, 26, 6, 3, 85, 4, 3, 12, 19, 85, 97, 66, 114, 111, 119, 115, 101, 114, 64, 105, 115, 45, 107, 101, 118, 105, 110, 99, 49, 19, 48, 17, 6, 3, 85, 4, 10, 12, 10, 80, 114, 111, 115, 121, 115, 32, 79, 80, 67, 48, 30, 23, 13, 50, 51, 48, 52, 48, 55, 50, 48, 48, 48, 52, 55, 90, 23, 13, 51, 51, 48, 52, 48, 52, 50, 49, 48, 48, 52, 55, 90, 48, 51, 49, 28, 48, 26, 6, 3, 85, 4, 3, 12, 19, 85, 97, 66, 114, 111, 119, 115, 101, 114, 64, 105, 115, 45, 107, 101, 118, 105, 110, 99, 49, 19, 48, 17, 6, 3, 85, 4, 10, 12, 10, 80, 114, 111, 115, 121, 115, 32, 79, 80, 67, 48, 130, 1, 34, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 1, 5, 0, 3, 130, 1, 15, 0, 48, 130, 1, 10, 2, 130, 1, 1, 0, 172, 50, 196, 18, 98, 249, 53, 51, 24, 59, 170, 246, 18, 88, 56, 177, 19, 196, 107, 146, 10, 93, 228, 220, 20, 40, 224, 76, 211, 3, 66, 178, 62, 19, 99, 238, 68, 124, 98, 146, 155, 49, 38, 54, 130, 9, 76, 55, 72, 232, 245, 78, 195, 26, 196, 33, 230, 207, 251, 138, 232, 137, 63, 125, 163, 154, 88, 247, 29, 184, 71, 144, 30, 98, 46, 146, 244, 239, 137, 42, 221, 174, 10, 229, 199, 199, 59, 213, 139, 251, 226, 113, 26, 1, 82, 92, 66, 186, 250, 133, 132, 208, 59, 193, 18, 173, 167, 139, 167, 144, 187, 141, 163, 36, 216, 223, 178, 167, 210, 81, 236, 135, 28, 128, 66, 173, 220, 29, 111, 162, 148, 205, 195, 133, 97, 154, 7, 1, 177, 255, 115, 65, 119, 81, 75, 197, 123, 88, 173, 114, 16, 148, 230, 101, 13, 233, 47, 211, 250, 228, 112, 219, 197, 160, 118, 152, 170, 123, 97, 169, 94, 73, 224, 217, 244, 8, 190, 34, 100, 83, 36, 229, 73, 223, 115, 215, 223, 41, 201, 209, 148, 10, 13, 197, 85, 238, 48, 214, 231, 5, 113, 84, 150, 202, 143, 227, 214, 7, 166, 143, 191, 80, 191, 51, 218, 131, 157, 21, 182, 3, 160, 158, 125, 186, 184, 41, 93, 225, 97, 166, 203, 18, 237, 33, 40, 210, 136, 152, 245, 103, 192, 136, 13, 192, 23, 214, 45, 157, 57, 66, 244, 83, 24, 34, 44, 151, 2, 3, 1, 0, 1, 163, 129, 179, 48, 129, 176, 48, 31, 6, 3, 85, 29, 35, 4, 24, 48, 22, 128, 20, 155, 217, 5, 232, 120, 119, 111, 20, 235, 11, 58, 197, 224, 41, 203, 214, 28, 127, 227, 126, 48, 29, 6, 3, 85, 29, 14, 4, 22, 4, 20, 155, 217, 5, 232, 120, 119, 111, 20, 235, 11, 58, 197, 224, 41, 203, 214, 28, 127, 227, 126, 48, 9, 6, 3, 85, 29, 19, 4, 2, 48, 0, 48, 11, 6, 3, 85, 29, 15, 4, 4, 3, 2, 2, 244, 48, 29, 6, 3, 85, 29, 37, 4, 22, 48, 20, 6, 8, 43, 6, 1, 5, 5, 7, 3, 1, 6, 8, 43, 6, 1, 5, 5, 7, 3, 2, 48, 55, 6, 3, 85, 29, 17, 4, 48, 48, 46, 134, 33, 117, 114, 110, 58, 105, 115, 45, 107, 101, 118, 105, 110, 99, 58, 80, 114, 111, 115, 121, 115, 79, 80, 67, 58, 85, 97, 66, 114, 111, 119, 115, 101, 114, 130, 9, 105, 115, 45, 107, 101, 118, 105, 110, 99, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 3, 130, 1, 1, 0, 42, 228, 213, 107, 247, 223, 215, 66, 128, 48, 5, 103, 90, 16, 78, 66, 121, 234, 125, 159, 47, 24, 238, 211, 169, 153, 200, 210, 127, 137, 143, 87, 170, 217, 240, 194, 248, 217, 74, 175, 244, 37, 65, 91, 116, 16, 26, 190, 14, 155, 129, 219, 232, 54, 236, 22, 244, 16, 148, 106, 67, 83, 107, 214, 252, 42, 216, 135, 9, 93, 249, 61, 54, 227, 40, 73, 224, 20, 95, 221, 231, 11, 84, 30, 224, 167, 245, 177, 57, 37, 95, 94, 42, 152, 125, 188, 197, 99, 63, 100, 79, 67, 118, 231, 247, 102, 47, 23, 102, 74, 244, 69, 4, 247, 7, 28, 240, 24, 189, 247, 58, 128, 23, 60, 157, 212, 187, 149, 176, 202, 170, 250, 22, 17, 7, 120, 182, 8, 96, 158, 160, 81, 237, 145, 196, 18, 167, 117, 65, 219, 152, 196, 95, 244, 82, 176, 25, 52, 184, 200, 192, 28, 140, 164, 230, 196, 247, 24, 4, 238, 202, 66, 132, 65, 207, 104, 240, 123, 98, 137, 18, 213, 43, 74, 135, 185, 158, 252, 242, 119, 111, 189, 241, 242, 47, 24, 240, 84, 13, 1, 58, 104, 241, 144, 83, 93, 106, 232, 95, 76, 149, 29, 108, 219, 235, 166, 188, 35, 242, 157, 2, 238, 43, 175, 101, 171, 46, 224, 130, 58, 141, 208, 179, 165, 205, 92, 121, 66, 34, 153, 223, 145, 53, 225, 90, 185, 6, 126, 49, 13, 4, 195, 63, 144, 222, 111]) }),ClientCertificateThumbprint=ef4e12dd728971b911fe640771c217339a717b55,RevisedSessionTimeout=60000
2023-08-02 18:45:58.701 - DEBUG - opcua::server::session_diagnostics - register_session for session id ns=1;s=Session-8
2023-08-02 18:45:58.701 - DEBUG - opcua::server::session_diagnostics - Adding an object node for the session id ns=1;s=Session-8
2023-08-02 18:45:58.705 - DEBUG - opcua::server::state - Anonymous identity is authenticated
2023-08-02 18:45:58.705 - INFO - opcua::server::services::session - activate_session success for session ns=1;s=Session-8
2023-08-02 18:45:58.707 - INFO - opcua::server::events::audit - Audit Event: EventId=ByteString(ByteString { value: Some([168, 200, 37, 77, 118, 103, 78, 106, 144, 202, 188, 48, 60, 69, 250, 95]) }),EventType=i=2071,SourceNode=i=0,SourceName=[null],Time=2023-08-02T18:45:58.705868+00:00,ReceiveTime=2023-08-02T18:45:58.705868+00:00,Message=LocalizedText(LocalizedText { locale: UAString { value: None }, text: UAString { value: None } }),Severity=1,ActionTimeStamp=2023-08-02T18:45:58.705897+00:00,Status=true,ServerId=[null],ClientAuditEntryId=[null],ClientUserId=[null],SessionId=ns=1;s=Session-8,ClientSoftwareCertificates=Array(Array { value_type: ExtensionObject, values: [], dimensions: [] }),UserIdentityToken=ExtensionObject(ExtensionObject { node_id: NodeId { namespace: 0, identifier: Numeric(318) }, body: ByteString(ByteString { value: Some([255, 255, 255, 255]) }) }),SecureChannelId=1
2023-08-02 18:45:59.458 - INFO - opcua::server::comms::secure_channel_service - CloseSecureChannelRequest received, session closing
2023-08-02 18:45:59.458 - INFO - opcua::server::comms::tcp_transport - Closing connection with status BadConnectionClosed
2023-08-02 18:45:59.459 - DEBUG - opcua::server::comms::tcp_transport - Transport is being placed in finished state, code BadConnectionClosed
2023-08-02 18:45:59.459 - INFO - opcua::server::session - Session being set to terminated
2023-08-02 18:45:59.459 - INFO - opcua::server::session - Session is being dropped
2023-08-02 18:45:59.459 - DEBUG - opcua::server::diagnostics - Decrementing current session count to 0
2023-08-02 18:45:59.459 - INFO - opcua::server::server - Handling new connection PollEvented { io: Some(TcpStream { addr: 127.0.0.1:4855, peer: 127.0.0.1:58913, fd: 10 }) }
2023-08-02 18:45:59.461 - INFO - opcua::server::comms::tcp_transport - Socket info:
  Linger - No linger,
  TTL - 64
2023-08-02 18:45:59.461 - INFO - opcua::server::comms::tcp_transport - Session transport i=339 started at 2023-08-02 18:45:59.461658 UTC
2023-08-02 18:45:59.461 - DEBUG - opcua::server::state - Endpoints requested, transport profile uris None
2023-08-02 18:45:59.462 - DEBUG - opcua::server::state - user_identity_tokens() returned zero endpoints for endpoint /noaccess / None None
2023-08-02 18:45:59.462 - DEBUG - opcua::server::comms::tcp_transport - Sending ACK
2023-08-02 18:45:59.462 - DEBUG - opcua::server::comms::tcp_transport - Starting subscription timer loop
2023-08-02 18:45:59.463 - DEBUG - opcua::server::comms::secure_channel_service - Message security mode == None
2023-08-02 18:45:59.463 - DEBUG - opcua::core::comms::secure_channel - AsymmetricSecurityHeader = AsymmetricSecurityHeader { security_policy_uri: UAString { value: Some("http://opcfoundation.org/UA/SecurityPolicy#None") }, sender_certificate: ByteString { value: None }, receiver_certificate_thumbprint: ByteString { value: None } }
2023-08-02 18:45:59.464 - WARN - opcua::server::services::message_handler - validate_activate_service_request, session not found for token b=Q1y11rKvNpeUxycF57DcoaAY/KzHUECo1KbJYWIY3WA=
2023-08-02 18:45:59.464 - DEBUG - opcua::server::diagnostics - Incrementing current session count to 1
2023-08-02 18:45:59.465 - DEBUG - opcua::server::services::session - Create session request CreateSessionRequest { request_header: RequestHeader { authentication_token: NodeId { namespace: 0, identifier: Numeric(0) }, timestamp: DateTime { date_time: 2023-08-02T18:45:59.464Z }, request_handle: 0, return_diagnostics: (empty), audit_entry_id: UAString { value: None }, timeout_hint: 0, additional_header: ExtensionObject { node_id: NodeId { namespace: 0, identifier: Numeric(0) }, body: None } }, client_description: ApplicationDescription { application_uri: UAString { value: Some("urn:is-kevinc:ProsysOPC:UaBrowser") }, product_uri: UAString { value: Some("urn:prosysopc.com:UaBrowser") }, application_name: LocalizedText { locale: UAString { value: Some("") }, text: UAString { value: Some("UaBrowser@is-kevinc") } }, application_type: Client, gateway_server_uri: UAString { value: None }, discovery_profile_uri: UAString { value: None }, discovery_urls: None }, server_uri: UAString { value: Some("urn:OPC UA Sample Server") }, endpoint_url: UAString { value: Some("opc.tcp://0.0.0.0:4855/") }, session_name: UAString { value: Some("UaBrowser@is-kevinc - Session 7") }, client_nonce: ByteString { value: Some([112, 66, 62, 54, 136, 198, 84, 12, 102, 47, 0, 231, 0, 54, 48, 154, 224, 250, 105, 186, 160, 50, 177, 179, 191, 81, 207, 12, 159, 4, 5, 14]) }, client_certificate: ByteString { value: Some([48, 130, 3, 154, 48, 130, 2, 130, 160, 3, 2, 1, 2, 2, 6, 1, 135, 93, 133, 147, 208, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 48, 51, 49, 28, 48, 26, 6, 3, 85, 4, 3, 12, 19, 85, 97, 66, 114, 111, 119, 115, 101, 114, 64, 105, 115, 45, 107, 101, 118, 105, 110, 99, 49, 19, 48, 17, 6, 3, 85, 4, 10, 12, 10, 80, 114, 111, 115, 121, 115, 32, 79, 80, 67, 48, 30, 23, 13, 50, 51, 48, 52, 48, 55, 50, 48, 48, 48, 52, 55, 90, 23, 13, 51, 51, 48, 52, 48, 52, 50, 49, 48, 48, 52, 55, 90, 48, 51, 49, 28, 48, 26, 6, 3, 85, 4, 3, 12, 19, 85, 97, 66, 114, 111, 119, 115, 101, 114, 64, 105, 115, 45, 107, 101, 118, 105, 110, 99, 49, 19, 48, 17, 6, 3, 85, 4, 10, 12, 10, 80, 114, 111, 115, 121, 115, 32, 79, 80, 67, 48, 130, 1, 34, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 1, 5, 0, 3, 130, 1, 15, 0, 48, 130, 1, 10, 2, 130, 1, 1, 0, 172, 50, 196, 18, 98, 249, 53, 51, 24, 59, 170, 246, 18, 88, 56, 177, 19, 196, 107, 146, 10, 93, 228, 220, 20, 40, 224, 76, 211, 3, 66, 178, 62, 19, 99, 238, 68, 124, 98, 146, 155, 49, 38, 54, 130, 9, 76, 55, 72, 232, 245, 78, 195, 26, 196, 33, 230, 207, 251, 138, 232, 137, 63, 125, 163, 154, 88, 247, 29, 184, 71, 144, 30, 98, 46, 146, 244, 239, 137, 42, 221, 174, 10, 229, 199, 199, 59, 213, 139, 251, 226, 113, 26, 1, 82, 92, 66, 186, 250, 133, 132, 208, 59, 193, 18, 173, 167, 139, 167, 144, 187, 141, 163, 36, 216, 223, 178, 167, 210, 81, 236, 135, 28, 128, 66, 173, 220, 29, 111, 162, 148, 205, 195, 133, 97, 154, 7, 1, 177, 255, 115, 65, 119, 81, 75, 197, 123, 88, 173, 114, 16, 148, 230, 101, 13, 233, 47, 211, 250, 228, 112, 219, 197, 160, 118, 152, 170, 123, 97, 169, 94, 73, 224, 217, 244, 8, 190, 34, 100, 83, 36, 229, 73, 223, 115, 215, 223, 41, 201, 209, 148, 10, 13, 197, 85, 238, 48, 214, 231, 5, 113, 84, 150, 202, 143, 227, 214, 7, 166, 143, 191, 80, 191, 51, 218, 131, 157, 21, 182, 3, 160, 158, 125, 186, 184, 41, 93, 225, 97, 166, 203, 18, 237, 33, 40, 210, 136, 152, 245, 103, 192, 136, 13, 192, 23, 214, 45, 157, 57, 66, 244, 83, 24, 34, 44, 151, 2, 3, 1, 0, 1, 163, 129, 179, 48, 129, 176, 48, 31, 6, 3, 85, 29, 35, 4, 24, 48, 22, 128, 20, 155, 217, 5, 232, 120, 119, 111, 20, 235, 11, 58, 197, 224, 41, 203, 214, 28, 127, 227, 126, 48, 29, 6, 3, 85, 29, 14, 4, 22, 4, 20, 155, 217, 5, 232, 120, 119, 111, 20, 235, 11, 58, 197, 224, 41, 203, 214, 28, 127, 227, 126, 48, 9, 6, 3, 85, 29, 19, 4, 2, 48, 0, 48, 11, 6, 3, 85, 29, 15, 4, 4, 3, 2, 2, 244, 48, 29, 6, 3, 85, 29, 37, 4, 22, 48, 20, 6, 8, 43, 6, 1, 5, 5, 7, 3, 1, 6, 8, 43, 6, 1, 5, 5, 7, 3, 2, 48, 55, 6, 3, 85, 29, 17, 4, 48, 48, 46, 134, 33, 117, 114, 110, 58, 105, 115, 45, 107, 101, 118, 105, 110, 99, 58, 80, 114, 111, 115, 121, 115, 79, 80, 67, 58, 85, 97, 66, 114, 111, 119, 115, 101, 114, 130, 9, 105, 115, 45, 107, 101, 118, 105, 110, 99, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 3, 130, 1, 1, 0, 42, 228, 213, 107, 247, 223, 215, 66, 128, 48, 5, 103, 90, 16, 78, 66, 121, 234, 125, 159, 47, 24, 238, 211, 169, 153, 200, 210, 127, 137, 143, 87, 170, 217, 240, 194, 248, 217, 74, 175, 244, 37, 65, 91, 116, 16, 26, 190, 14, 155, 129, 219, 232, 54, 236, 22, 244, 16, 148, 106, 67, 83, 107, 214, 252, 42, 216, 135, 9, 93, 249, 61, 54, 227, 40, 73, 224, 20, 95, 221, 231, 11, 84, 30, 224, 167, 245, 177, 57, 37, 95, 94, 42, 152, 125, 188, 197, 99, 63, 100, 79, 67, 118, 231, 247, 102, 47, 23, 102, 74, 244, 69, 4, 247, 7, 28, 240, 24, 189, 247, 58, 128, 23, 60, 157, 212, 187, 149, 176, 202, 170, 250, 22, 17, 7, 120, 182, 8, 96, 158, 160, 81, 237, 145, 196, 18, 167, 117, 65, 219, 152, 196, 95, 244, 82, 176, 25, 52, 184, 200, 192, 28, 140, 164, 230, 196, 247, 24, 4, 238, 202, 66, 132, 65, 207, 104, 240, 123, 98, 137, 18, 213, 43, 74, 135, 185, 158, 252, 242, 119, 111, 189, 241, 242, 47, 24, 240, 84, 13, 1, 58, 104, 241, 144, 83, 93, 106, 232, 95, 76, 149, 29, 108, 219, 235, 166, 188, 35, 242, 157, 2, 238, 43, 175, 101, 171, 46, 224, 130, 58, 141, 208, 179, 165, 205, 92, 121, 66, 34, 153, 223, 145, 53, 225, 90, 185, 6, 126, 49, 13, 4, 195, 63, 144, 222, 111]) }, requested_session_timeout: 3600000.0, max_response_message_size: 0 }
2023-08-02 18:45:59.466 - DEBUG - opcua::server::state - find_endpoint, url = opc.tcp://0.0.0.0:4855/
2023-08-02 18:45:59.472 - INFO - opcua::server::events::audit - Audit Event: EventId=ByteString(ByteString { value: Some([213, 143, 238, 133, 129, 29, 73, 88, 132, 195, 8, 216, 7, 64, 157, 104]) }),EventType=i=2071,SourceNode=i=0,SourceName=[null],Time=2023-08-02T18:45:59.467557+00:00,ReceiveTime=2023-08-02T18:45:59.467557+00:00,Message=LocalizedText(LocalizedText { locale: UAString { value: None }, text: UAString { value: None } }),Severity=1,ActionTimeStamp=2023-08-02T18:45:59.467586+00:00,Status=true,ServerId=[null],ClientAuditEntryId=[null],ClientUserId=[null],SessionId=ns=1;s=Session-9,SecureChannelId=1,ClientCertificate=ByteString(ByteString { value: Some([48, 130, 3, 154, 48, 130, 2, 130, 160, 3, 2, 1, 2, 2, 6, 1, 135, 93, 133, 147, 208, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 48, 51, 49, 28, 48, 26, 6, 3, 85, 4, 3, 12, 19, 85, 97, 66, 114, 111, 119, 115, 101, 114, 64, 105, 115, 45, 107, 101, 118, 105, 110, 99, 49, 19, 48, 17, 6, 3, 85, 4, 10, 12, 10, 80, 114, 111, 115, 121, 115, 32, 79, 80, 67, 48, 30, 23, 13, 50, 51, 48, 52, 48, 55, 50, 48, 48, 48, 52, 55, 90, 23, 13, 51, 51, 48, 52, 48, 52, 50, 49, 48, 48, 52, 55, 90, 48, 51, 49, 28, 48, 26, 6, 3, 85, 4, 3, 12, 19, 85, 97, 66, 114, 111, 119, 115, 101, 114, 64, 105, 115, 45, 107, 101, 118, 105, 110, 99, 49, 19, 48, 17, 6, 3, 85, 4, 10, 12, 10, 80, 114, 111, 115, 121, 115, 32, 79, 80, 67, 48, 130, 1, 34, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 1, 5, 0, 3, 130, 1, 15, 0, 48, 130, 1, 10, 2, 130, 1, 1, 0, 172, 50, 196, 18, 98, 249, 53, 51, 24, 59, 170, 246, 18, 88, 56, 177, 19, 196, 107, 146, 10, 93, 228, 220, 20, 40, 224, 76, 211, 3, 66, 178, 62, 19, 99, 238, 68, 124, 98, 146, 155, 49, 38, 54, 130, 9, 76, 55, 72, 232, 245, 78, 195, 26, 196, 33, 230, 207, 251, 138, 232, 137, 63, 125, 163, 154, 88, 247, 29, 184, 71, 144, 30, 98, 46, 146, 244, 239, 137, 42, 221, 174, 10, 229, 199, 199, 59, 213, 139, 251, 226, 113, 26, 1, 82, 92, 66, 186, 250, 133, 132, 208, 59, 193, 18, 173, 167, 139, 167, 144, 187, 141, 163, 36, 216, 223, 178, 167, 210, 81, 236, 135, 28, 128, 66, 173, 220, 29, 111, 162, 148, 205, 195, 133, 97, 154, 7, 1, 177, 255, 115, 65, 119, 81, 75, 197, 123, 88, 173, 114, 16, 148, 230, 101, 13, 233, 47, 211, 250, 228, 112, 219, 197, 160, 118, 152, 170, 123, 97, 169, 94, 73, 224, 217, 244, 8, 190, 34, 100, 83, 36, 229, 73, 223, 115, 215, 223, 41, 201, 209, 148, 10, 13, 197, 85, 238, 48, 214, 231, 5, 113, 84, 150, 202, 143, 227, 214, 7, 166, 143, 191, 80, 191, 51, 218, 131, 157, 21, 182, 3, 160, 158, 125, 186, 184, 41, 93, 225, 97, 166, 203, 18, 237, 33, 40, 210, 136, 152, 245, 103, 192, 136, 13, 192, 23, 214, 45, 157, 57, 66, 244, 83, 24, 34, 44, 151, 2, 3, 1, 0, 1, 163, 129, 179, 48, 129, 176, 48, 31, 6, 3, 85, 29, 35, 4, 24, 48, 22, 128, 20, 155, 217, 5, 232, 120, 119, 111, 20, 235, 11, 58, 197, 224, 41, 203, 214, 28, 127, 227, 126, 48, 29, 6, 3, 85, 29, 14, 4, 22, 4, 20, 155, 217, 5, 232, 120, 119, 111, 20, 235, 11, 58, 197, 224, 41, 203, 214, 28, 127, 227, 126, 48, 9, 6, 3, 85, 29, 19, 4, 2, 48, 0, 48, 11, 6, 3, 85, 29, 15, 4, 4, 3, 2, 2, 244, 48, 29, 6, 3, 85, 29, 37, 4, 22, 48, 20, 6, 8, 43, 6, 1, 5, 5, 7, 3, 1, 6, 8, 43, 6, 1, 5, 5, 7, 3, 2, 48, 55, 6, 3, 85, 29, 17, 4, 48, 48, 46, 134, 33, 117, 114, 110, 58, 105, 115, 45, 107, 101, 118, 105, 110, 99, 58, 80, 114, 111, 115, 121, 115, 79, 80, 67, 58, 85, 97, 66, 114, 111, 119, 115, 101, 114, 130, 9, 105, 115, 45, 107, 101, 118, 105, 110, 99, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 3, 130, 1, 1, 0, 42, 228, 213, 107, 247, 223, 215, 66, 128, 48, 5, 103, 90, 16, 78, 66, 121, 234, 125, 159, 47, 24, 238, 211, 169, 153, 200, 210, 127, 137, 143, 87, 170, 217, 240, 194, 248, 217, 74, 175, 244, 37, 65, 91, 116, 16, 26, 190, 14, 155, 129, 219, 232, 54, 236, 22, 244, 16, 148, 106, 67, 83, 107, 214, 252, 42, 216, 135, 9, 93, 249, 61, 54, 227, 40, 73, 224, 20, 95, 221, 231, 11, 84, 30, 224, 167, 245, 177, 57, 37, 95, 94, 42, 152, 125, 188, 197, 99, 63, 100, 79, 67, 118, 231, 247, 102, 47, 23, 102, 74, 244, 69, 4, 247, 7, 28, 240, 24, 189, 247, 58, 128, 23, 60, 157, 212, 187, 149, 176, 202, 170, 250, 22, 17, 7, 120, 182, 8, 96, 158, 160, 81, 237, 145, 196, 18, 167, 117, 65, 219, 152, 196, 95, 244, 82, 176, 25, 52, 184, 200, 192, 28, 140, 164, 230, 196, 247, 24, 4, 238, 202, 66, 132, 65, 207, 104, 240, 123, 98, 137, 18, 213, 43, 74, 135, 185, 158, 252, 242, 119, 111, 189, 241, 242, 47, 24, 240, 84, 13, 1, 58, 104, 241, 144, 83, 93, 106, 232, 95, 76, 149, 29, 108, 219, 235, 166, 188, 35, 242, 157, 2, 238, 43, 175, 101, 171, 46, 224, 130, 58, 141, 208, 179, 165, 205, 92, 121, 66, 34, 153, 223, 145, 53, 225, 90, 185, 6, 126, 49, 13, 4, 195, 63, 144, 222, 111]) }),ClientCertificateThumbprint=ef4e12dd728971b911fe640771c217339a717b55,RevisedSessionTimeout=60000
2023-08-02 18:45:59.472 - DEBUG - opcua::server::session_diagnostics - register_session for session id ns=1;s=Session-9
2023-08-02 18:45:59.472 - DEBUG - opcua::server::session_diagnostics - Adding an object node for the session id ns=1;s=Session-9
2023-08-02 18:45:59.475 - DEBUG - opcua::server::state - Anonymous identity is authenticated
2023-08-02 18:45:59.475 - INFO - opcua::server::services::session - activate_session success for session ns=1;s=Session-9
2023-08-02 18:45:59.476 - INFO - opcua::server::events::audit - Audit Event: EventId=ByteString(ByteString { value: Some([203, 49, 18, 84, 74, 242, 72, 147, 177, 245, 8, 12, 182, 242, 210, 97]) }),EventType=i=2071,SourceNode=i=0,SourceName=[null],Time=2023-08-02T18:45:59.475131+00:00,ReceiveTime=2023-08-02T18:45:59.475131+00:00,Message=LocalizedText(LocalizedText { locale: UAString { value: None }, text: UAString { value: None } }),Severity=1,ActionTimeStamp=2023-08-02T18:45:59.475152+00:00,Status=true,ServerId=[null],ClientAuditEntryId=[null],ClientUserId=[null],SessionId=ns=1;s=Session-9,ClientSoftwareCertificates=Array(Array { value_type: ExtensionObject, values: [], dimensions: [] }),UserIdentityToken=ExtensionObject(ExtensionObject { node_id: NodeId { namespace: 0, identifier: Numeric(318) }, body: ByteString(ByteString { value: Some([255, 255, 255, 255]) }) }),SecureChannelId=1
2023-08-02 18:45:59.865 - INFO - opcua::server::comms::secure_channel_service - CloseSecureChannelRequest received, session closing
2023-08-02 18:45:59.865 - INFO - opcua::server::comms::tcp_transport - Closing connection with status BadConnectionClosed
2023-08-02 18:45:59.865 - DEBUG - opcua::server::comms::tcp_transport - Transport is being placed in finished state, code BadConnectionClosed
2023-08-02 18:45:59.865 - INFO - opcua::server::session - Session being set to terminated
2023-08-02 18:45:59.865 - INFO - opcua::server::session - Session is being dropped
2023-08-02 18:45:59.865 - DEBUG - opcua::server::diagnostics - Decrementing current session count to 0
2023-08-02 18:45:59.867 - INFO - opcua::server::server - Handling new connection PollEvented { io: Some(TcpStream { addr: 127.0.0.1:4855, peer: 127.0.0.1:58914, fd: 11 }) }
2023-08-02 18:45:59.867 - INFO - opcua::server::comms::tcp_transport - Socket info:
  Linger - No linger,
  TTL - 64
2023-08-02 18:45:59.867 - INFO - opcua::server::comms::tcp_transport - Session transport i=377 started at 2023-08-02 18:45:59.867780 UTC
2023-08-02 18:45:59.867 - DEBUG - opcua::server::comms::tcp_transport - Starting subscription timer loop
2023-08-02 18:45:59.867 - DEBUG - opcua::server::state - Endpoints requested, transport profile uris None
2023-08-02 18:45:59.868 - DEBUG - opcua::server::state - user_identity_tokens() returned zero endpoints for endpoint /noaccess / None None
2023-08-02 18:45:59.868 - DEBUG - opcua::server::comms::tcp_transport - Sending ACK
2023-08-02 18:45:59.868 - DEBUG - opcua::server::comms::secure_channel_service - Message security mode == None
2023-08-02 18:45:59.868 - DEBUG - opcua::core::comms::secure_channel - AsymmetricSecurityHeader = AsymmetricSecurityHeader { security_policy_uri: UAString { value: Some("http://opcfoundation.org/UA/SecurityPolicy#None") }, sender_certificate: ByteString { value: None }, receiver_certificate_thumbprint: ByteString { value: None } }
2023-08-02 18:45:59.869 - WARN - opcua::server::services::message_handler - validate_activate_service_request, session not found for token b=/OGtkXo+m/gD5/3R/LVWq0dakAkpqqDrMRTZmEB+10c=
2023-08-02 18:45:59.869 - DEBUG - opcua::server::diagnostics - Incrementing current session count to 1
2023-08-02 18:45:59.869 - DEBUG - opcua::server::services::session - Create session request CreateSessionRequest { request_header: RequestHeader { authentication_token: NodeId { namespace: 0, identifier: Numeric(0) }, timestamp: DateTime { date_time: 2023-08-02T18:45:59.869Z }, request_handle: 0, return_diagnostics: (empty), audit_entry_id: UAString { value: None }, timeout_hint: 0, additional_header: ExtensionObject { node_id: NodeId { namespace: 0, identifier: Numeric(0) }, body: None } }, client_description: ApplicationDescription { application_uri: UAString { value: Some("urn:is-kevinc:ProsysOPC:UaBrowser") }, product_uri: UAString { value: Some("urn:prosysopc.com:UaBrowser") }, application_name: LocalizedText { locale: UAString { value: Some("") }, text: UAString { value: Some("UaBrowser@is-kevinc") } }, application_type: Client, gateway_server_uri: UAString { value: None }, discovery_profile_uri: UAString { value: None }, discovery_urls: None }, server_uri: UAString { value: Some("urn:OPC UA Sample Server") }, endpoint_url: UAString { value: Some("opc.tcp://0.0.0.0:4855/") }, session_name: UAString { value: Some("UaBrowser@is-kevinc - Session 8") }, client_nonce: ByteString { value: Some([128, 154, 192, 245, 177, 207, 229, 199, 9, 106, 154, 198, 125, 247, 47, 205, 5, 77, 98, 115, 40, 179, 16, 45, 60, 126, 40, 216, 239, 65, 251, 75]) }, client_certificate: ByteString { value: Some([48, 130, 3, 154, 48, 130, 2, 130, 160, 3, 2, 1, 2, 2, 6, 1, 135, 93, 133, 147, 208, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 48, 51, 49, 28, 48, 26, 6, 3, 85, 4, 3, 12, 19, 85, 97, 66, 114, 111, 119, 115, 101, 114, 64, 105, 115, 45, 107, 101, 118, 105, 110, 99, 49, 19, 48, 17, 6, 3, 85, 4, 10, 12, 10, 80, 114, 111, 115, 121, 115, 32, 79, 80, 67, 48, 30, 23, 13, 50, 51, 48, 52, 48, 55, 50, 48, 48, 48, 52, 55, 90, 23, 13, 51, 51, 48, 52, 48, 52, 50, 49, 48, 48, 52, 55, 90, 48, 51, 49, 28, 48, 26, 6, 3, 85, 4, 3, 12, 19, 85, 97, 66, 114, 111, 119, 115, 101, 114, 64, 105, 115, 45, 107, 101, 118, 105, 110, 99, 49, 19, 48, 17, 6, 3, 85, 4, 10, 12, 10, 80, 114, 111, 115, 121, 115, 32, 79, 80, 67, 48, 130, 1, 34, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 1, 5, 0, 3, 130, 1, 15, 0, 48, 130, 1, 10, 2, 130, 1, 1, 0, 172, 50, 196, 18, 98, 249, 53, 51, 24, 59, 170, 246, 18, 88, 56, 177, 19, 196, 107, 146, 10, 93, 228, 220, 20, 40, 224, 76, 211, 3, 66, 178, 62, 19, 99, 238, 68, 124, 98, 146, 155, 49, 38, 54, 130, 9, 76, 55, 72, 232, 245, 78, 195, 26, 196, 33, 230, 207, 251, 138, 232, 137, 63, 125, 163, 154, 88, 247, 29, 184, 71, 144, 30, 98, 46, 146, 244, 239, 137, 42, 221, 174, 10, 229, 199, 199, 59, 213, 139, 251, 226, 113, 26, 1, 82, 92, 66, 186, 250, 133, 132, 208, 59, 193, 18, 173, 167, 139, 167, 144, 187, 141, 163, 36, 216, 223, 178, 167, 210, 81, 236, 135, 28, 128, 66, 173, 220, 29, 111, 162, 148, 205, 195, 133, 97, 154, 7, 1, 177, 255, 115, 65, 119, 81, 75, 197, 123, 88, 173, 114, 16, 148, 230, 101, 13, 233, 47, 211, 250, 228, 112, 219, 197, 160, 118, 152, 170, 123, 97, 169, 94, 73, 224, 217, 244, 8, 190, 34, 100, 83, 36, 229, 73, 223, 115, 215, 223, 41, 201, 209, 148, 10, 13, 197, 85, 238, 48, 214, 231, 5, 113, 84, 150, 202, 143, 227, 214, 7, 166, 143, 191, 80, 191, 51, 218, 131, 157, 21, 182, 3, 160, 158, 125, 186, 184, 41, 93, 225, 97, 166, 203, 18, 237, 33, 40, 210, 136, 152, 245, 103, 192, 136, 13, 192, 23, 214, 45, 157, 57, 66, 244, 83, 24, 34, 44, 151, 2, 3, 1, 0, 1, 163, 129, 179, 48, 129, 176, 48, 31, 6, 3, 85, 29, 35, 4, 24, 48, 22, 128, 20, 155, 217, 5, 232, 120, 119, 111, 20, 235, 11, 58, 197, 224, 41, 203, 214, 28, 127, 227, 126, 48, 29, 6, 3, 85, 29, 14, 4, 22, 4, 20, 155, 217, 5, 232, 120, 119, 111, 20, 235, 11, 58, 197, 224, 41, 203, 214, 28, 127, 227, 126, 48, 9, 6, 3, 85, 29, 19, 4, 2, 48, 0, 48, 11, 6, 3, 85, 29, 15, 4, 4, 3, 2, 2, 244, 48, 29, 6, 3, 85, 29, 37, 4, 22, 48, 20, 6, 8, 43, 6, 1, 5, 5, 7, 3, 1, 6, 8, 43, 6, 1, 5, 5, 7, 3, 2, 48, 55, 6, 3, 85, 29, 17, 4, 48, 48, 46, 134, 33, 117, 114, 110, 58, 105, 115, 45, 107, 101, 118, 105, 110, 99, 58, 80, 114, 111, 115, 121, 115, 79, 80, 67, 58, 85, 97, 66, 114, 111, 119, 115, 101, 114, 130, 9, 105, 115, 45, 107, 101, 118, 105, 110, 99, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 3, 130, 1, 1, 0, 42, 228, 213, 107, 247, 223, 215, 66, 128, 48, 5, 103, 90, 16, 78, 66, 121, 234, 125, 159, 47, 24, 238, 211, 169, 153, 200, 210, 127, 137, 143, 87, 170, 217, 240, 194, 248, 217, 74, 175, 244, 37, 65, 91, 116, 16, 26, 190, 14, 155, 129, 219, 232, 54, 236, 22, 244, 16, 148, 106, 67, 83, 107, 214, 252, 42, 216, 135, 9, 93, 249, 61, 54, 227, 40, 73, 224, 20, 95, 221, 231, 11, 84, 30, 224, 167, 245, 177, 57, 37, 95, 94, 42, 152, 125, 188, 197, 99, 63, 100, 79, 67, 118, 231, 247, 102, 47, 23, 102, 74, 244, 69, 4, 247, 7, 28, 240, 24, 189, 247, 58, 128, 23, 60, 157, 212, 187, 149, 176, 202, 170, 250, 22, 17, 7, 120, 182, 8, 96, 158, 160, 81, 237, 145, 196, 18, 167, 117, 65, 219, 152, 196, 95, 244, 82, 176, 25, 52, 184, 200, 192, 28, 140, 164, 230, 196, 247, 24, 4, 238, 202, 66, 132, 65, 207, 104, 240, 123, 98, 137, 18, 213, 43, 74, 135, 185, 158, 252, 242, 119, 111, 189, 241, 242, 47, 24, 240, 84, 13, 1, 58, 104, 241, 144, 83, 93, 106, 232, 95, 76, 149, 29, 108, 219, 235, 166, 188, 35, 242, 157, 2, 238, 43, 175, 101, 171, 46, 224, 130, 58, 141, 208, 179, 165, 205, 92, 121, 66, 34, 153, 223, 145, 53, 225, 90, 185, 6, 126, 49, 13, 4, 195, 63, 144, 222, 111]) }, requested_session_timeout: 3600000.0, max_response_message_size: 0 }
2023-08-02 18:45:59.869 - DEBUG - opcua::server::state - find_endpoint, url = opc.tcp://0.0.0.0:4855/
2023-08-02 18:45:59.870 - INFO - opcua::server::events::audit - Audit Event: EventId=ByteString(ByteString { value: Some([79, 31, 235, 67, 73, 234, 64, 246, 155, 254, 150, 195, 100, 27, 130, 1]) }),EventType=i=2071,SourceNode=i=0,SourceName=[null],Time=2023-08-02T18:45:59.870316+00:00,ReceiveTime=2023-08-02T18:45:59.870316+00:00,Message=LocalizedText(LocalizedText { locale: UAString { value: None }, text: UAString { value: None } }),Severity=1,ActionTimeStamp=2023-08-02T18:45:59.870323+00:00,Status=true,ServerId=[null],ClientAuditEntryId=[null],ClientUserId=[null],SessionId=ns=1;s=Session-10,SecureChannelId=1,ClientCertificate=ByteString(ByteString { value: Some([48, 130, 3, 154, 48, 130, 2, 130, 160, 3, 2, 1, 2, 2, 6, 1, 135, 93, 133, 147, 208, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 48, 51, 49, 28, 48, 26, 6, 3, 85, 4, 3, 12, 19, 85, 97, 66, 114, 111, 119, 115, 101, 114, 64, 105, 115, 45, 107, 101, 118, 105, 110, 99, 49, 19, 48, 17, 6, 3, 85, 4, 10, 12, 10, 80, 114, 111, 115, 121, 115, 32, 79, 80, 67, 48, 30, 23, 13, 50, 51, 48, 52, 48, 55, 50, 48, 48, 48, 52, 55, 90, 23, 13, 51, 51, 48, 52, 48, 52, 50, 49, 48, 48, 52, 55, 90, 48, 51, 49, 28, 48, 26, 6, 3, 85, 4, 3, 12, 19, 85, 97, 66, 114, 111, 119, 115, 101, 114, 64, 105, 115, 45, 107, 101, 118, 105, 110, 99, 49, 19, 48, 17, 6, 3, 85, 4, 10, 12, 10, 80, 114, 111, 115, 121, 115, 32, 79, 80, 67, 48, 130, 1, 34, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 1, 5, 0, 3, 130, 1, 15, 0, 48, 130, 1, 10, 2, 130, 1, 1, 0, 172, 50, 196, 18, 98, 249, 53, 51, 24, 59, 170, 246, 18, 88, 56, 177, 19, 196, 107, 146, 10, 93, 228, 220, 20, 40, 224, 76, 211, 3, 66, 178, 62, 19, 99, 238, 68, 124, 98, 146, 155, 49, 38, 54, 130, 9, 76, 55, 72, 232, 245, 78, 195, 26, 196, 33, 230, 207, 251, 138, 232, 137, 63, 125, 163, 154, 88, 247, 29, 184, 71, 144, 30, 98, 46, 146, 244, 239, 137, 42, 221, 174, 10, 229, 199, 199, 59, 213, 139, 251, 226, 113, 26, 1, 82, 92, 66, 186, 250, 133, 132, 208, 59, 193, 18, 173, 167, 139, 167, 144, 187, 141, 163, 36, 216, 223, 178, 167, 210, 81, 236, 135, 28, 128, 66, 173, 220, 29, 111, 162, 148, 205, 195, 133, 97, 154, 7, 1, 177, 255, 115, 65, 119, 81, 75, 197, 123, 88, 173, 114, 16, 148, 230, 101, 13, 233, 47, 211, 250, 228, 112, 219, 197, 160, 118, 152, 170, 123, 97, 169, 94, 73, 224, 217, 244, 8, 190, 34, 100, 83, 36, 229, 73, 223, 115, 215, 223, 41, 201, 209, 148, 10, 13, 197, 85, 238, 48, 214, 231, 5, 113, 84, 150, 202, 143, 227, 214, 7, 166, 143, 191, 80, 191, 51, 218, 131, 157, 21, 182, 3, 160, 158, 125, 186, 184, 41, 93, 225, 97, 166, 203, 18, 237, 33, 40, 210, 136, 152, 245, 103, 192, 136, 13, 192, 23, 214, 45, 157, 57, 66, 244, 83, 24, 34, 44, 151, 2, 3, 1, 0, 1, 163, 129, 179, 48, 129, 176, 48, 31, 6, 3, 85, 29, 35, 4, 24, 48, 22, 128, 20, 155, 217, 5, 232, 120, 119, 111, 20, 235, 11, 58, 197, 224, 41, 203, 214, 28, 127, 227, 126, 48, 29, 6, 3, 85, 29, 14, 4, 22, 4, 20, 155, 217, 5, 232, 120, 119, 111, 20, 235, 11, 58, 197, 224, 41, 203, 214, 28, 127, 227, 126, 48, 9, 6, 3, 85, 29, 19, 4, 2, 48, 0, 48, 11, 6, 3, 85, 29, 15, 4, 4, 3, 2, 2, 244, 48, 29, 6, 3, 85, 29, 37, 4, 22, 48, 20, 6, 8, 43, 6, 1, 5, 5, 7, 3, 1, 6, 8, 43, 6, 1, 5, 5, 7, 3, 2, 48, 55, 6, 3, 85, 29, 17, 4, 48, 48, 46, 134, 33, 117, 114, 110, 58, 105, 115, 45, 107, 101, 118, 105, 110, 99, 58, 80, 114, 111, 115, 121, 115, 79, 80, 67, 58, 85, 97, 66, 114, 111, 119, 115, 101, 114, 130, 9, 105, 115, 45, 107, 101, 118, 105, 110, 99, 48, 13, 6, 9, 42, 134, 72, 134, 247, 13, 1, 1, 11, 5, 0, 3, 130, 1, 1, 0, 42, 228, 213, 107, 247, 223, 215, 66, 128, 48, 5, 103, 90, 16, 78, 66, 121, 234, 125, 159, 47, 24, 238, 211, 169, 153, 200, 210, 127, 137, 143, 87, 170, 217, 240, 194, 248, 217, 74, 175, 244, 37, 65, 91, 116, 16, 26, 190, 14, 155, 129, 219, 232, 54, 236, 22, 244, 16, 148, 106, 67, 83, 107, 214, 252, 42, 216, 135, 9, 93, 249, 61, 54, 227, 40, 73, 224, 20, 95, 221, 231, 11, 84, 30, 224, 167, 245, 177, 57, 37, 95, 94, 42, 152, 125, 188, 197, 99, 63, 100, 79, 67, 118, 231, 247, 102, 47, 23, 102, 74, 244, 69, 4, 247, 7, 28, 240, 24, 189, 247, 58, 128, 23, 60, 157, 212, 187, 149, 176, 202, 170, 250, 22, 17, 7, 120, 182, 8, 96, 158, 160, 81, 237, 145, 196, 18, 167, 117, 65, 219, 152, 196, 95, 244, 82, 176, 25, 52, 184, 200, 192, 28, 140, 164, 230, 196, 247, 24, 4, 238, 202, 66, 132, 65, 207, 104, 240, 123, 98, 137, 18, 213, 43, 74, 135, 185, 158, 252, 242, 119, 111, 189, 241, 242, 47, 24, 240, 84, 13, 1, 58, 104, 241, 144, 83, 93, 106, 232, 95, 76, 149, 29, 108, 219, 235, 166, 188, 35, 242, 157, 2, 238, 43, 175, 101, 171, 46, 224, 130, 58, 141, 208, 179, 165, 205, 92, 121, 66, 34, 153, 223, 145, 53, 225, 90, 185, 6, 126, 49, 13, 4, 195, 63, 144, 222, 111]) }),ClientCertificateThumbprint=ef4e12dd728971b911fe640771c217339a717b55,RevisedSessionTimeout=60000
2023-08-02 18:45:59.870 - DEBUG - opcua::server::session_diagnostics - register_session for session id ns=1;s=Session-10
2023-08-02 18:45:59.870 - DEBUG - opcua::server::session_diagnostics - Adding an object node for the session id ns=1;s=Session-10
2023-08-02 18:45:59.871 - DEBUG - opcua::server::state - Anonymous identity is authenticated
2023-08-02 18:45:59.871 - INFO - opcua::server::services::session - activate_session success for session ns=1;s=Session-10
2023-08-02 18:45:59.872 - INFO - opcua::server::events::audit - Audit Event: EventId=ByteString(ByteString { value: Some([232, 168, 8, 82, 225, 62, 79, 6, 187, 140, 148, 234, 31, 83, 101, 163]) }),EventType=i=2071,SourceNode=i=0,SourceName=[null],Time=2023-08-02T18:45:59.871720+00:00,ReceiveTime=2023-08-02T18:45:59.871720+00:00,Message=LocalizedText(LocalizedText { locale: UAString { value: None }, text: UAString { value: None } }),Severity=1,ActionTimeStamp=2023-08-02T18:45:59.871727+00:00,Status=true,ServerId=[null],ClientAuditEntryId=[null],ClientUserId=[null],SessionId=ns=1;s=Session-10,ClientSoftwareCertificates=Array(Array { value_type: ExtensionObject, values: [], dimensions: [] }),UserIdentityToken=ExtensionObject(ExtensionObject { node_id: NodeId { namespace: 0, identifier: Numeric(318) }, body: ByteString(ByteString { value: Some([255, 255, 255, 255]) }) }),SecureChannelId=1
2023-08-02 18:46:00.613 - INFO - opcua::server::comms::secure_channel_service - CloseSecureChannelRequest received, session closing
2023-08-02 18:46:00.614 - INFO - opcua::server::comms::tcp_transport - Closing connection with status BadConnectionClosed
2023-08-02 18:46:00.614 - DEBUG - opcua::server::comms::tcp_transport - Transport is being placed in finished state, code BadConnectionClosed
2023-08-02 18:46:00.614 - INFO - opcua::server::session - Session being set to terminated
2023-08-02 18:46:00.614 - INFO - opcua::server::session - Session is being dropped
2023-08-02 18:46:00.615 - DEBUG - opcua::server::diagnostics - Decrementing current session count to 0
@kevincolyar
Copy link
Author

I should mention that I had to increase the following limits in server.conf in order for my clients to connect:

limits:
  send_buffer_size: 131072
  receive_buffer_size: 131072

Otherwise, I would get the following error:

ERROR - opcua::server::comms::secure_channel_service - Asked to renew token on session that has never issued token

@kevincolyar
Copy link
Author

I put together a quick project to demonstrate this issue:

https://github.com/kevincolyar/opcua-server-multiclient

This was referenced Aug 15, 2024
einarmo added a commit to einarmo/opcua that referenced this issue Aug 15, 2024
# What and Why

This is a rewrite of the server from scratch, with the primary goal of taking the server implementation from a limited, mostly embedded server, to a fully fledged, general purpose server SDK. The old way of using the server does still _more or less_ exist, see samples for the closest current approximation, but the server framework has changed drastically internally, and the new design opens the door for making far more complex and powerful OPC-UA servers.

## Goals

Currently my PC uses about ~1% CPU in release mode running the demo server, which updates 1000 variables once a second. This isn't bad, but I want this SDK to be able to handle servers with _millions_ of nodes. In practice this means several things:

 - It must be possible to store nodes externally, in some database or other system.
 - Monitored items must be notification based. There is always going to be sampling somewhere, but in practice large OPC-UA servers are _always_ push based, the polling is usually deferred to underlying systems, which may or may not be OPC-UA based at all.
 - It must be possible to store different sets of nodes in different ways. If anyone wanting to write a more complex server needs to reimplement diagnostics and the core namespace, the SDK isn't particularly useful. We could hard code that, but it seems better to create an abstraction.

## High level changes

First of all, there are some fundamental structural changes to better handle multiple clients and ensure compliance with the OPC-UA standard. Each TCP connection now runs in a tokio `task`, and most requests will actually spawn a `task` themselves. This is reasonably similar to how frameworks like `axum` handle web requests.

Subscriptions and sessions are now stored centrally, which allows us to implement `TransferSubscriptions` and properly handle subscriptions outliving their session as they are supposed to in OPC-UA. I think technically you can run multiple sessions on a single connection now, though I have no way to test this at the moment.

The web server is gone. It could have remained, but I think it deserves a rethink. It would be better (IMO), and deal with issues such as locka99#291, if we integrate with the `metrics` library, and optionally export some other metrics using some other generic interface. In general I think OPC-UA is plenty complicated enough without extending it with tangentially related features, though again this might be related to the shift I'm trying to create here from a specialized embedded server SDK, to a generic OPC-UA SDK.

Events are greatly changed, and quite unfinished. I believe a solid event implementation requires not just more thought, but a proper derive macro to make implementing them tolerable. The old approach relied on storing events as nodes, which works, and has some advantages, but it's not particularly efficient, and required setting a number of actually superfluous values, i.e. setting the displayname of an event, which is a value that cannot be accessed, as I understand it. The new approach is just storing them as structs, `dyn Event`.

## Node managers

The largest change is in how most services work. The server now contains a list of `NodeManager`s, an idea stolen from the .NET reference SDK, though I've gone further than they do there. Each node manager implements services for a collection of nodes, typically the nodes from one or more namespaces. When a request arrives we give each node manager the request items that belongs to it, so when we call `Read`, for example, a node manager will get the `ReadValueId`s where the `NodeManager` method `owns_node` returns `true`.

There are some exceptions, notably the `view` services can often involve requests that cross node-manager boundaries. Even with this, the idea is that this complexity is hidden from the user.

Implementing a node manager from scratch is challenging, see `node_manager/memory/diagnostics.rs` for an example of a node manager with very limited scope (but one where the visible nodes are dynamic!).

To make it easier for users to develop their own servers, we provide them with a few partially implemented node managers that can be extended:

 - The `InMemoryNodeManager` deals with all non-value attributes, as well as `Browse`, and provides some convenient methods for setting values in the address space. Node managers based on this use the old `AddressSpace`. Each such node manager contains something implementing `InMemoryNodeManagerImpl`, which is a much more reasonable task to implement. See `tests/utils/node_manager.rs` for a very complete example, or `node_manager/memory/core.rs` for a more realistic example (this node manager implements the core namespace, which may also be interesting).
 - The `SimpleNodeManager` is an approximation of the old way to use the SDK. Nodes are added externally, and you can provide getters, setters, and method callbacks. These are no longer part of the address space.

More node managers can absolutely be added if we find good abstractions, but these are solid enough to let us implement what we need for the time being.

# Lost features

Some features are lost, some forever, others until we get around to reimplementing them. I could have held off on this PR until they were all ready, but it's already large enough.

 - Diagnostics are almost entirely gone, though there is a sort of framework for them. In practice the whole thing needs a rethink, and it's an isolated enough task that it made sense to leave out for now.
 - Setting sampling interval to `-1` no longer works. I wanted to make everything work, but in typical OPC-UA fashion some features are just incredibly hard to properly implement in a performant way. I'm open for suggestions for implementing this in a good way, but it's such a niche feature that I felt it was fine to leave it out for now.
 - The web server, as mentioned above.
 - Auditing. Same reason as diagnostics, but also because events are so cumbersome at the moment.

# General improvements

Integration tests are moved into the library as cargo integration tests, and they are quite nice. I can run `cargo test` in about ~30 seconds, most of which is spent on some expensive crypto methods. There is a test harness that allows you to spin up a server using port `0`, meaning that you get dynamically assigned a port, which means we can run tests in parallel arbitrarily.

This almost certainly fixes locka99#359, locka99#358, locka99#324, locka99#291, and locka99#281, and probably more.

# Future work

See `todo.md`, the loose ends mentioned in this PR description need to be tied up, and there is a whole lot of other stuff in that file that would be nice to do.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant