SSL错误握手,与Sentry通信时出现意外的EOF

时间:2020-09-01 10:04:04

标签: python django ssl sentry

我一直在将Sentry集成到Django应用程序中时遇到问题。当我在settings.py(使用现代风格的DSN导入并初始化)中配置的Sentry本地运行应用程序时,一切正常,并且所有错误均按预期出现在Sentry上。但是,在服务器上运行该应用程序时,遇到的错误很少会报告给Sentry,但确实会偶尔发生。查看应用程序正在运行的docker容器的日志,我可以看到以下预期出现的SSL错误有时会在Sentry上出现错误(尽管这种情况并不经常发生或说明该错误所引起的所有情况) (没有出现在Sentry上):

Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: SysCallError(-1, 'Unexpected EOF')",),)': /api/<hidden_sentry_id>/store/

这是我进行哨兵初始化的方式:

sentry_sdk.init(
    dsn="https://<hidden>@<hidden>.ingest.sentry.io/<hidden>",
    environment="dev",
    integrations=[DjangoIntegration()],
    traces_sample_rate=1.0,

    # If you wish to associate users to errors (assuming you are using
    # django.contrib.auth) you may enable sending PII data.
    send_default_pii=True
)

根据环境使用不同的settings.py文件。服务器上的配置中仅更改了“环境”值。

基于我在StackOverflow上发现的其他SSL意外EOF错误,我尝试使用pip将ndg-httpsclientpyopensslpyasn1安装到docker容器中,但这没有帮助。

有人对如何解决此问题有任何建议吗?

编辑: 还要注意的另一件有趣的事情是,导致错误有时会推送经过追溯且似乎已丢失的旧错误,即使新错误本身并未出现(例如,一系列错误和哨兵突然开始显示一些错误,时间戳记距42分钟前还不到)。虽然不是1:1,所以导致10个错误导致少于10个旧错误出现-实际上,我只是做了10个和1个旧错误出现。

0 个答案:

没有答案