-
Bug
-
Resolution: Fixed
-
Critical
-
None
-
i7-3770, 32GB ram
Jenkins 2.3
Slack Notification Plugin 2.0.1
Ubuntu 16.04 LTS
uname -a
Linux juno 4.4.0-22-generic #39-Ubuntu SMP Thu May 5 16:53:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
javac -version
javac 1.8.0_91
java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
Jenkins installed from Jenkins Debian repo.
Accessed via nginx reverse proxy.
No slave nodes.i7-3770, 32GB ram Jenkins 2.3 Slack Notification Plugin 2.0.1 Ubuntu 16.04 LTS uname -a Linux juno 4.4.0-22-generic #39-Ubuntu SMP Thu May 5 16:53:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux javac -version javac 1.8.0_91 java -version java version "1.8.0_91" Java(TM) SE Runtime Environment (build 1.8.0_91-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode) Jenkins installed from Jenkins Debian repo. Accessed via nginx reverse proxy. No slave nodes.
Tested on stable 1.6 and weekly build 2.3.
Project in question does not use any functionality from slack-plugin and there is no post-build task for slack-plugin in this project. Trying to add post-build task results in same exception.
When trying to save changes in 2 months old multi-branch project, exception happens:
javax.servlet.ServletException: java.lang.AssertionError: class jenkins.plugins.slack.SlackNotifier$SlackJobProperty is missing its descriptor at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876) at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:233) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649) at org.kohsuke.stapler.Stapler.service(Stapler.java:238) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:49) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:499) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544) at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.AssertionError: class jenkins.plugins.slack.SlackNotifier$SlackJobProperty is missing its descriptor at jenkins.model.Jenkins.getDescriptorOrDie(Jenkins.java:1302) at hudson.model.JobProperty.getDescriptor(JobProperty.java:105) at hudson.model.JobProperty.getDescriptor(JobProperty.java:79) at hudson.util.DescribableList.get(DescribableList.java:127) at hudson.util.DescribableList.rebuild(DescribableList.java:168) at hudson.model.Job.doConfigSubmit(Job.java:1218) at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:795) at com.github.mjdetullio.jenkins.plugins.multibranch.AbstractMultiBranchProject.submit(AbstractMultiBranchProject.java:539) at com.cloudbees.hudson.plugins.folder.AbstractFolder.doConfigSubmit(AbstractFolder.java:686) at com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.doConfigSubmit(ComputedFolder.java:225) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:324) at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:52) at org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:26) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:167) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:100) at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:124) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746) ... 58 more
Config from project (SCM link replaced for privacy):
<?xml version='1.0' encoding='UTF-8'?> <freestyle-multi-branch-project plugin="multi-branch-project-plugin@0.4.2"> <actions/> <description></description> <properties> <com.cloudbees.hudson.plugins.folder.properties.FolderCredentialsProvider_-FolderCredentialsProperty plugin="cloudbees-folder@5.10"> <domainCredentialsMap class="hudson.util.CopyOnWriteMap$Hash"> <entry> <com.cloudbees.plugins.credentials.domains.Domain plugin="credentials@1.28"> <specifications/> </com.cloudbees.plugins.credentials.domains.Domain> <java.util.concurrent.CopyOnWriteArrayList/> </entry> </domainCredentialsMap> </com.cloudbees.hudson.plugins.folder.properties.FolderCredentialsProvider_-FolderCredentialsProperty> </properties> <views> <branch-list-view> <owner class="freestyle-multi-branch-project" reference="../../.."/> <name>All</name> <filterExecutors>false</filterExecutors> <filterQueue>false</filterQueue> <properties class="hudson.model.View$PropertyList"/> <jobNames> <comparator class="hudson.util.CaseInsensitiveComparator"/> </jobNames> <jobFilters/> <columns> <hudson.views.StatusColumn/> <hudson.views.WeatherColumn/> <hudson.views.JobColumn/> <hudson.views.LastSuccessColumn/> <hudson.views.LastFailureColumn/> <hudson.views.LastDurationColumn/> <hudson.views.BuildButtonColumn/> </columns> <includeRegex>.*</includeRegex> <recurse>false</recurse> </branch-list-view> </views> <viewsTabBar class="hudson.views.DefaultViewsTabBar"/> <primaryView>All</primaryView> <healthMetrics> <com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric plugin="cloudbees-folder@5.10"/> </healthMetrics> <icon class="com.cloudbees.hudson.plugins.folder.icons.StockFolderIcon" plugin="cloudbees-folder@5.10"/> <orphanedItemStrategy class="com.cloudbees.hudson.plugins.folder.computed.DefaultOrphanedItemStrategy" plugin="cloudbees-folder@5.10"> <pruneDeadBranches>true</pruneDeadBranches> <daysToKeep>0</daysToKeep> <numToKeep>25</numToKeep> </orphanedItemStrategy> <triggers> <hudson.triggers.TimerTrigger> <spec>H/24 * * * *</spec> </hudson.triggers.TimerTrigger> </triggers> <disabled>false</disabled> <disabledSubProjects/> <allowAnonymousSync>false</allowAnonymousSync> <suppressTriggerNewBranchBuild>false</suppressTriggerNewBranchBuild> <scmSource class="jenkins.plugins.git.GitSCMSource" plugin="git@2.4.4"> <id>dc02f5cb-ebd5-4f16-bbe7-c4877862cb52</id> <remote>GIT_REPOSITORY_REMOVED</remote> <credentialsId>b09f49f3-cc0a-49ad-88b7-bde670992ea6</credentialsId> <includes>*</includes> <excludes></excludes> <ignoreOnPushNotifications>false</ignoreOnPushNotifications> </scmSource>
template/config.xml with identifying info removed:
<?xml version='1.0' encoding='UTF-8'?> <project> <keepDependencies>false</keepDependencies> <properties> <hudson.security.AuthorizationMatrixProperty> <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Update:user1</permission> <permission>hudson.model.Run.Delete:user1</permission> <permission>hudson.model.Item.Workspace:user1</permission> <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Delete:user1</permission> <permission>com.cloudbees.plugins.credentials.CredentialsProvider.ManageDomains:user1</permission> <permission>hudson.model.Item.Configure:user1</permission> <permission>hudson.model.Item.Cancel:user1</permission> <permission>hudson.model.Item.Delete:user1</permission> <permission>hudson.model.Item.Read:user1</permission> <permission>com.cloudbees.plugins.credentials.CredentialsProvider.View:user1</permission> <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Create:user1</permission> <permission>hudson.model.Item.Build:user1</permission> <permission>hudson.model.Item.Move:user1</permission> <permission>hudson.model.Item.Discover:user1</permission> <permission>hudson.model.Item.ViewStatus:user1</permission> <permission>hudson.model.Run.Update:user1</permission> </hudson.security.AuthorizationMatrixProperty> <jenkins.plugins.slack.SlackNotifier_-SlackJobProperty plugin="slack@2.0.1"> <teamDomain></teamDomain> <token></token> <room></room> <startNotification>false</startNotification> <notifySuccess>false</notifySuccess> <notifyAborted>false</notifyAborted> <notifyNotBuilt>false</notifyNotBuilt> <notifyUnstable>false</notifyUnstable> <notifyFailure>false</notifyFailure> <notifyBackToNormal>false</notifyBackToNormal> <notifyRepeatedFailure>false</notifyRepeatedFailure> <includeTestSummary>false</includeTestSummary> <showCommitList>false</showCommitList> <includeCustomMessage>false</includeCustomMessage> <customMessage></customMessage> </jenkins.plugins.slack.SlackNotifier_-SlackJobProperty> </properties> <scm class="hudson.scm.NullSCM"/> <canRoam>true</canRoam> <disabled>true</disabled> <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> <triggers> <hudson.triggers.SCMTrigger> <spec>H/5 * * * *</spec> <ignorePostCommitHooks>false</ignorePostCommitHooks> </hudson.triggers.SCMTrigger> </triggers> <concurrentBuild>false</concurrentBuild> <builders> <hudson.plugins.gradle.Gradle plugin="gradle@1.24"> <description></description> <switches></switches> <tasks>app:assembleDebug</tasks> <rootBuildScriptDir></rootBuildScriptDir> <buildFile></buildFile> <gradleName>(Default)</gradleName> <useWrapper>true</useWrapper> <makeExecutable>true</makeExecutable> <fromRootBuildScriptDir>true</fromRootBuildScriptDir> <useWorkspaceAsHome>false</useWorkspaceAsHome> </hudson.plugins.gradle.Gradle> </builders> <publishers> <hudson.tasks.ArtifactArchiver> <artifacts>app/build/outputs/apk/*.apk</artifacts> <allowEmptyArchive>false</allowEmptyArchive> <onlyIfSuccessful>false</onlyIfSuccessful> <fingerprint>false</fingerprint> <defaultExcludes>true</defaultExcludes> <caseSensitive>true</caseSensitive> </hudson.tasks.ArtifactArchiver> </publishers> <buildWrappers/>