Comments (3)
Using IPython.core.debugger.set_trace
I've traced the synchronous call stack through ipywidgets and comm to ipykernel.iostream.BackgroundSocket.send_multipart and found that the data is still in order at that point. Even monkey-patching the method to pass bytes
objects instead of the (potentially mutable) memoryview
didn't change things, so it doesn't seem to be due to asynchronous mutation of the memory area, and it does seem to be nested fairly deeply in the communication stack. I don't have a good idea for how to trace the asynchronous communication, though, since it's harder to get a pdb attached to a background thread.
from ipycanvas.
Thanks for opening an issue and for the thorough debugging.
My gut feeling would be that tornado has a web socket message size limit that you are reaching, and tornado may be cutting your message. But this hypothesis does not match with the diff you are seeing I suppose.
from ipycanvas.
Plain size limitation doesn't match with the buffer size being the same on both sides of the channel. Must be at least somewhat more subtle to allow length to be passed independently.
Have you been able to reproduce? I'm having a hard time reproducing just now. I could reproduce with near certainty yesterday. Today when I wanted to explore other browsers (original report was using Chrome) and using Wireshark to observe the data over the wire, and suddenly I can't reproduce with any browser. Will try again, wondering what other aspects could come into this, including system load, network connectivity, or perhaps actually bad hardware.
from ipycanvas.
Related Issues (20)
- How to add transform to Path2D HOT 6
- voila fails to load ipycanvas.js from localhost HOT 2
- how to drag an image around on the canvas? HOT 2
- bundle text and shape into one object HOT 4
- ipycanvas does not work with JupyterLab 4 HOT 4
- debug_output only works if calling display(canvas) HOT 1
- ipycanvas 0.13.1 does not work with google colab. 0.13 works. HOT 1
- Take a screenshot of a drawing/canvas and save it? HOT 2
- current canvas out of sync after page reload
- Error displaying widget: model not found HOT 1
- is there no call to remove a shape? HOT 1
- bug on canvas.clear() HOT 1
- any way to pause animation? HOT 2
- feature request for mouse drag HOT 2
- Using Path2D for stroke
- Error with fresh jupyterlab 3 install - "Failed to load model class" / "Error: No version of module ipycanvas is registered" HOT 3
- The docs link to github needs updating HOT 5
- Canvas not rendering shapes in Voila HOT 1
- Failed to load model class 'CanvasModel' from module 'ipycanvas' in Binder
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ipycanvas.