This happened when downsampling a plot with nulls. At a certain size, the message from the server exceeds 100MB and the JS API throws an error as it receives 2 different payloads, but doesn't think there could be a 2nd payload after the 1st snapshot payload.
Steps to reproduce
Run this Python in the web IDE
from deephaven import empty_table
from deephaven.plot.figure import Figure
t = empty_table(4000000).update(["Timestamp=epochMillisToInstant(i)","x=(double)i", "y=i%12==11?null:Math.sin(i)"])
f = Figure().plot_xy(series_name="Hello", t=t, x="Timestamp", y="y").show()
Expected results
JS API emits a downsample finished event. Plot shows up
Actual results
Plot shows an indefinite loader. JS console has a failed class cast exception and failed assertion. JS API never emits downsample finished/failed event.
Additional details and attachments
In WorkerConnection, the assertion ofnextDeltaUpdatesinappendAndMaybeFlushis what fails. It seemsstartAndMaybeFlushis called w/isSnapshot=trueand then another message arrives and callsappendAndMaybeFlushfrom thestream.onData`
The reason this snapshot gets so big is when downsampling w/ nulls, nulls must be preserved. I'll open another ticket to add some way to limit the downsample output size (downsampling 4M pts to 1M is still awful for the web UI to try to plot in addition to the data transferred).
Description
This happened when downsampling a plot with nulls. At a certain size, the message from the server exceeds 100MB and the JS API throws an error as it receives 2 different payloads, but doesn't think there could be a 2nd payload after the 1st snapshot payload.
Steps to reproduce
Expected results
Actual results
Additional details and attachments
In
WorkerConnection, the assertion of
nextDeltaUpdatesin
appendAndMaybeFlushis what fails. It seems
startAndMaybeFlushis called w/
isSnapshot=trueand then another message arrives and calls
appendAndMaybeFlushfrom the
stream.onData`The reason this snapshot gets so big is when downsampling w/ nulls, nulls must be preserved. I'll open another ticket to add some way to limit the downsample output size (downsampling 4M pts to 1M is still awful for the web UI to try to plot in addition to the data transferred).
Versions