Hi JJB Devs,
We discovered what seems to be a regression with JJB 1.4.0 which after some
git bisecting found it was caused by this patch [1]. My Jenkins verify
builds are failing to pass due to python runtime error:
RuntimeError: maximum recursion depth exceeded
This error follows what seems to be a recursive loop of python codecs
__getattr__ attempts. I've pasted the full traceback below. This issue
seems to only affect the command "jenkins-jobs test --recursive
/path/to/jobs" and when as part of a Jenkins verify job. Oddly enough
running "jenkins-jobs update --recursive /path/to/jobs" seems to pass just
fine.
Any ideas how to fix or workaround this issue? (This issue is preventing
us from upgrading to JJB 1.4.0)
Thanks,
Thanh
[1] https://review.openstack.org/183939/
Traceback (most recent call last):
File "/tmp/jjbtest/jjb/bin/jenkins-jobs", line 11, in
sys.exit(main())
File "/tmp/jjbtest/jjb/lib/python2.7/site-packages/jenkins_jobs/cmd.py",
line 172, in main
execute(options, config)
File "/tmp/jjbtest/jjb/lib/python2.7/site-packages/jenkins_jobs/cmd.py",
line 337, in execute
output=options.output_dir)
File "/tmp/jjbtest/jjb/lib/python2.7/site-packages/jenkins_jobs/builder.py",
line 326, in update_job
output = utils.wrap_stream(output)
File "/tmp/jjbtest/jjb/lib/python2.7/site-packages/jenkins_jobs/utils.py",
line 25, in wrap_stream
stream_enc = stream.encoding
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__
return getattr(self.stream, name)
File "/tmp/jjbtest/jjb/lib64/python2.7/codecs.py", line 828, in __getattr__