Kaleido fails on AWS Lambda - docker

未關閉
#313 2 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
30/100
Issue 類型
缺陷
描述清晰度
需要釐清
活躍度
停滯
技術堆疊
aws, docker, python
領域
cloud, devops

研究方向

從報告中的 AWS Lambda Docker 環境裡的 fig_to_base64 入口點及其 pio.write_image 呼叫開始。重現 Kaleido 子程序的間歇性失敗,然後判斷映像匯出是否能在不發生 zygote 當機的情況下可靠完成;該 issue 未提供指定的原始檔或測試。

由索引模型根據 Issue 內容生成。

描述

bug

Hi,

I run this code as part of my aws lambda with docker image:

import plotly.io as pio
import base64
import io
import plotly.graph_objects as go

def fig_to_base64(fig: go.Figure):
    buffer = io.BytesIO()

    if "--single-process" not in pio.kaleido.scope.chromium_args:
        pio.kaleido.scope.chromium_args += ("--single-process",)

    pio.write_image(fig=fig, file=buffer, format="png", engine="kaleido")
    buffer.seek(0)
    plot_base64 = base64.b64encode(buffer.read()).decode("utf-8")
    buffer.close()

    return plot_base64

The issue that I get 30% of the time is the following error crash (there are times which it work fine!):

Failed to start Kaleido subprocess. Error stream:
[0327/100250.883361:WARNING:resource_bundle.cc(431)] locale_file_path.empty() for locale 
prctl(PR_SET_NO_NEW_PRIVS) failed
prctl(PR_SET_NO_NEW_PRIVS) failed
[0327/100251.087148:FATAL:zygote_communication_linux.cc(255)] Cannot communicate with zygote
#0 0x55555555555 base::debug::CollectStackTrace()
#1 0x55555555555 base::debug::StackTrace::StackTrace()
#2 0x55555555555 logging::LogMessage::~LogMessage()
#3 0x55555555555 content::ZygoteCommunication::Init()
#4 0x55555555555 content::CreateGenericZygote()
#5 0x55555555555 content::ContentMainRunnerImpl::Initialize()
#6 0x55555555555 content::RunContentProcess()
#7 0x55555555555 content::ContentMain()
#8 0x55555555555 headless::(anonymous namespace)::RunContentMain()
#9 0x55555555555 headless::HeadlessBrowserMain()
#10 0x55555555555 main
#11 0x55555555555 __libc_start_call_main
#12 0x55555555555 __libc_start_main_alias_2
#13 0x55555555555 _start
Received signal 6
#0 0x55555555555 base::debug::CollectStackTrace()
#1 0x55555555555 base::debug::StackTrace::StackTrace()
#2 0x55555555555 base::debug::(anonymous namespace)::StackDumpSignalHandler()
#3 0x55555555555 (/usr/lib64/libc.so.6+0x54ddf)
#4 0x55555555555 __pthread_kill_implementation
#5 0x55555555555 __GI_raise
#6 0x55555555555 __GI_abort
#7 0x55555555555 base::debug::BreakDebugger()
#8 0x55555555555 logging::LogMessage::~LogMessage()
#9 0x55555555555 content::ZygoteCommunication::Init()
#10 0x55555555555 content::CreateGenericZygote()
#11 0x55555555555 content::ContentMainRunnerImpl::Initialize()
#12 0x55555555555 content::RunContentProcess()
#13 0x55555555555 content::ContentMain()
#14 0x55555555555 headless::(anonymous namespace)::RunContentMain()
#15 0x55555555555 headless::HeadlessBrowserMain()
#16 0x55555555555 main
#17 0x55555555555 __libc_start_call_main
#18 0x55555555555 __libc_start_main_alias_2
#19 0x55555555555 _start
r8: 0x55555555555  r9: 0x55555555555 r10: 0x55555555555 r11: 0x55555555555
r12: 0x55555555555 r13: 0x55555555555 r14: 00007ffd6fd6d1b0 r15: 0x55555555555
di: 0x55555555555  si: 0x55555555555  bp: 0x55555555555  bx: 0x55555555555
dx: 0x55555555555  ax: 0x55555555555  cx: 0x55555555555  sp: 0x55555555555
ip: 0x55555555555 efl: 0x55555555555 cgf: 0x55555555555 erf: 0x55555555555
trp: 0x55555555555 msk: 0x55555555555 cr2: 0x55555555555
[end of stack trace]
Calling _exit(1). Core file will not be generated.

(I changed all the values with 0x55555555555)

I tried as u can see above to use manual the flag of --singe_process but it is not helps.

Thank u,

主要語言
Python
星號
504
分支
65
平均合併
6 天 9 小時
30 天內合併 PR
2

環境準備

這個專案沒有提供開發容器、Dockerfile 或貢獻指南,環境需要你自己搭建:先看它的 README,通用步驟見我們的新手貢獻指南。

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

plotly/kaleido 的其他 Issue

查看 plotly/kaleido 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。