New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 809995 link

Starred by 3 users

Issue metadata

Status: Verified
Merged: issue 659037
Owner: ----
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: 2018-04-27
OS: Linux , Windows , Mac
Pri: 2
Type: Bug

Blocked on:
issue 659037



Sign in to add a comment

"Unable to deserialize cloned data" when receiving SharedArrayBuffer in Worklet (linux only)

Reported by machtin....@gmail.com, Feb 7 2018

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/64.0.3282.119 Chrome/64.0.3282.119 Safari/537.36

Steps to reproduce the problem:
1. open chrome://flags
2. make sure that both "Experimental enabled SharedArrayBuffer support in JavaScript" and "Experimental Web Platform features" are enabled.
3. open developer tools
4. in sources tab, make sure that "pause on uncaught exceptions" is checked
5. run the attached example (Also available at https://next.audiotool.com/worklet-bug/)

The example starts a worklet and sends a message containing a shared array buffer to the worklet.

What is the expected behavior?
The Worklet should be able to access the data property of the MessageEvent.

What went wrong?
As soon as MessageEvent.data property is accessed on the receiving side, an error "Unable to deserialize cloned data" is thrown.
After that, no further messages are dispatched.

Did this work before? N/A 

Does this work in other browsers? N/A

Chrome version: 64.0.3282.140  Channel: stable
OS Version: 4.13.0-32-generic
Flash Version: 

Note that this works fine under Mac OS X using the same build of Chrome (64.0.3282.140)!

Messages that do not contain SharedArrayBuffers do not cause this problem.
 
index.html
504 bytes View Download
worklet.js
335 bytes View Download
Please ignore the chrome version included in the user agent. I was submitting the bug using Chromium, while the bug itself appears using Google Chrome Version 64.0.3282.140 (Official Build) (64-bit).
Cc: binji@chromium.org
binji@ might have some insight on this.

The issue is related to the implementation of MessagePort + SharedArrayBuffer - AudioWorklet is a customer of both features. Confirmed the repro case works fine on Canary OSX.

I also think this might be relevant:
https://bugs.chromium.org/p/chromium/issues/detail?id=716320
Labels: Needs-Triage-M64

Comment 4 by binji@chromium.org, Feb 7 2018

Cc: malcolmwhite@chromium.org
Yes, Malcolm is working on adding support for this feature. See https://chromium-review.googlesource.com/c/chromium/src/+/854240 for a recent CL.
Components: Blink>Workers Blink>Messaging
Labels: -Needs-Triage-M64
Mergedinto: 659037
Status: Duplicate (was: Unconfirmed)
Per #4: This will be fixed by the resolution of the  issue 650937 , so I am marking this as duplicate.
Hi hongchan, are you sure that  issue #650937  (which is a CSS rendering bug) is related to this, or did you link the wrong issue?
I can reproduce the same issue on Version 64.0.3282.186 (Official Build) (64-bit) Mac
Blockedon: 659037
Labels: OS-Mac OS-Windows
Status: Available (was: Duplicate)
This will be resolved when we have a complete implementation of MessagePort support for SharedArrayBuffer.
Labels: Needs-Feedback
andre.michelle@ machtin.below@

This issue is fixed when "Experimental enabled SharedArrayBuffer support in JavaScript" flag is enabled. Right?
NextAction: 2018-04-27
andre.michelle@ machtin.below@

Ping - I'll wait one more week.
In chrome 66, the original issue seems to be fixed (the SharedArrayBuffer can be received without the deserialization error). However, the example supplied in this report causes the tab to hang, when the page is refreshed 2-3 times (reproducibly).

Shall I file a different bug for this?
Could you try it with the latest Canary first? I think the hang issue is fixed in M67.
The NextAction date has arrived: 2018-04-27
Canary is not available for linux, but this is still reproducible in Chrome Unstable, Version 66.0.3346.8 (Official Build) dev (64-bit)
Which issue are we talking about? The MessagePort or the browser hang? 

https://omahaproxy.appspot.com/ says all three channels should be M67. Like I mentioned in #12, the fix is in M67. I think you can update the browser or use the dev channel.
Works with latest dev. Thanks!
Status: Verified (was: Available)
Per #11, the original issue is fixed. Closing.

Sign in to add a comment