** 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

Reply via email to