incorrect "http.cookiejar bug" when catching exception
Aberta
Ninguém assumiu esta issue ainda.
stdlib
type-bug
- Linguagem predominante
- Python
- Estrelas
- 77.2k
- Forks
- 36k
- Métricas de merge de PRs
- Métricas de PR pendentes
Descrição
Bug report
catching certain exceptions from the http.cookiejar module incorrectly triggers an "unhandled exception" warning:
#!/usr/bin/env python3
import logging
from http.cookiejar import LoadError, MozillaCookieJar
from tempfile import NamedTemporaryFile
logging.basicConfig()
log = logging.getLogger()
with NamedTemporaryFile(mode="w") as tmp:
tmp.write("# Netscape HTTP Cookie File\n%3D\n")
tmp.seek(0)
jar = MozillaCookieJar(tmp.name)
try:
jar.load()
except LoadError:
log.warning("Failed to load cookies")
alexia@cadoth ~ > ./http_cookiejar_bug.py
/home/alexia/.local/share/pyenv/versions/3.11.0/lib/python3.11/http/cookiejar.py:2080: UserWarning: http.cookiejar bug!
Traceback (most recent call last):
File "/home/alexia/.local/share/pyenv/versions/3.11.0/lib/python3.11/http/cookiejar.py", line 2041, in _really_load
domain, domain_specified, path, secure, expires, name, value = \
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: not enough values to unpack (expected 7, got 1)
_warn_unhandled_exception()
WARNING:root:Failed to load cookies
Your environment
- CPython versions tested on: 3.9.2, 3.10.8, 3.11.0
- Operating system and architecture: Debian 11 amd64
Linked PRs
- gh-99676
- gh-139395
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece em Lib/http/cookiejar.py, em _really_load e _warn_unhandled_exception, usando o reproducer da issue para observar o aviso ao capturar LoadError. Revise as PRs vinculadas gh-99676 e gh-139395 e, em seguida, adicione ou atualize um teste de regressão que mostre que esse caso tratado de cookie malformado não produz mais o aviso incorreto.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- python
- Domínio
- networking
- Tipo de issue
- Bug
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Status de atividade
- Estagnada
- Clareza
- Claramente especificada
- Facilidade para iniciantes
- 35/100