[JIRA] (JENKINS-60421) NPE when saving Jenkins configuration if audit console logger is added in JCASC

17 views
Skip to first unread message

asmirnov@proofpoint.com (JIRA)

unread,
Dec 10, 2019, 10:28:03 AM12/10/19
to jenkinsc...@googlegroups.com
Alexander Smirnov created an issue
 
Jenkins / Bug JENKINS-60421
NPE when saving Jenkins configuration if audit console logger is added in JCASC
Issue Type: Bug Bug
Assignee: Pierre Beitz
Components: audit-trail-plugin
Created: 2019-12-10 15:27
Priority: Minor Minor
Reporter: Alexander Smirnov

Audit Trail plugin 3.0 is installed in Jenkins 2.190.3.

Audit console logger is added in JCASC block:

 

audit-trail:
  logBuildCause: true
  loggers:
  - console:
      dateFormat: "yyyy-MM-dd HH:mm:ss:SSS"
      logPrefix: "audit"
      output: STD_OUT
  pattern: ".*/(?:configSubmit|doDelete|postBuildResult|enable|disable|cancelQueue|stop|toggleLogKeep|doWipeOutWorkspace|createItem|createView|toggleOffline|cancelQuietDown|quietDown|restart|exit|safeExit)"

The following exception is thrown when clicking on save or apply button:

 

java.lang.NullPointerException
	at hudson.plugins.audit_trail.ConsoleAuditLogger.log(ConsoleAuditLogger.java:49)
	at hudson.plugins.audit_trail.AuditTrailFilter.onRequest(AuditTrailFilter.java:129)
	at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:105)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
	at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:99)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
	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:90)
	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1700)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1667)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.Server.handle(Server.java:505)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:698)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:804)
	at java.lang.Thread.run(Thread.java:748)

There is no exception if audit logger is added without JCASC.

 

 

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.13.6#713006-sha1:cc4451f)
Atlassian logo

pibeitz@gmail.com (JIRA)

unread,
Dec 10, 2019, 5:18:03 PM12/10/19
to jenkinsc...@googlegroups.com

pibeitz@gmail.com (JIRA)

unread,
Dec 10, 2019, 5:20:02 PM12/10/19
to jenkinsc...@googlegroups.com
Pierre Beitz commented on Bug JENKINS-60421
 
Re: NPE when saving Jenkins configuration if audit console logger is added in JCASC

Alexander Smirnov I reproduced the issue and started working on a fix. Issue is bigger than you though as currently the plugin won't perform correctly if configured with JCASC only (no remaining audit-trail xml on disk, and that even if the UI in the global config looks ok).

I have a working fix, but I want to double check all the use cases and writing non regression tests... I hope to commit something within the week.

pibeitz@gmail.com (JIRA)

unread,
Dec 10, 2019, 5:20:03 PM12/10/19
to jenkinsc...@googlegroups.com
Pierre Beitz started work on Bug JENKINS-60421
 
Change By: Pierre Beitz
Status: Open In Progress

pibeitz@gmail.com (JIRA)

unread,
Dec 12, 2019, 4:55:03 PM12/12/19
to jenkinsc...@googlegroups.com

pibeitz@gmail.com (JIRA)

unread,
Dec 12, 2019, 5:06:02 PM12/12/19
to jenkinsc...@googlegroups.com
 
Re: NPE when saving Jenkins configuration if audit console logger is added in JCASC

Alexander Smirnov I just created a PR that fixes this issue. I plan on merging it tomorrow if nobody comes up with a comment...

In case you wish to test this version, here is the build from the CI: https://ci.jenkins.io/job/Plugins/job/audit-trail-plugin/job/PR-29/1/artifact/target/audit-trail.hpi

 

asmirnov@proofpoint.com (JIRA)

unread,
Dec 13, 2019, 4:33:03 AM12/13/19
to jenkinsc...@googlegroups.com

Thank out Pierre Beitz. I tested PR 29 version and confirm that it works: no exceptions when saving Jenkins configuration, audit logs are printed in stdout.

asmirnov@proofpoint.com (JIRA)

unread,
Dec 13, 2019, 4:34:02 AM12/13/19
to jenkinsc...@googlegroups.com
Alexander Smirnov edited a comment on Bug JENKINS-60421
Thank out you  [~pierrebtz]. I tested PR 29 version and confirm that it works: no exceptions when saving Jenkins configuration, audit logs are printed in stdout.

pibeitz@gmail.com (JIRA)

unread,
Dec 13, 2019, 2:26:02 PM12/13/19
to jenkinsc...@googlegroups.com

pibeitz@gmail.com (JIRA)

unread,
Dec 13, 2019, 2:26:02 PM12/13/19
to jenkinsc...@googlegroups.com

pibeitz@gmail.com (JIRA)

unread,
Dec 13, 2019, 2:27:02 PM12/13/19
to jenkinsc...@googlegroups.com
Pierre Beitz commented on Bug JENKINS-60421
 
Re: NPE when saving Jenkins configuration if audit console logger is added in JCASC

Alexander Smirnov thanks for the feedback! I just released version 3.2 of the plugin with this fix, it should be available in the next hours, time for the update centers to refresh

Reply all
Reply to author
Forward
0 new messages