{"action":"created","issue":{"url":"https://api.github.com/repos/jenkinsci/configuration-as-code-plugin/issues/280","repository_url":"https://api.github.com/repos/jenkinsci/configuration-as-code-plugin","labels_url":"https://api.github.com/repos/jenkinsci/configuration-as-code-plugin/issues/280/labels{/name}","comments_url":"https://api.github.com/repos/jenkinsci/configuration-as-code-plugin/issues/280/comments","events_url":"https://api.github.com/repos/jenkinsci/configuration-as-code-plugin/issues/280/events","html_url":"https://github.com/jenkinsci/configuration-as-code-plugin/issues/280","id":331111791,"node_id":"MDU6SXNzdWUzMzExMTE3OTE=","number":280,"title":"Job loading Chicken&Egg","user":{"login":"oleg-nenashev","id":3000480,"node_id":"MDQ6VXNlcjMwMDA0ODA=","avatar_url":"https://avatars0.githubusercontent.com/u/3000480?v=4","gravatar_id":"","url":"https://api.github.com/users/oleg-nenashev","html_url":"https://github.com/oleg-nenashev","followers_url":"https://api.github.com/users/oleg-nenashev/followers","following_url":"https://api.github.com/users/oleg-nenashev/following{/other_user}","gists_url":"https://api.github.com/users/oleg-nenashev/gists{/gist_id}","starred_url":"https://api.github.com/users/oleg-nenashev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oleg-nenashev/subscriptions","organizations_url":"https://api.github.com/users/oleg-nenashev/orgs","repos_url":"https://api.github.com/users/oleg-nenashev/repos","events_url":"https://api.github.com/users/oleg-nenashev/events{/privacy}","received_events_url":"https://api.github.com/users/oleg-nenashev/received_events","type":"User","site_admin":false},"labels":[{"id":834893460,"node_id":"MDU6TGFiZWw4MzQ4OTM0NjA=","url":"https://api.github.com/repos/jenkinsci/configuration-as-code-plugin/labels/bug","name":"bug","color":"D73A4A","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2018-06-11T09:30:15Z","updated_at":"2018-07-26T11:56:01Z","closed_at":null,"author_association":"MEMBER","body":"IMHO it is a serious fundamental issue in the plugin now. \r\n\r\n* The plugin gets invoked somewhere between \"EXTENSIONS_AUGMENTED\" and \"JOBS_LOADED\" milestones on Jenkins startup\r\n* JCasC happens in parallel with Job loading. If Job loading takes plugin configuration into account, we are in the undefined behavior zone\r\n* Plugin dynamic loading potentially makes it even worse since plugins may have ItemListeners & Co\r\n* For big instances the plugin invocation may be delayed. We have instances which are loading jobs for 30 minutes.\r\n\r\nFrom https://speakerdeck.com/onenashev/gbg-jam-managing-jenkins-with-groovy-hooks-and-jcasc:\r\n\r\n<img width=\"1048\" alt=\"screen shot 2018-06-11 at 11 25 19\" src=\"https://user-images.githubusercontent.com/3000480/41223488-39f3ac32-6d6a-11e8-952c-89b365fb4003.png\">\r\n\r\nA solution would be to introduce new milestones in the Jenkins core to have strict ordering between JCasC and Job loading. IMHO JCasC should always happen before we start loading jobs.\r\n"},"comment":{"url":"https://api.github.com/repos/jenkinsci/configuration-as-code-plugin/issues/comments/408072402","html_url":"https://github.com/jenkinsci/configuration-as-code-plugin/issues/280#issuecomment-408072402","issue_url":"https://api.github.com/repos/jenkinsci/configuration-as-code-plugin/issues/280","id":408072402,"node_id":"MDEyOklzc3VlQ29tbWVudDQwODA3MjQwMg==","user":{"login":"jonbrohauge","id":9496731,"node_id":"MDQ6VXNlcjk0OTY3MzE=","avatar_url":"https://avatars0.githubusercontent.com/u/9496731?v=4","gravatar_id":"","url":"https://api.github.com/users/jonbrohauge","html_url":"https://github.com/jonbrohauge","followers_url":"https://api.github.com/users/jonbrohauge/followers","following_url":"https://api.github.com/users/jonbrohauge/following{/other_user}","gists_url":"https://api.github.com/users/jonbrohauge/gists{/gist_id}","starred_url":"https://api.github.com/users/jonbrohauge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonbrohauge/subscriptions","organizations_url":"https://api.github.com/users/jonbrohauge/orgs","repos_url":"https://api.github.com/users/jonbrohauge/repos","events_url":"https://api.github.com/users/jonbrohauge/events{/privacy}","received_events_url":"https://api.github.com/users/jonbrohauge/received_events","type":"User","site_admin":false},"created_at":"2018-07-26T11:56:01Z","updated_at":"2018-07-26T11:56:01Z","author_association":"CONTRIBUTOR","body":"@x10an14 the way to define jobs have changed."}}
{"actor":{"display_login":"jonbrohauge"}}