You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins任务因urllib3超时值类型错误失败,求解决方案

解决Jenkins任务中requests/urllib3超时参数错误问题

自2023年5月4日16:00起,Jenkins任务开始失败,报错信息如下:

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

未修改任何配置,推测是上游依赖更新导致的问题,任务使用了Python的requests库,依赖urllib3,求解决方法。

错误原因

这个问题源于urllib3 2.0+版本对超时参数的类型校验逻辑变得严格,而旧版requests(<2.31.0)或python-jenkins库没有适配这种变化,传递了非数值/None类型的对象作为超时参数,触发了类型校验报错。

解决方案

1. 锁定urllib3到兼容版本

在项目的requirements.txt或tox配置文件中添加版本限制,回退到无严格校验的旧版本:

urllib3<2.0

或直接通过pip安装指定版本:

pip install urllib3==1.26.16

此方法可快速恢复任务运行。

2. 更新requests到适配版本

升级requests到支持urllib3 2.0+的版本,解决兼容性问题:

pip install requests>=2.31.0

requests 2.31.0及以上版本已修复超时参数传递的适配问题。

3. 更新python-jenkins库

错误栈显示问题出在jenkins库的调用流程中,尝试升级python-jenkins到最新版本:

pip install python-jenkins>=1.8.0

新版本库可能已修复超时参数的传递错误。

4. 代码中显式设置超时

若上述方法无法立即实施,可在调用jenkins库时显式指定合法的超时值(整数、浮点数或None):

import jenkins

# 显式设置超时为30秒
server = jenkins.Jenkins('http://jenkins-server/', username='user', password='pass', timeout=30)

强制传递合规参数,避免无效对象触发报错。

内容的提问来源于stack exchange,提问作者Abdullah Khawer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 20:45:29