{"action":"created","issue":{"url":"https://api.github.com/repos/cms-sw/cmssw/issues/16088","repository_url":"https://api.github.com/repos/cms-sw/cmssw","labels_url":"https://api.github.com/repos/cms-sw/cmssw/issues/16088/labels{/name}","comments_url":"https://api.github.com/repos/cms-sw/cmssw/issues/16088/comments","events_url":"https://api.github.com/repos/cms-sw/cmssw/issues/16088/events","html_url":"https://github.com/cms-sw/cmssw/pull/16088","id":180895308,"number":16088,"title":"Pr81x l1t memory fixes","user":{"login":"rekovic","id":4990487,"avatar_url":"https://avatars.githubusercontent.com/u/4990487?v=3","gravatar_id":"","url":"https://api.github.com/users/rekovic","html_url":"https://github.com/rekovic","followers_url":"https://api.github.com/users/rekovic/followers","following_url":"https://api.github.com/users/rekovic/following{/other_user}","gists_url":"https://api.github.com/users/rekovic/gists{/gist_id}","starred_url":"https://api.github.com/users/rekovic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rekovic/subscriptions","organizations_url":"https://api.github.com/users/rekovic/orgs","repos_url":"https://api.github.com/users/rekovic/repos","events_url":"https://api.github.com/users/rekovic/events{/privacy}","received_events_url":"https://api.github.com/users/rekovic/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/comparison-available","name":"comparison-available","color":"009800"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/fully-signed","name":"fully-signed","color":"009800"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/l1-approved","name":"l1-approved","color":"009800"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/orp-approved","name":"orp-approved","color":"009800"},{"url":"https://api.github.com/repos/cms-sw/cmssw/labels/tests-approved","name":"tests-approved","color":"009800"}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/cms-sw/cmssw/milestones/59","html_url":"https://github.com/cms-sw/cmssw/milestones/Next%20CMSSW_8_1_X","labels_url":"https://api.github.com/repos/cms-sw/cmssw/milestones/59/labels","id":1590252,"number":59,"title":"Next CMSSW_8_1_X","description":null,"creator":{"login":"smuzaffar","id":4115138,"avatar_url":"https://avatars.githubusercontent.com/u/4115138?v=3","gravatar_id":"","url":"https://api.github.com/users/smuzaffar","html_url":"https://github.com/smuzaffar","followers_url":"https://api.github.com/users/smuzaffar/followers","following_url":"https://api.github.com/users/smuzaffar/following{/other_user}","gists_url":"https://api.github.com/users/smuzaffar/gists{/gist_id}","starred_url":"https://api.github.com/users/smuzaffar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smuzaffar/subscriptions","organizations_url":"https://api.github.com/users/smuzaffar/orgs","repos_url":"https://api.github.com/users/smuzaffar/repos","events_url":"https://api.github.com/users/smuzaffar/events{/privacy}","received_events_url":"https://api.github.com/users/smuzaffar/received_events","type":"User","site_admin":false},"open_issues":76,"closed_issues":1612,"state":"open","created_at":"2016-02-18T09:12:12Z","updated_at":"2016-10-07T15:46:21Z","due_on":null,"closed_at":null},"comments":24,"created_at":"2016-10-04T13:37:35Z","updated_at":"2016-10-07T19:56:26Z","closed_at":"2016-10-06T23:10:26Z","pull_request":{"url":"https://api.github.com/repos/cms-sw/cmssw/pulls/16088","html_url":"https://github.com/cms-sw/cmssw/pull/16088","diff_url":"https://github.com/cms-sw/cmssw/pull/16088.diff","patch_url":"https://github.com/cms-sw/cmssw/pull/16088.patch"},"body":"This is 81x version of #16085, except for this part which is already in 81x.\r\n\r\n- fix for **memory leak** in Muon Barell Extrapolater which was introduced with merging of O2O\r\n  (free allocated memory before every return).  This is already provided in 81x #16061 by @davidlange6 \r\n\r\nThis PR contains 2 types of fixes concerning memory management by L1Trigger:\r\n\r\n- fix for **repetitive memory allocation** in Muon Overlap XML Parser to reset DOM vector pool and release all the associated memory back to the system before re-using read methods.\r\n- fix for **Invalid writes** in Muon Barell ParamsHelper class by reserving the correct vector size."},"comment":{"url":"https://api.github.com/repos/cms-sw/cmssw/issues/comments/252346616","html_url":"https://github.com/cms-sw/cmssw/pull/16088#issuecomment-252346616","issue_url":"https://api.github.com/repos/cms-sw/cmssw/issues/16088","id":252346616,"user":{"login":"Dr15Jones","id":3757616,"avatar_url":"https://avatars.githubusercontent.com/u/3757616?v=3","gravatar_id":"","url":"https://api.github.com/users/Dr15Jones","html_url":"https://github.com/Dr15Jones","followers_url":"https://api.github.com/users/Dr15Jones/followers","following_url":"https://api.github.com/users/Dr15Jones/following{/other_user}","gists_url":"https://api.github.com/users/Dr15Jones/gists{/gist_id}","starred_url":"https://api.github.com/users/Dr15Jones/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dr15Jones/subscriptions","organizations_url":"https://api.github.com/users/Dr15Jones/orgs","repos_url":"https://api.github.com/users/Dr15Jones/repos","events_url":"https://api.github.com/users/Dr15Jones/events{/privacy}","received_events_url":"https://api.github.com/users/Dr15Jones/received_events","type":"User","site_admin":false},"created_at":"2016-10-07T19:56:25Z","updated_at":"2016-10-07T19:56:25Z","body":"The crash is becuase the XmlConfigReader declares a destructor but no copy-constructor. The XmlConfigReader is held by value as a member data to TrigSystem, which is held by value as member data to L1TMuonBarrelParamsHelper which in turn is copied here\r\nhttps://github.com/cms-l1t-offline/cmssw/blob/8a75953b6f0cdc8a12fc7a5f8e85718c180ba548/L1Trigger/L1TMuonBarrel/plugins/L1TMuonBarrelParamsESProducer.cc#L705\r\n\r\nThe eventually copied XmlConfigReader and the original one held by the ESProducer both share the same pointer to `parser_`. The copy in the EventSetup gets deleted first so deletes `parser_`. Then the one in the ESProducer gets delete, which does a double delete and crashes the program.\r\n\r\nOne should never write a destructor without also writing (or doing 'delete') a copy constructor and an `operator=`."}}
{"actor":{"display_login":"Dr15Jones"}}