mmueller / supybot-git

A Git plugin for Supybot (a Python IRC bot)
45 stars 24 forks source link

Git plugin causes supybot IRC connection to hang #27

Open shiznix opened 9 years ago

shiznix commented 9 years ago

Enabling this plugin breaks supybot from being able to connect to an IRC server. Supybot reports itself as 'Connecting..', but does not connect until the Git plugin is disabled.

mmueller commented 9 years ago

Weird! What version of supybot are you running? Can you provide a stack trace if connection eventually times out? (Or can you interrupt it and provoke a stack trace?)

shiznix commented 9 years ago

Apologies for the late reply, here is the traceback. Supybot version is 0.83.4.1 The connection does not timeout and must be interrupted with the resulting output:

INFO 2014-10-13T15:05:31 Creating new Irc for freenode. INFO 2014-10-13T15:05:31 Sending PASS command, not logging the password. INFO 2014-10-13T15:05:31 Connecting to irc.freenode.net:6667. INFO 2014-10-13T15:05:31 Loading plugins (connecting to freenode). ^CTraceback (most recent call last): File "/usr/bin/supybot-2.7", line 333, in owner = Owner.Class() File "/usr/lib64/python2.7/site-packages/supybot/utils/python.py", line 98, in init originalinit(self, _args, _kwargs) File "/usr/lib64/python2.7/site-packages/supybot/plugins/Owner/plugin.py", line 171, in init self._connect(network) File "/usr/lib64/python2.7/site-packages/supybot/plugins/Owner/plugin.py", line 216, in _connect self._loadPlugins(newIrc) File "/usr/lib64/python2.7/site-packages/supybot/plugins/Owner/plugin.py", line 242, in _loadPlugins plugin.loadPluginClass(irc, m) File "/usr/lib64/python2.7/site-packages/supybot/plugin.py", line 78, in loadPluginClass cb = module.Class(irc) File "/usr/lib64/python2.7/site-packages/supybot/utils/python.py", line 98, in init originalinit(self, _args, _kwargs) File "/home/rick/supybot/plugins/Git/plugin.py", line 291, in init self._read_config() File "/home/rick/supybot/plugins/Git/plugin.py", line 472, in _read_config self.repository_list.append(Repository(repo_dir, section, options)) File "/home/rick/supybot/plugins/Git/plugin.py", line 131, in init self.clone() File "/home/rick/supybot/plugins/Git/plugin.py", line 82, in _synchronizer return func(self, _args, _kwargs) File "/home/rick/supybot/plugins/Git/plugin.py", line 137, in clone git.Git('.').clone(self.url, self.path, no_checkout=True) File "/usr/lib64/python2.7/site-packages/git/cmd.py", line 227, in return lambda _args, _kwargs: self._call_process(name, _args, *_kwargs) File "/usr/lib64/python2.7/site-packages/git/cmd.py", line 456, in _call_process return self.execute(call, **_kwargs) File "/usr/lib64/python2.7/site-packages/git/cmd.py", line 346, in execute stdout_value, stderr_value = proc.communicate() File "/usr/lib64/python2.7/subprocess.py", line 799, in communicate return self._communicate(input) File "/usr/lib64/python2.7/subprocess.py", line 1401, in _communicate stdout, stderr = self._communicate_with_poll(input) File "/usr/lib64/python2.7/subprocess.py", line 1455, in _communicate_with_poll ready = poller.poll() File "/usr/lib64/python2.7/site-packages/async/init.py", line 21, in thread_interrupt_handler prev_handler(signum, frame) KeyboardInterrupt INFO 2014-10-13T15:06:17 Shutdown initiated. INFO 2014-10-13T15:06:17 Killing Driver objects. INFO 2014-10-13T15:06:17 Killing Irc objects. INFO 2014-10-13T15:06:17 Irc object for freenode dying. INFO 2014-10-13T15:06:17 Driver for Irc object for freenode dying. INFO 2014-10-13T15:06:17 Shutdown complete.

mmueller commented 9 years ago

Unfortunately, that supybot version is ancient. You should probably use a more recent snapshot from the source repository itself. I remember there being showstopper bugs in 0.83.4.1.

shiznix commented 9 years ago

Same problem with latest snapshot :(

Here is the traceback from that: INFO 2014-10-18T21:00:14 Creating new Irc for freenode. INFO 2014-10-18T21:00:14 Sending PASS command, not logging the password. INFO 2014-10-18T21:00:14 Connecting to irc.freenode.net:6667. INFO 2014-10-18T21:00:20 Loading plugins (connecting to freenode). ^CTraceback (most recent call last): File "/usr/bin/supybot-2.7", line 329, in owner = Owner.Class() File "/usr/lib64/python2.7/site-packages/supybot/utils/python.py", line 98, in init originalinit(self, _args, _kwargs) File "/usr/lib64/python2.7/site-packages/supybot/plugins/Owner/plugin.py", line 143, in init self._connect(network) File "/usr/lib64/python2.7/site-packages/supybot/plugins/Owner/plugin.py", line 184, in _connect self._loadPlugins(newIrc) File "/usr/lib64/python2.7/site-packages/supybot/plugins/Owner/plugin.py", line 210, in _loadPlugins plugin.loadPluginClass(irc, m) File "/usr/lib64/python2.7/site-packages/supybot/plugin.py", line 83, in loadPluginClass cb = module.Class(irc) File "/usr/lib64/python2.7/site-packages/supybot/utils/python.py", line 98, in init originalinit(self, _args, _kwargs) File "/home/rick/supybot/plugins/Git/plugin.py", line 291, in init self._read_config() File "/home/rick/supybot/plugins/Git/plugin.py", line 472, in _read_config self.repository_list.append(Repository(repo_dir, section, options)) File "/home/rick/supybot/plugins/Git/plugin.py", line 131, in init self.clone() File "/home/rick/supybot/plugins/Git/plugin.py", line 82, in _synchronizer return func(self, _args, _kwargs) File "/home/rick/supybot/plugins/Git/plugin.py", line 137, in clone git.Git('.').clone(self.url, self.path, no_checkout=True) File "/usr/lib64/python2.7/site-packages/git/cmd.py", line 227, in return lambda _args, _kwargs: self._call_process(name, _args, *_kwargs) File "/usr/lib64/python2.7/site-packages/git/cmd.py", line 456, in _call_process return self.execute(call, **_kwargs) File "/usr/lib64/python2.7/site-packages/git/cmd.py", line 346, in execute stdout_value, stderr_value = proc.communicate() File "/usr/lib64/python2.7/subprocess.py", line 799, in communicate return self._communicate(input) File "/usr/lib64/python2.7/subprocess.py", line 1401, in _communicate stdout, stderr = self._communicate_with_poll(input) File "/usr/lib64/python2.7/subprocess.py", line 1455, in _communicate_with_poll ready = poller.poll() File "/usr/lib64/python2.7/site-packages/async/init.py", line 21, in thread_interrupt_handler prev_handler(signum, frame) KeyboardInterrupt INFO 2014-10-18T21:02:11 Shutdown initiated. INFO 2014-10-18T21:02:11 Killing Driver objects. INFO 2014-10-18T21:02:11 Killing Irc objects. INFO 2014-10-18T21:02:11 Irc object for freenode dying. INFO 2014-10-18T21:02:11 Driver for Irc object for freenode dying. INFO 2014-10-18T21:02:11 Shutdown complete.