** Description changed: - It looks like current version is incompatible with python3-urllib3 + [ Impact ] - Presumably we need this patch from upstream - https://opendev.org/jjb/python- - jenkins/commit/ba9f06e0c2381f6506a92e9c0553b2f475975a18 + Current python-jenkins crashes almost immediatly. I don't know if there is a + usage that does not crash, but a simple invokation of `jenkins-jobs` crashes + almost immediately when starting to talk to the Jenkins controller: - >>> import jenkins - >>> server = jenkins.Jenkins('http://localhost:8080', username='username', password='password') - >>> user = server.get_whoami() + $ jenkins-jobs update --delete-old -r /jenkins/servers/platformqa/workspace/deploy-qa-jobs/qa-jenkins-jobs/jobs + INFO:jenkins_jobs.cli.subcommand.update:Updating jobs in [...] ([]) + [...] + INFO:jenkins_jobs.builder:Number of views generated: 0 + INFO:jenkins_jobs.cli.subcommand.update:Number of views updated: 0 Traceback (most recent call last): - File "<stdin>", line 1, in <module> - File "/usr/lib/python3/dist-packages/jenkins/__init__.py", line 800, in get_whoami - response = self.jenkins_open(requests.Request( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/jenkins/__init__.py", line 564, in jenkins_open - return self.jenkins_request(req, add_crumb, resolve_auth).text - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/lib/python3/dist-packages/jenkins/__init__.py", line 580, in jenkins_request - self.maybe_add_crumb(req) - File "/usr/lib/python3/dist-packages/jenkins/__init__.py", line 369, in maybe_add_crumb - response = self.jenkins_open(requests.Request( - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/jenkins/__init__.py", line 775, in get_info + return json.loads(self.jenkins_open( + ^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/jenkins/__init__.py", line 564, in jenkins_open return self.jenkins_request(req, add_crumb, resolve_auth).text ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/jenkins/__init__.py", line 583, in jenkins_request self._request(req)) ^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/jenkins/__init__.py", line 557, in _request return self._session.send(r, **_settings) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/requests/sessions.py", line 703, in send r = adapter.send(request, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/requests/adapters.py", line 483, in send timeout = TimeoutSauce(connect=timeout, read=timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/urllib3/util/timeout.py", line 119, in __init__ self._connect = self._validate_timeout(connect, "connect") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/urllib3/util/timeout.py", line 156, in _validate_timeout raise ValueError( + ValueError: Timeout value connect was <object object at 0x7edcaa178a20>, but it must be an int, float or None. + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/usr/bin/jenkins-jobs", line 10, in <module> + sys.exit(main()) + ^^^^^^ + File "/usr/lib/python3/dist-packages/jenkins_jobs/cli/entry.py", line 174, in main + jjb.execute() + File "/usr/lib/python3/dist-packages/jenkins_jobs/cli/entry.py", line 154, in execute + ext.obj.execute(self.options, self.jjb_config) + File "/usr/lib/python3/dist-packages/jenkins_jobs/cli/subcommand/update.py", line 166, in execute + n = builder.delete_old_managed(keep=keep_jobs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/jenkins_jobs/builder.py", line 203, in delete_old_managed + jobs = self.get_jobs() + ^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/jenkins_jobs/builder.py", line 184, in get_jobs + return self.jobs + ^^^^^^^^^ + File "/usr/lib/python3/dist-packages/jenkins_jobs/builder.py", line 94, in jobs + self._jobs = self.jenkins.get_all_jobs() + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/jenkins/__init__.py", line 1027, in get_all_jobs + jobs = [(0, [], self.get_info(query=jobs_query)['jobs'])] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/jenkins/__init__.py", line 782, in get_info + raise JenkinsException("Could not parse JSON info for server[%s]" + jenkins.JenkinsException: Could not parse JSON info for server[<REDACTED>] + + [ Test Plan ] + + On a Jenkins agent, running `jenkins-jobs` should work normally without crashing + with the afformentionned traceback. + + Specifically, in the platform-qa-jenkins.ps5 environment, SSH-ing to an agent + and running the following should not crash: + $ jenkins-jobs update --delete-old -r /jenkins/servers/platformqa/workspace/deploy-qa-jobs/qa-jenkins-jobs/jobs + + + [ Where problems could occur ] + + * The patch was grabbed directly from upstream, and applies cleanly, but + upstream applied it on version just before 1.8.1 (first release of the + patch), while this SRU applies it on 1.4.0. Such version difference could + have unintended side-effect, but fortunately, the code base seems to have had + little changes, and the patch is faily small and simple. + * This is an Architecture: all pure Python package, so we should at least not + expect the whole class of issues that come with rebuilding C libraries. + + [ Other Info ] + + The bug seems to have been there since the release of Noble. It's only being + fixed now because our Jenkins agents that essentially run the test plan have + only recently been upgraded. + + + [ Original description ] + + It looks like current version is incompatible with python3-urllib3 + + Presumably we need this patch from upstream + https://opendev.org/jjb/python- + jenkins/commit/ba9f06e0c2381f6506a92e9c0553b2f475975a18 + + >>> import jenkins + >>> server = jenkins.Jenkins('http://localhost:8080', username='username', password='password') + >>> user = server.get_whoami() + Traceback (most recent call last): + File "<stdin>", line 1, in <module> + File "/usr/lib/python3/dist-packages/jenkins/__init__.py", line 800, in get_whoami + response = self.jenkins_open(requests.Request( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/jenkins/__init__.py", line 564, in jenkins_open + return self.jenkins_request(req, add_crumb, resolve_auth).text + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/jenkins/__init__.py", line 580, in jenkins_request + self.maybe_add_crumb(req) + File "/usr/lib/python3/dist-packages/jenkins/__init__.py", line 369, in maybe_add_crumb + response = self.jenkins_open(requests.Request( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/jenkins/__init__.py", line 564, in jenkins_open + return self.jenkins_request(req, add_crumb, resolve_auth).text + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/jenkins/__init__.py", line 583, in jenkins_request + self._request(req)) + ^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/jenkins/__init__.py", line 557, in _request + return self._session.send(r, **_settings) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/requests/sessions.py", line 703, in send + r = adapter.send(request, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/requests/adapters.py", line 483, in send + timeout = TimeoutSauce(connect=timeout, read=timeout) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/urllib3/util/timeout.py", line 119, in __init__ + self._connect = self._validate_timeout(connect, "connect") + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3/dist-packages/urllib3/util/timeout.py", line 156, in _validate_timeout + raise ValueError( ValueError: Timeout value connect was <object object at 0x7dec12578860>, but it must be an int, float or None.
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2107468 Title: python-jenkins is broken on Ubuntu 24.04 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/python-jenkins/+bug/2107468/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
