{"action":"created","issue":{"url":"https://api.github.com/repos/supercollider/supercollider/issues/1994","repository_url":"https://api.github.com/repos/supercollider/supercollider","labels_url":"https://api.github.com/repos/supercollider/supercollider/issues/1994/labels{/name}","comments_url":"https://api.github.com/repos/supercollider/supercollider/issues/1994/comments","events_url":"https://api.github.com/repos/supercollider/supercollider/issues/1994/events","html_url":"https://github.com/supercollider/supercollider/pull/1994","id":150674987,"number":1994,"title":"Make sure NodeProxy generates unique name.","user":{"login":"blacksound","id":2708566,"avatar_url":"https://avatars.githubusercontent.com/u/2708566?v=3","gravatar_id":"","url":"https://api.github.com/users/blacksound","html_url":"https://github.com/blacksound","followers_url":"https://api.github.com/users/blacksound/followers","following_url":"https://api.github.com/users/blacksound/following{/other_user}","gists_url":"https://api.github.com/users/blacksound/gists{/gist_id}","starred_url":"https://api.github.com/users/blacksound/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blacksound/subscriptions","organizations_url":"https://api.github.com/users/blacksound/orgs","repos_url":"https://api.github.com/users/blacksound/repos","events_url":"https://api.github.com/users/blacksound/events{/privacy}","received_events_url":"https://api.github.com/users/blacksound/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/supercollider/supercollider/milestones/7","html_url":"https://github.com/supercollider/supercollider/milestones/3.8","labels_url":"https://api.github.com/repos/supercollider/supercollider/milestones/7/labels","id":1021746,"number":7,"title":"3.8","description":"","creator":{"login":"scztt","id":145037,"avatar_url":"https://avatars.githubusercontent.com/u/145037?v=3","gravatar_id":"","url":"https://api.github.com/users/scztt","html_url":"https://github.com/scztt","followers_url":"https://api.github.com/users/scztt/followers","following_url":"https://api.github.com/users/scztt/following{/other_user}","gists_url":"https://api.github.com/users/scztt/gists{/gist_id}","starred_url":"https://api.github.com/users/scztt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scztt/subscriptions","organizations_url":"https://api.github.com/users/scztt/orgs","repos_url":"https://api.github.com/users/scztt/repos","events_url":"https://api.github.com/users/scztt/events{/privacy}","received_events_url":"https://api.github.com/users/scztt/received_events","type":"User","site_admin":false},"open_issues":105,"closed_issues":58,"state":"open","created_at":"2015-03-14T22:55:35Z","updated_at":"2016-04-25T19:38:18Z","due_on":"2016-05-31T22:00:00Z","closed_at":null},"comments":11,"created_at":"2016-04-24T15:55:18Z","updated_at":"2016-04-26T07:37:24Z","closed_at":"2016-04-25T19:38:18Z","pull_request":{"url":"https://api.github.com/repos/supercollider/supercollider/pulls/1994","html_url":"https://github.com/supercollider/supercollider/pull/1994","diff_url":"https://github.com/supercollider/supercollider/pull/1994.diff","patch_url":"https://github.com/supercollider/supercollider/pull/1994.patch"},"body":"I sadly haven't been able to make a concise reproducer for this bug as this happens within a larger system. When I generate large NodeProxys at the same from a group of MIDI buttons, the same SynthDef is created on the server, even though the client side representation generates different synths.\r\n\r\nI tracked down the culprit to be the NodeProxy .generateUniqueName method. This method assumes that the NodeProxys 'this.key' returns a unique name.\r\nThis assumption proves to be wrong if the NodeProxy resides in different dictionaries but are stored with the same key. I'm using NodeProxy class directly, storing them in different dictionaries, but with the same key 'nodeProxy'. This causes the SynthDef names that are created to be not unique based on instance.\r\n\r\nWhen simultaneous synthDefs are sent to the server, using the same SynthDef name, the server/lang communication becomes unsynced, so when the synths are created, only one SynthDef with that unique name is defined on the server.\r\n\r\n+Eirik"},"comment":{"url":"https://api.github.com/repos/supercollider/supercollider/issues/comments/214654928","html_url":"https://github.com/supercollider/supercollider/pull/1994#issuecomment-214654928","issue_url":"https://api.github.com/repos/supercollider/supercollider/issues/1994","id":214654928,"user":{"login":"crucialfelix","id":218738,"avatar_url":"https://avatars.githubusercontent.com/u/218738?v=3","gravatar_id":"","url":"https://api.github.com/users/crucialfelix","html_url":"https://github.com/crucialfelix","followers_url":"https://api.github.com/users/crucialfelix/followers","following_url":"https://api.github.com/users/crucialfelix/following{/other_user}","gists_url":"https://api.github.com/users/crucialfelix/gists{/gist_id}","starred_url":"https://api.github.com/users/crucialfelix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crucialfelix/subscriptions","organizations_url":"https://api.github.com/users/crucialfelix/orgs","repos_url":"https://api.github.com/users/crucialfelix/repos","events_url":"https://api.github.com/users/crucialfelix/events{/privacy}","received_events_url":"https://api.github.com/users/crucialfelix/received_events","type":"User","site_admin":false},"created_at":"2016-04-26T07:37:24Z","updated_at":"2016-04-26T07:37:24Z","body":"It's not the code commits that I'm concerned about, it's the \"Merged Pull Request\" and the duplicate Pull Request itself. It was also duplicate work for @blacksound and now we have to debate the whole thing again.\r\n\r\n> I am actually wondering why we don't return to the method of cherry-picking suitable commits from master to 3.7.\r\n\r\n3.7 is basically done now. 3.8 comes out in 5 weeks. Let's not change how this release is done. No bikeshedding.\r\n\r\nI can see your point about \"after merging 3.7.1 into master suddenly 5 pull requests had conflicts\", but I think it's good practice to wait until a new work cycle begins to change the workflow. \r\n\r\nChanging and debating all the time is exactly what I want to save us from."}}