{"action":"created","issue":{"url":"https://api.github.com/repos/PaperMC/Paper/issues/1440","repository_url":"https://api.github.com/repos/PaperMC/Paper","labels_url":"https://api.github.com/repos/PaperMC/Paper/issues/1440/labels{/name}","comments_url":"https://api.github.com/repos/PaperMC/Paper/issues/1440/comments","events_url":"https://api.github.com/repos/PaperMC/Paper/issues/1440/events","html_url":"https://github.com/PaperMC/Paper/issues/1440","id":360111751,"node_id":"MDU6SXNzdWUzNjAxMTE3NTE=","number":1440,"title":"Paper & Vault - Concurrent Mod Exception.","user":{"login":"andrewkm","id":1013725,"node_id":"MDQ6VXNlcjEwMTM3MjU=","avatar_url":"https://avatars2.githubusercontent.com/u/1013725?v=4","gravatar_id":"","url":"https://api.github.com/users/andrewkm","html_url":"https://github.com/andrewkm","followers_url":"https://api.github.com/users/andrewkm/followers","following_url":"https://api.github.com/users/andrewkm/following{/other_user}","gists_url":"https://api.github.com/users/andrewkm/gists{/gist_id}","starred_url":"https://api.github.com/users/andrewkm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrewkm/subscriptions","organizations_url":"https://api.github.com/users/andrewkm/orgs","repos_url":"https://api.github.com/users/andrewkm/repos","events_url":"https://api.github.com/users/andrewkm/events{/privacy}","received_events_url":"https://api.github.com/users/andrewkm/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-09-14T00:17:08Z","updated_at":"2018-09-14T00:40:04Z","closed_at":null,"author_association":"NONE","body":"So, I've decided to track this one down finally.\r\nGot a _low priority_ todo list when I have spare time, and decided to dedicate a few hours figuring this long time error out with Vault & Paper:\r\n\r\nReference:\r\nhttps://github.com/MilkBowl/Vault/issues/719\r\nhttps://github.com/MilkBowl/Vault/issues/735\r\nLatest Paper/Vault builds: https://pastebin.com/raw/hS6PNAzW\r\n\r\nWrote a script to start server 200 times monitoring for this error.\r\nFirst thing I did was run the script on the latest spigot 1.12.2 build. (**No occurrences**)\r\n\r\nNext, search for plugin conflictions, however the results of this test was showing that no specific plugin causes this problem. Removing several plugins stops the errors, and adding them back, starts the error up again. I tried shuffling through plugin removals, additions, changes, you name it, I tried it.\r\n\r\nGot it down to a 10 plugin environment reproducing the error quite well.\r\n- Removed 1 plugin, error stopped. (Thought hey, maybe I found the problem)\r\n- Added a **different** plugin back, error started again.\r\n- Thought perhaps it's the number of plugins, but again, this was inconclusive.\r\n- There is no clear pattern. The more plugins you have the heavier chance of this happening. \r\n- I thought perhaps it is the type of plugins? Not sure. But yeah, this test was no good. I was able to reproduce it on several various plugin setups and nothing obviously stood out as to perhaps the **type** of plugins causing this. (**Inconclusive**)\r\n\r\nNext, decided to jump through Paper builds to see if I can at least pin point where this started. And finally, progress has been made. After a good thousand startups and shuffling through builds, I've got it down to this:\r\n\r\nPaper build 1349 - 200 startups - (**No occurrences**)\r\nPaper build 1350 - 200 startups - (**78 occurrences**)\r\n\r\nWhatever you guys changed in this commit:\r\nhttps://github.com/PaperMC/Paper/commit/7dfbe442471640b40d76217cd91a79dbd25238c1\r\n\r\nIs what's causing this vault issue.\r\n\r\nThe reason it's so hard to reproduce is because, as stated earlier, I genuinely cannot figure out what **specific** plugins must be on the server for this to happen. I do however have a very reproducible environment available.\r\n\r\nCC: @sleaker - tagging you as perhaps you can share some input since it's your plugin, however clearly a paper issue. Or perhaps Vault is doing something wrong that paper doesn't like as of 1350? Who knows, I'm not a dev, I'll leave that for you guys to figure out :P "},"comment":{"url":"https://api.github.com/repos/PaperMC/Paper/issues/comments/421194722","html_url":"https://github.com/PaperMC/Paper/issues/1440#issuecomment-421194722","issue_url":"https://api.github.com/repos/PaperMC/Paper/issues/1440","id":421194722,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMTE5NDcyMg==","user":{"login":"aikar","id":58008,"node_id":"MDQ6VXNlcjU4MDA4","avatar_url":"https://avatars1.githubusercontent.com/u/58008?v=4","gravatar_id":"","url":"https://api.github.com/users/aikar","html_url":"https://github.com/aikar","followers_url":"https://api.github.com/users/aikar/followers","following_url":"https://api.github.com/users/aikar/following{/other_user}","gists_url":"https://api.github.com/users/aikar/gists{/gist_id}","starred_url":"https://api.github.com/users/aikar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aikar/subscriptions","organizations_url":"https://api.github.com/users/aikar/orgs","repos_url":"https://api.github.com/users/aikar/repos","events_url":"https://api.github.com/users/aikar/events{/privacy}","received_events_url":"https://api.github.com/users/aikar/received_events","type":"User","site_admin":false},"created_at":"2018-09-14T00:40:04Z","updated_at":"2018-09-14T00:40:04Z","author_association":"MEMBER","body":"I would not say clearly a paper issue.\r\n\r\nThe error is in permissions. If that change is the source, then the plugin is doing something unsafe to begin with and paper simply made it more visible.\r\n\r\nThose errors are on the main thread, and that change represents async tasks...\r\n\r\nThe only thing I can see differing here is that previously, the async tasks were scheduled in alignment with the main thread a little tighter, that may of gave more breathing room to avoid the issue.\r\n\r\nBut that doesn't mean its paper's fault, it's still a plugins fault, but it might not be vaults directly, but instead luck perms.\r\n\r\n\r\nmodifying permissions should be synchronized if done off main.\r\n\r\nI do see potential that we can likely fix it by adding a synchronized to recalculatePermissions. I don't know why that isn't there already.\r\n\r\nBut I will back port that to 1.12\r\n\r\n\r\n"}}
{"actor":{"display_login":"aikar"}}