iterative / iterative/PyDrive2
pyOpenSSL version of 24.3.0 breaks PyDrive
- Lingua principale
- Python
- Stelle
- 670
- Fork
- 75
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Edited by @shcheklein : Action item: unpin pyOpenSSL after migration is done. See the comment below https://github.com/iterative/PyDrive2/issues/361#issuecomment-2506655182
-----------
Hey, after pip installed a new version of pyOpenSSL overnight (24.3.0), all my pipelines that contain pydrive started to fail with the following error:
```
File "/usr/local/lib/python3.9/dist-packages/pydrive2/apiattr.py", line 166, in GetList
for x in self:
File "/usr/local/lib/python3.9/dist-packages/pydrive2/apiattr.py", line 150, in __next__
result = self._GetList()
File "/usr/local/lib/python3.9/dist-packages/pydrive2/auth.py", line 85, in _decorated
return decoratee(self, *args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/pydrive2/files.py", line 84, in _GetList
self.auth.service.files()
File "/usr/local/lib/python3.9/dist-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper
return wrapped(*args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/googleapiclient/http.py", line 923, in execute
resp, content = _retry_request(
File "/usr/local/lib/python3.9/dist-packages/googleapiclient/http.py", line 191, in _retry_request
resp, content = http.request(uri, method, *args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/oauth2client/transport.py", line 159, in new_request
credentials._refresh(orig_request_method)
File "/usr/local/lib/python3.9/dist-packages/oauth2client/client.py", line 749, in _refresh
self._do_refresh_request(http)
File "/usr/local/lib/python3.9/dist-packages/oauth2client/client.py", line 774, in _do_refresh_request
body = self._generate_refresh_request_body()
File "/usr/local/lib/python3.9/dist-packages/oauth2client/client.py", line 1484, in _generate_refresh_request_body
assertion = self._generate_assertion()
File "/usr/local/lib/python3.9/dist-packages/oauth2client/service_account.py", line 384, in _generate_assertion
return crypt.make_signed_jwt(self._signer, payload,
File "/usr/local/lib/python3.9/dist-packages/oauth2client/crypt.py", line 97, in make_signed_jwt
signature = signer.sign(signing_input)
File "/usr/local/lib/python3.9/dist-packages/oauth2client/_openssl_crypt.py", line 97, in sign
return crypto.sign(self._key, message, 'sha256')
File "/usr/local/lib/python3.9/dist-packages/cryptography/utils.py", line 68, in __getattr__
obj = getattr(self._module, attr)
AttributeError: module 'OpenSSL.crypto' has no attribute 'sign'
```
the day before I still had pyOpenSSL version of 24.2.1, which worked. Forcing `pyopenssl==24.2.1` in my requirements.txt file fixes the issue for now, but pydrive2 should be updated to reflect changes in pyOpenSSL
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Start with the failing path in pydrive2/apiattr.py, auth.py, and files.py, then reproduce the service-account refresh failure using pyOpenSSL 24.3.0. Compare the affected dependency behavior with 24.2.1 and review the migration context linked in the issue; done means the migration is complete and pyOpenSSL can be unpinned without restoring the OpenSSL.crypto.sign failure.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- api, backend
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100