{"action":"created","comment":{"url":"https://api.github.com/repos/open62541/open62541/pulls/comments/201599409","pull_request_review_id":136130515,"id":201599409,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwMTU5OTQwOQ==","diff_hunk":"@@ -128,46 +128,64 @@ MonitoredItem_ensureQueueSpace(UA_Server *server, UA_MonitoredItem *mon) {\n \n #ifdef UA_ENABLE_SUBSCRIPTIONS_EVENTS\n         /* Create an overflow notification */\n-        /* if(mon->monitoredItemType == UA_MONITOREDITEMTYPE_EVENTNOTIFY) { */\n-        /*     /\\* EventFilterResult currently isn't being used */\n-        /*     UA_EventFilterResult_deleteMembers(&del->data.event->result); *\\/ */\n-        /*     UA_EventFieldList_deleteMembers(&del->data.event.fields); */\n-\n-        /*     /\\* cause an overflowEvent *\\/ */\n-        /*     /\\* an overflowEvent does not care about event filters and as such */\n-        /*      * will not be \"triggered\" correctly. Instead, a notification will */\n-        /*      * be inserted into the queue which includes only the nodeId of the */\n-        /*      * overflowEventType. It is up to the client to check for possible */\n-        /*      * overflows. *\\/ */\n-        /*     UA_Notification *overflowNotification = (UA_Notification *) UA_malloc(sizeof(UA_Notification)); */\n-        /*     if(!overflowNotification) */\n-        /*         return UA_STATUSCODE_BADOUTOFMEMORY; */\n-\n-        /*     UA_EventFieldList_init(&overflowNotification->data.event.fields); */\n-        /*     overflowNotification->data.event.fields.eventFields = UA_Variant_new(); */\n-        /*     if(!overflowNotification->data.event.fields.eventFields) { */\n-        /*         UA_EventFieldList_deleteMembers(&overflowNotification->data.event.fields); */\n-        /*         UA_free(overflowNotification); */\n-        /*         return UA_STATUSCODE_BADOUTOFMEMORY; */\n-        /*     } */\n-\n-        /*     UA_Variant_init(overflowNotification->data.event.fields.eventFields); */\n-        /*     overflowNotification->data.event.fields.eventFieldsSize = 1; */\n-        /*     UA_NodeId overflowId = UA_NODEID_NUMERIC(0, UA_NS0ID_SIMPLEOVERFLOWEVENTTYPE); */\n-        /*     UA_Variant_setScalarCopy(overflowNotification->data.event.fields.eventFields, */\n-        /*                              &overflowId, &UA_TYPES[UA_TYPES_NODEID]); */\n-        /*     overflowNotification->mon = mon; */\n-        /*     if(mon->discardOldest) { */\n-        /*         TAILQ_INSERT_HEAD(&mon->queue, overflowNotification, listEntry); */\n-        /*         TAILQ_INSERT_HEAD(&mon->subscription->notificationQueue, overflowNotification, globalEntry); */\n-        /*     } else { */\n-        /*         TAILQ_INSERT_TAIL(&mon->queue, overflowNotification, listEntry); */\n-        /*         TAILQ_INSERT_TAIL(&mon->subscription->notificationQueue, overflowNotification, globalEntry); */\n-        /*     } */\n-        /*     ++mon->queueSize; */\n-        /*     ++sub->notificationQueueSize; */\n-        /*     ++sub->eventNotifications; */\n-        /* } */\n+         if(mon->monitoredItemType == UA_MONITOREDITEMTYPE_EVENTNOTIFY) {\n+             /* check if an overflowEvent is being deleted\n+              * TODO: make sure overflowEvents are never deleted */\n+             UA_NodeId overflowId = UA_NODEID_NUMERIC(0, UA_NS0ID_SIMPLEOVERFLOWEVENTTYPE);\n+\n+             /* Check if an OverflowEvent is being deleted */\n+             if (del->data.event.fields.eventFieldsSize == 1\n+                   &&  del->data.event.fields.eventFields[0].type == &UA_TYPES[UA_TYPES_NODEID]\n+                   &&  UA_NodeId_equal((UA_NodeId *)del->data.event.fields.eventFields[0].data, &overflowId)) {","path":"src/server/ua_subscription_datachange.c","position":67,"original_position":67,"commit_id":"9d9ae44fcfa970cee3a176d36b7937e776695dd2","original_commit_id":"9d9ae44fcfa970cee3a176d36b7937e776695dd2","user":{"login":"Pro","id":251973,"node_id":"MDQ6VXNlcjI1MTk3Mw==","avatar_url":"https://avatars0.githubusercontent.com/u/251973?v=4","gravatar_id":"","url":"https://api.github.com/users/Pro","html_url":"https://github.com/Pro","followers_url":"https://api.github.com/users/Pro/followers","following_url":"https://api.github.com/users/Pro/following{/other_user}","gists_url":"https://api.github.com/users/Pro/gists{/gist_id}","starred_url":"https://api.github.com/users/Pro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Pro/subscriptions","organizations_url":"https://api.github.com/users/Pro/orgs","repos_url":"https://api.github.com/users/Pro/repos","events_url":"https://api.github.com/users/Pro/events{/privacy}","received_events_url":"https://api.github.com/users/Pro/received_events","type":"User","site_admin":false},"body":"Here we also need to check for any subtypes of overflow events, not only for `overflowId`. I.e. use `isNodeInTree` to check if `(UA_NodeId *)del->data.event.fields.eventFields[0].data` is a child of OverflowEventType. Or do we only have the one `SimpleOverflowEventType` type? Maybe in the future we support other overflow types...","created_at":"2018-07-11T08:10:49Z","updated_at":"2018-07-11T08:14:07Z","html_url":"https://github.com/open62541/open62541/pull/1829#discussion_r201599409","pull_request_url":"https://api.github.com/repos/open62541/open62541/pulls/1829","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/open62541/open62541/pulls/comments/201599409"},"html":{"href":"https://github.com/open62541/open62541/pull/1829#discussion_r201599409"},"pull_request":{"href":"https://api.github.com/repos/open62541/open62541/pulls/1829"}}},"pull_request":{"url":"https://api.github.com/repos/open62541/open62541/pulls/1829","id":192119324,"node_id":"MDExOlB1bGxSZXF1ZXN0MTkyMTE5MzI0","html_url":"https://github.com/open62541/open62541/pull/1829","diff_url":"https://github.com/open62541/open62541/pull/1829.diff","patch_url":"https://github.com/open62541/open62541/pull/1829.patch","issue_url":"https://api.github.com/repos/open62541/open62541/issues/1829","number":1829,"state":"open","locked":false,"title":"Add support for EventQueueOverflowEvents","user":{"login":"aDogCalledSpot","id":22723953,"node_id":"MDQ6VXNlcjIyNzIzOTUz","avatar_url":"https://avatars2.githubusercontent.com/u/22723953?v=4","gravatar_id":"","url":"https://api.github.com/users/aDogCalledSpot","html_url":"https://github.com/aDogCalledSpot","followers_url":"https://api.github.com/users/aDogCalledSpot/followers","following_url":"https://api.github.com/users/aDogCalledSpot/following{/other_user}","gists_url":"https://api.github.com/users/aDogCalledSpot/gists{/gist_id}","starred_url":"https://api.github.com/users/aDogCalledSpot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aDogCalledSpot/subscriptions","organizations_url":"https://api.github.com/users/aDogCalledSpot/orgs","repos_url":"https://api.github.com/users/aDogCalledSpot/repos","events_url":"https://api.github.com/users/aDogCalledSpot/events{/privacy}","received_events_url":"https://api.github.com/users/aDogCalledSpot/received_events","type":"User","site_admin":false},"body":"Since the specification only states that the MonitoredItems' queue sizes are unaffected by EventQueueOverflowEvents, an additional counter has been added to MonitoredItems to keep track of the \"actual\" amount of items in the queue, even if the queueSize only reflects events which aren't overflows.\r\nThe subscription queues do not handle OverflowEvents in a special way.\r\n\r\n@jpfr Please review.","created_at":"2018-06-01T19:13:19Z","updated_at":"2018-07-11T08:14:07Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f57ec796e89c55740fbb18798b569848fc3b302a","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/open62541/open62541/pulls/1829/commits","review_comments_url":"https://api.github.com/repos/open62541/open62541/pulls/1829/comments","review_comment_url":"https://api.github.com/repos/open62541/open62541/pulls/comments{/number}","comments_url":"https://api.github.com/repos/open62541/open62541/issues/1829/comments","statuses_url":"https://api.github.com/repos/open62541/open62541/statuses/9d9ae44fcfa970cee3a176d36b7937e776695dd2","head":{"label":"aDogCalledSpot:feature/events_overflow","ref":"feature/events_overflow","sha":"9d9ae44fcfa970cee3a176d36b7937e776695dd2","user":{"login":"aDogCalledSpot","id":22723953,"node_id":"MDQ6VXNlcjIyNzIzOTUz","avatar_url":"https://avatars2.githubusercontent.com/u/22723953?v=4","gravatar_id":"","url":"https://api.github.com/users/aDogCalledSpot","html_url":"https://github.com/aDogCalledSpot","followers_url":"https://api.github.com/users/aDogCalledSpot/followers","following_url":"https://api.github.com/users/aDogCalledSpot/following{/other_user}","gists_url":"https://api.github.com/users/aDogCalledSpot/gists{/gist_id}","starred_url":"https://api.github.com/users/aDogCalledSpot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aDogCalledSpot/subscriptions","organizations_url":"https://api.github.com/users/aDogCalledSpot/orgs","repos_url":"https://api.github.com/users/aDogCalledSpot/repos","events_url":"https://api.github.com/users/aDogCalledSpot/events{/privacy}","received_events_url":"https://api.github.com/users/aDogCalledSpot/received_events","type":"User","site_admin":false},"repo":{"id":109268550,"node_id":"MDEwOlJlcG9zaXRvcnkxMDkyNjg1NTA=","name":"open62541","full_name":"aDogCalledSpot/open62541","owner":{"login":"aDogCalledSpot","id":22723953,"node_id":"MDQ6VXNlcjIyNzIzOTUz","avatar_url":"https://avatars2.githubusercontent.com/u/22723953?v=4","gravatar_id":"","url":"https://api.github.com/users/aDogCalledSpot","html_url":"https://github.com/aDogCalledSpot","followers_url":"https://api.github.com/users/aDogCalledSpot/followers","following_url":"https://api.github.com/users/aDogCalledSpot/following{/other_user}","gists_url":"https://api.github.com/users/aDogCalledSpot/gists{/gist_id}","starred_url":"https://api.github.com/users/aDogCalledSpot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aDogCalledSpot/subscriptions","organizations_url":"https://api.github.com/users/aDogCalledSpot/orgs","repos_url":"https://api.github.com/users/aDogCalledSpot/repos","events_url":"https://api.github.com/users/aDogCalledSpot/events{/privacy}","received_events_url":"https://api.github.com/users/aDogCalledSpot/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/aDogCalledSpot/open62541","description":"Open source implementation of OPC UA (OPC Unified Architecture) aka IEC 62541 licensed under Mozilla Public License v2.0","fork":true,"url":"https://api.github.com/repos/aDogCalledSpot/open62541","forks_url":"https://api.github.com/repos/aDogCalledSpot/open62541/forks","keys_url":"https://api.github.com/repos/aDogCalledSpot/open62541/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aDogCalledSpot/open62541/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aDogCalledSpot/open62541/teams","hooks_url":"https://api.github.com/repos/aDogCalledSpot/open62541/hooks","issue_events_url":"https://api.github.com/repos/aDogCalledSpot/open62541/issues/events{/number}","events_url":"https://api.github.com/repos/aDogCalledSpot/open62541/events","assignees_url":"https://api.github.com/repos/aDogCalledSpot/open62541/assignees{/user}","branches_url":"https://api.github.com/repos/aDogCalledSpot/open62541/branches{/branch}","tags_url":"https://api.github.com/repos/aDogCalledSpot/open62541/tags","blobs_url":"https://api.github.com/repos/aDogCalledSpot/open62541/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aDogCalledSpot/open62541/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aDogCalledSpot/open62541/git/refs{/sha}","trees_url":"https://api.github.com/repos/aDogCalledSpot/open62541/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aDogCalledSpot/open62541/statuses/{sha}","languages_url":"https://api.github.com/repos/aDogCalledSpot/open62541/languages","stargazers_url":"https://api.github.com/repos/aDogCalledSpot/open62541/stargazers","contributors_url":"https://api.github.com/repos/aDogCalledSpot/open62541/contributors","subscribers_url":"https://api.github.com/repos/aDogCalledSpot/open62541/subscribers","subscription_url":"https://api.github.com/repos/aDogCalledSpot/open62541/subscription","commits_url":"https://api.github.com/repos/aDogCalledSpot/open62541/commits{/sha}","git_commits_url":"https://api.github.com/repos/aDogCalledSpot/open62541/git/commits{/sha}","comments_url":"https://api.github.com/repos/aDogCalledSpot/open62541/comments{/number}","issue_comment_url":"https://api.github.com/repos/aDogCalledSpot/open62541/issues/comments{/number}","contents_url":"https://api.github.com/repos/aDogCalledSpot/open62541/contents/{+path}","compare_url":"https://api.github.com/repos/aDogCalledSpot/open62541/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aDogCalledSpot/open62541/merges","archive_url":"https://api.github.com/repos/aDogCalledSpot/open62541/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aDogCalledSpot/open62541/downloads","issues_url":"https://api.github.com/repos/aDogCalledSpot/open62541/issues{/number}","pulls_url":"https://api.github.com/repos/aDogCalledSpot/open62541/pulls{/number}","milestones_url":"https://api.github.com/repos/aDogCalledSpot/open62541/milestones{/number}","notifications_url":"https://api.github.com/repos/aDogCalledSpot/open62541/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aDogCalledSpot/open62541/labels{/name}","releases_url":"https://api.github.com/repos/aDogCalledSpot/open62541/releases{/id}","deployments_url":"https://api.github.com/repos/aDogCalledSpot/open62541/deployments","created_at":"2017-11-02T13:29:39Z","updated_at":"2018-07-06T11:00:20Z","pushed_at":"2018-07-08T22:02:07Z","git_url":"git://github.com/aDogCalledSpot/open62541.git","ssh_url":"git@github.com:aDogCalledSpot/open62541.git","clone_url":"https://github.com/aDogCalledSpot/open62541.git","svn_url":"https://github.com/aDogCalledSpot/open62541","homepage":"http://open62541.org","size":16084,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"open62541:master","ref":"master","sha":"36d5335a3e4b735b8d10b72c97be9c4fa18f7455","user":{"login":"open62541","id":16096536,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2MDk2NTM2","avatar_url":"https://avatars1.githubusercontent.com/u/16096536?v=4","gravatar_id":"","url":"https://api.github.com/users/open62541","html_url":"https://github.com/open62541","followers_url":"https://api.github.com/users/open62541/followers","following_url":"https://api.github.com/users/open62541/following{/other_user}","gists_url":"https://api.github.com/users/open62541/gists{/gist_id}","starred_url":"https://api.github.com/users/open62541/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/open62541/subscriptions","organizations_url":"https://api.github.com/users/open62541/orgs","repos_url":"https://api.github.com/users/open62541/repos","events_url":"https://api.github.com/users/open62541/events{/privacy}","received_events_url":"https://api.github.com/users/open62541/received_events","type":"Organization","site_admin":false},"repo":{"id":15333809,"node_id":"MDEwOlJlcG9zaXRvcnkxNTMzMzgwOQ==","name":"open62541","full_name":"open62541/open62541","owner":{"login":"open62541","id":16096536,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE2MDk2NTM2","avatar_url":"https://avatars1.githubusercontent.com/u/16096536?v=4","gravatar_id":"","url":"https://api.github.com/users/open62541","html_url":"https://github.com/open62541","followers_url":"https://api.github.com/users/open62541/followers","following_url":"https://api.github.com/users/open62541/following{/other_user}","gists_url":"https://api.github.com/users/open62541/gists{/gist_id}","starred_url":"https://api.github.com/users/open62541/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/open62541/subscriptions","organizations_url":"https://api.github.com/users/open62541/orgs","repos_url":"https://api.github.com/users/open62541/repos","events_url":"https://api.github.com/users/open62541/events{/privacy}","received_events_url":"https://api.github.com/users/open62541/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/open62541/open62541","description":"Open source implementation of OPC UA (OPC Unified Architecture) aka IEC 62541 licensed under Mozilla Public License v2.0","fork":false,"url":"https://api.github.com/repos/open62541/open62541","forks_url":"https://api.github.com/repos/open62541/open62541/forks","keys_url":"https://api.github.com/repos/open62541/open62541/keys{/key_id}","collaborators_url":"https://api.github.com/repos/open62541/open62541/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/open62541/open62541/teams","hooks_url":"https://api.github.com/repos/open62541/open62541/hooks","issue_events_url":"https://api.github.com/repos/open62541/open62541/issues/events{/number}","events_url":"https://api.github.com/repos/open62541/open62541/events","assignees_url":"https://api.github.com/repos/open62541/open62541/assignees{/user}","branches_url":"https://api.github.com/repos/open62541/open62541/branches{/branch}","tags_url":"https://api.github.com/repos/open62541/open62541/tags","blobs_url":"https://api.github.com/repos/open62541/open62541/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/open62541/open62541/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/open62541/open62541/git/refs{/sha}","trees_url":"https://api.github.com/repos/open62541/open62541/git/trees{/sha}","statuses_url":"https://api.github.com/repos/open62541/open62541/statuses/{sha}","languages_url":"https://api.github.com/repos/open62541/open62541/languages","stargazers_url":"https://api.github.com/repos/open62541/open62541/stargazers","contributors_url":"https://api.github.com/repos/open62541/open62541/contributors","subscribers_url":"https://api.github.com/repos/open62541/open62541/subscribers","subscription_url":"https://api.github.com/repos/open62541/open62541/subscription","commits_url":"https://api.github.com/repos/open62541/open62541/commits{/sha}","git_commits_url":"https://api.github.com/repos/open62541/open62541/git/commits{/sha}","comments_url":"https://api.github.com/repos/open62541/open62541/comments{/number}","issue_comment_url":"https://api.github.com/repos/open62541/open62541/issues/comments{/number}","contents_url":"https://api.github.com/repos/open62541/open62541/contents/{+path}","compare_url":"https://api.github.com/repos/open62541/open62541/compare/{base}...{head}","merges_url":"https://api.github.com/repos/open62541/open62541/merges","archive_url":"https://api.github.com/repos/open62541/open62541/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/open62541/open62541/downloads","issues_url":"https://api.github.com/repos/open62541/open62541/issues{/number}","pulls_url":"https://api.github.com/repos/open62541/open62541/pulls{/number}","milestones_url":"https://api.github.com/repos/open62541/open62541/milestones{/number}","notifications_url":"https://api.github.com/repos/open62541/open62541/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/open62541/open62541/labels{/name}","releases_url":"https://api.github.com/repos/open62541/open62541/releases{/id}","deployments_url":"https://api.github.com/repos/open62541/open62541/deployments","created_at":"2013-12-20T08:45:05Z","updated_at":"2018-07-10T10:30:20Z","pushed_at":"2018-07-11T08:06:06Z","git_url":"git://github.com/open62541/open62541.git","ssh_url":"git@github.com:open62541/open62541.git","clone_url":"https://github.com/open62541/open62541.git","svn_url":"https://github.com/open62541/open62541","homepage":"http://open62541.org","size":16440,"stargazers_count":470,"watchers_count":470,"language":"C","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":263,"mirror_url":null,"archived":false,"open_issues_count":108,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":263,"open_issues":108,"watchers":470,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/open62541/open62541/pulls/1829"},"html":{"href":"https://github.com/open62541/open62541/pull/1829"},"issue":{"href":"https://api.github.com/repos/open62541/open62541/issues/1829"},"comments":{"href":"https://api.github.com/repos/open62541/open62541/issues/1829/comments"},"review_comments":{"href":"https://api.github.com/repos/open62541/open62541/pulls/1829/comments"},"review_comment":{"href":"https://api.github.com/repos/open62541/open62541/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/open62541/open62541/pulls/1829/commits"},"statuses":{"href":"https://api.github.com/repos/open62541/open62541/statuses/9d9ae44fcfa970cee3a176d36b7937e776695dd2"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"Pro"}}