Page MenuHomePhabricator

JJB can no longer update CI Jenkins due to failure when retrieving server info
Closed, ResolvedPublic

Description

Upstream issue https://github.com/psf/requests/issues/6432


$ ./jjb-update
...
Traceback (most recent call last):
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/jenkins/__init__.py", line 824, in get_info
    return json.loads(self.jenkins_open(
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/jenkins/__init__.py", line 560, in jenkins_open
    return self.jenkins_request(req, add_crumb, resolve_auth).text
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/jenkins/__init__.py", line 576, in jenkins_request
    self.maybe_add_crumb(req)
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/jenkins/__init__.py", line 373, in maybe_add_crumb
    response = self.jenkins_open(requests.Request(
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/jenkins/__init__.py", line 560, in jenkins_open
    return self.jenkins_request(req, add_crumb, resolve_auth).text
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/jenkins/__init__.py", line 579, in jenkins_request
    self._request(req))
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/jenkins/__init__.py", line 553, in _request
    return self._session.send(r, **_settings)
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/requests/sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/requests/adapters.py", line 483, in send
    timeout = TimeoutSauce(connect=timeout, read=timeout)
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/urllib3/util/timeout.py", line 119, in __init__
    self._connect = self._validate_timeout(connect, "connect")
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/urllib3/util/timeout.py", line 156, in _validate_timeout
    raise ValueError(
ValueError: Timeout value connect was <object object at 0x7fe52ae5faa0>, but it must be an int, float or None.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/jenkins_jobs/parallel.py", line 63, in run
    res = task["func"](*task["args"], **task["kwargs"])
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/jenkins_jobs/builder.py", line 353, in parallel_update_job
    self.update_job(job.name, job.output().decode("utf-8"))
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/jenkins_jobs/builder.py", line 132, in update_job
    if self.is_job(job_name):
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/jenkins_jobs/builder.py", line 143, in is_job
    if job_name in self.job_list:
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/jenkins_jobs/builder.py", line 102, in job_list
    self._job_list = set(job["fullname"] for job in self.jobs)
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/jenkins_jobs/builder.py", line 94, in jobs
    self._jobs = self.jenkins.get_all_jobs()
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/jenkins/__init__.py", line 1076, in get_all_jobs
    jobs = [(0, [], self.get_info(query=jobs_query)['jobs'])]
  File ".tox/jenkins-jobs/lib/python3.9/site-packages/jenkins/__init__.py", line 831, in get_info
    raise JenkinsException("Could not parse JSON info for server[%s]"
jenkins.JenkinsException: Could not parse JSON info for server[https://integration.wikimedia.org/ci/]

The attempted url is apparently

https://integration.wikimedia.org/ci/api/json?tree=jobs[url,color,name,jobs[url,color,name,jobs[url,color,name,jobs[url,color,name,jobs[url,color,name,jobs[url,color,name,jobs[url,color,name,jobs[url,color,name,jobs[url,color,name,jobs[url,color,name,jobs]]]]]]]]]]

Event Timeline

The trace has jenkinsrequestsurllib3 so maybe one of those got a new release which is faulty

$ .tox/jenkins-jobs/bin/pip freeze
certifi==2022.12.7
charset-normalizer==3.1.0
diff-highlight==1.2.0
fasteners==0.18
idna==3.4
importlib-metadata==4.13.0
jenkins-job-builder==4.3.0
Jinja2==3.1.2
MarkupSafe==2.1.2
multi-key-dict==2.0.3
pbr==5.11.1
python-jenkins==1.8.0
PyYAML==6.0
requests==2.30.0
six==1.16.0
stevedore==5.0.0
urllib3==2.0.2
zipp==3.15.0

python-jenkins 1.8.0 was released on March 24th 2023 (I am the one that pushed the tag since I am a maintainer for that lib).
requests 2.30.0 was released on May 3rd

urllib3 2.0.2 was released today (previous was 1.26.15 from March 11th).

I am blaming requests for not setting an upper bound on urllib3 but we can do that in our repository.

Change 915736 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/config@master] tox: pin urllib3<2

https://gerrit.wikimedia.org/r/915736

hashar claimed this task.

Change 915736 merged by jenkins-bot:

[integration/config@master] tox: pin urllib3<2

https://gerrit.wikimedia.org/r/915736

Novem_Linguae renamed this task from JJB can no more update CI Jenkins due to failure when retrieving server infos to JJB can no longer update CI Jenkins due to failure when retrieving server info.May 4 2023, 4:09 PM