Skip to content

Can only call write_image a certain number of times before process hangs #1255

Closed
@slishak

Description

@slishak

Using Orca to export multiple static PDF files, when I get to the 25th file the process hangs and never completes. The limiting number of files seems to depend on the file type:
pdf, svg: 24 files written
png, jpg, webp: 25 files written before hanging

The same happens whether I write to a file or a BytesIO stream. For interest, the reason I'm doing this is to write a multi-page PDF as per the issue here plotly/orca#143.

import plotly.io as pio
import plotly.graph_objs as go
import io
import numpy as np


def make_figure():
    """Function to make random figure"""
    x = np.linspace(0, 10, 100)
    y = np.random.randint(1, 100, 100)

    trace = go.Scatter(x=x, y=y, mode='markers')
    return go.Figure(data=[trace])


use_stream = False
filetype = 'pdf'

for i in range(50):
    print('Page {}'.format(i+1))

    if use_stream:
        pdf_file = io.BytesIO()
    else:
        pdf_file = '{}.{}'.format(i, filetype)

    pio.write_image(make_figure(), pdf_file, filetype)

I can circumvent the issue by adding the following line into the loop to periodically restart the Orca server:

    if (i+1) % 20 == 0:
        pio._orca.shutdown_server()

Versions:

Windows 7 Professional
Python 3.6.4 x64

plotly==3.3.0
psutil==5.4.8

Node.js v8.12.0
npm@6.4.1
electron@1.8.4
orca@1.1.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugsomething broken

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions