-
Bug
-
Resolution: Fixed
-
Critical
-
None
-
Hudson 1.351
Windows 2000
Tomcat 5.5
Java 1.6.01 JDK
-
Powered by SuggestiMate
I installed the IRC plugin a few days ago and configured it for my environment and customized each build's config appropriately, and the IRC bot does connect to my IRC Server (and for a bit everything worked perfectly), however, somewhere along the way the configurations for each build got lost and I don't have the options on their individual configuration screens any longer. The configuration for the IRC client under the Manage Hudson > Configure System is also missing, however, the bot does connect to the server still (but doesn't do anything because each build's configuration is missing). When looking at the Manage Hudson > Manage Plugins > Installed it does show that Hudson IRC plugin is installed.
Installed Plugins:
http://screencast.com/t/NzA0MGE2ZDk
Example project missing IRC options:
http://screencast.com/t/YWU3YzdlO
IRC Channel - Hudson is online:
http://screencast.com/t/YzJiMzAxNWMt
[JENKINS-5978] IRC Configurations Not Available
YOu have by any chance a copy of hudson.plugins.ircbot.IrcPublisher.xml before you deleted it - and compared it to the current one?
I have the same problem. After manually deleting all lines with references to ircbot in the config files, removing the plugin files (plugins/ircbot*) and reinstalling the plugin the config page listed the IRC Notification again. I filled in the information (which resulted in exactly the same hudson.plugins.ircbot.IrcPublisher.xml file as before) and the ircbot worked. But after the next restart of Hudson the IRC Notification section was gone again. The ircbot still works, but there's no way I can configure it now
I did upgrade, but after the problem started, thinking the upgrade would fix it. So the old one is the one from 2.1, and the new config file is 2.2.
Screenshot of old and new config files diffed:
http://screencast.com/t/YTA5YzFhZDQ
If I enable the IRC notification in the global configuration page it works. But as soon as I enable it for any project it no longer works after a restart.
Manually editing the project's config.xml file and deleting the <targets> element helps - the configuration appears after a restart.
By the way, it doesn't matter if I add a channel in the project's configuration or not, in both cases the configuration disappears after a restart.
I can confirm that after a restart, the configuration options for both Hudson and individual projects has once again disappeared, yet the client does still connect to IRC. However, I haven't had a failed build yet today, so I don't know if it will notify in the channel or not.
Also to note, other plugins have been installed and configured after IRC and their configurations show up ok, so it seems isolated.
After enabling it for all my projects and then manually editing them, it no longer works Very strange.
@ickersep: Did you also update the IRC AND the instant-messaging plugin?
I do, but I can't tell if they are from IRC, another plugin, or Hudson core:
Mar 18, 2010 8:04:47 AM hudson.ExpressionFactory2$JexlExpression evaluate WARNING: Caught exception evaluating: h.configureAutoRefresh(request, response, attrs.norefresh!=null). Reason: java.lang.IllegalArgumentException: Cookie name "$Version" is a reserved token java.lang.IllegalArgumentException: Cookie name "$Version" is a reserved token at javax.servlet.http.Cookie.<init>(Cookie.java:141) at com.disney.tomcat.GreenCookieValve$TranslatedRequest.getCookies(GreenCookieValve.java:117) at org.apache.catalina.connector.RequestFacade.getCookies(RequestFacade.java:618) at javax.servlet.http.HttpServletRequestWrapper.getCookies(HttpServletRequestWrapper.java:64) at hudson.Functions.isAutoRefresh(Functions.java:451) at hudson.Functions.configureAutoRefresh(Functions.java:430) at sun.reflect.GeneratedMethodAccessor57.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.commons.jexl.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:258) at org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:104) at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83) at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57) at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51) at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80) at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:72) at org.apache.commons.jelly.tags.core.CoreTagLibrary$3.run(CoreTagLibrary.java:134) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105) at org.kohsuke.stapler.jelly.CustomTagLibrary$1.run(CustomTagLibrary.java:132) at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) at org.kohsuke.stapler.jelly.CompressTag.doTag(CompressTag.java:21) at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:40) at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:30) at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:43) at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:83) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:508) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:563) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:435) at org.kohsuke.stapler.Stapler.service(Stapler.java:123) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:94) at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:86) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 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 org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166) 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 org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173) 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:66) at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76) at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at com.disney.tomcat.GreenCookieValve.invoke(GreenCookieValve.java:91) at com.disney.tomcat.RequestThrottleValve.invoke(RequestThrottleValve.java:325) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:880) at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:719) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:2081) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619)
@kutzi: yes, both IRC and instant-messaging plugins are at latest version.
I see some errors/warnings when starting Hudson, but they are no different whether the config shows or not and they don't mention ircbot, so I don't think they're related. I don't get any messages when I go to the configuration page.
I suspect that this is te same issue as JENKINS-5128 (difficult to say because I could never reproduce it). Could you try the workaround mentioned in the last comment of JENKINS-5128?
@kutzi: after disabling the plugin from within the file hudson.plugins.ircbot.IrcPublisher.xml and restarting Hudson the IRC configuration showed up unchecked on the Manage Hudson page, but after enabling it and restarting Hudson it was gone again.
I also updated to im 1.6 but that didn't change anything.
I don't think this has anything to do with it, but an error I see in /var/log/hudson/hudson.log when starting up Hudson:
...
Mar 22, 2010 1:39:32 AM hudson.model.Hudson$4 onAttained
INFO: Completed initialization
Mar 22, 2010 1:39:33 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.web.context.support.StaticWebApplicationContext@70501e4e: display name [Root WebApplicationContext]; startup date [Mon Mar 22 01:39:33 MDT 2010]; root of context hierarchy
Mar 22, 2010 1:39:33 AM org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
INFO: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@70501e4e]: org.springframework.beans.factory.support.DefaultListableBeanFactory@680ffc1c
Mar 22, 2010 1:39:33 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@680ffc1c: defining beans [filter,legacy]; root of factory hierarchy
Mar 22, 2010 1:39:34 AM hudson.TcpSlaveAgentListener <init>
INFO: JNLP slave agent listener started on TCP port 48404
...
Erm, I cannot see any error message in that snippet. Are you sure that you posted the right one?
BTW: can you send me your anonymized hudson.plugins.ircbot.IrcPublisher.xml?
Maybe one job config.xml, too.
Oops, you're right. That's the snippet I intented to post, but it's not an error - I misread.
Attached is my hudson.plugins.ircbot.IrcPublisher.xml
Sorry for the delay in responding, I was on vacation last Friday. I tried the resolution in JENKINS-5128, however, while it IS related, it isn't a complete resolution. Disabling the plugin and restarting does allow the plugin to show back up in the Hudson and Build configuration pages, but after a second restart, the options are gone again.
Yes, but other users have also reported that the configuration did disappear after a restart again. So its definitely the same as JENKINS-5128.
I really wish that I could reproduce it, as I get more and more reports about this happening
Tried to reproduce this on a new copy - without success.
However, I noticed that on the Manage Hudson page the order is different. On my new copy the IRC Notification section comes at the very end, after the Extended E-mail Notification section.
On my other Hudson the IRC Notification section appears (if it appears at all) before the Extended E-Mail Notification (which is the last section).
This is very far fetched, but as I have no other clues (besides the ordering. ickerersep good catch, I'll check out if I this could have an impact):
Which browser are you using? Did you try with different browsers?
Hudson is running on Ubuntu Hardy 64bit.
I tried accessing with Firefox 3.5.8 from Ubuntu, and Firefox 3.6 and Internet Explorer 8 from Windows 7 - doesn't make a difference.
Firefox 3.5.8 and Chrome 4.1
And as of note, checking the HTML source of the Hudson management page shows no "IRC" components, so it doesn't even appear to be loading.
I can't explain why, but my config options are all back. The job configs have been erased, but I can at least set them again. The only thing of significance that I've done is renamed some projects. After a restart, the config options are still available. Go figure...
You are both not experiencing this problem anymore? So can we close this bug?
Code changed in hudson
User: : kutzi
Path:
trunk/hudson/plugins/instant-messaging/src/main/java/hudson/plugins/im/AuthenticationHolder.java
trunk/hudson/plugins/instant-messaging/src/main/java/hudson/plugins/im/IMConnectionProvider.java
trunk/hudson/plugins/instant-messaging/src/main/java/hudson/plugins/im/bot/Bot.java
trunk/hudson/plugins/ircbot/src/main/java/hudson/plugins/ircbot/v2/IRCConnection.java
trunk/hudson/plugins/ircbot/src/main/java/hudson/plugins/ircbot/v2/IRCConnectionProvider.java
trunk/hudson/plugins/jabber/src/main/java/hudson/plugins/jabber/im/transport/JabberIMConnection.java
trunk/hudson/plugins/jabber/src/main/java/hudson/plugins/jabber/im/transport/JabberIMConnectionProvider.java
http://jenkins-ci.org/commit/33296
Log:
JENKINS-5233 JENKINS-5978 Jabber/ircbot section wasn't showing up in global configuration page
Could you please try the attached plugin snapshots to confirm if they fix the problem?
Tried these two new HPIs and got the following error:
Exception in thread "IM-Reconnector-Thread" java.lang.NoSuchMethodError: hudson.plugins.ircbot.v2.IRCConnectionProvider.getAuthentication()Lorg/aceg security/Authentication;
at hudson.plugins.ircbot.v2.IRCConnectionProvider.createConnection(IRCConnectionProvider.java:36)
at hudson.plugins.im.IMConnectionProvider.create(IMConnectionProvider.java:56)
at hudson.plugins.im.IMConnectionProvider.access$2(IMConnectionProvider.java:54)
at hudson.plugins.im.IMConnectionProvider$ConnectorRunnable.run(IMConnectionProvider.java:171)
at java.lang.Thread.run(Thread.java:619)
Sep 1, 2010 1:47:42 PM hudson.plugins.im.DummyConnection setPresence
INFO: Set presence via dummy connection: 'AVAILABLE' : 'Yawn, I'm so bored. Don't you have some work for me?'
My Installed Plugins shows the versions:
Hudson IM Plugin - 1.9-SNAPSHOT (private-07/28/2010 15:44-kutzi)
Hudson IRC Plugin - 2.5
I should also note that we upgraded our Hudson instance to 1.372 recently.
Sorry, i had attached an old version of the ircbot plugin. Please try with the new attachement.
The version should be 2.6-SNAPSHOT
Same as before.
I'm logging all my connections, user and service, and I never see the IRC bot connect. Instead, I see:
Sep 1, 2010 3:01:22 PM hudson.plugins.im.IMConnectionProvider$ConnectorRunnable run
INFO: Trying to reconnect
Sep 1, 2010 3:01:22 PM hudson.plugins.ircbot.v2.IRCConnection connect
INFO: connected to IRC
Sep 1, 2010 3:01:22 PM hudson.plugins.ircbot.v2.IRCConnection getGroupChat
INFO: Trying to join channel #welcome
Out of curiosity, I connected to IRC manually with the same user and password, and my connect log shows the connection and the session is established. Funny thing is, if I stay connected, the IRC bot from Hudson will try to reconnect and fail saying the nick is already taken. Thinking that maybe the bot is connecting as a service, I check my services log and I see my ChanServ bot connect, but not the IRC bot from Hudson.
Does the pIRCBot try to connect to IRC as a service or as a regular user?
It's timing out here:
// TODO: how to check that join was successful (channelJoined is called later -
// how long should we possibly wait until we declare that join was unsuccessful?)
this.bots.add(new Bot(new IRCChannel(channel.getName(), this.pircConnection),
this.descriptor.getNick(), this.descriptor.getHost(),
this.descriptor.getCommandPrefix(), this.authentication));
The Plugin will keep trying to reconnect, but something about the connection isn't going through. I've tried messaging the plugin's nick from my account while the plugin attempts to connect and it doesn't register as being connected. I'm not sure if the connection failed but it thinks it hasn't so it seems to be trying to join a channel and timing out. I'm not sure though...
Wait, we are talking about 2 different issues now:
I) IRC configuration options not available
II) ircbot cannot connect - which is a new issues AFAIR
Any updates on I?
Regarding II, as a wild guess: has this anything to do with JENKINS-6600?
If not please open a new issue for that problem.
Gah! Sorry! Yes! The configs ARE available again in both the Hudson Configure and job Configure screens, and yes on JENKINS-600 with my current issue. I'll follow up there. Sorry for the confusion, and thanks for the effort you've put in to following up on this issue!
I deleted the hudson.plugins.ircbot.IrcPublisher.xml file and restarted Hudson and had my options back. Not sure if the issue will happen again though...