-
Notifications
You must be signed in to change notification settings - Fork 536
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Cerbero] JavaScriptCore issue on 64-bit Android and iOS #177
Comments
Might be an incompatibility between seed and javascriptcore. Unfortunately I don't have any 64 bit ARM devices here for testing. |
I now get a new kind of error after re-building Cerbero (SimpleDemo on 64-bit iPhone 6+): Stacktrace:
|
In that line it's calling our callback, most likely gotHeaderLine from websocket.js. And it seems like seed or JavascriptCore already destroyed the closure for that. |
@stefhak could this be related to the changes you have done in the bridge? |
I don't know. It's supposed to be benign and don't do anything if you do not have a browser extension, but things have gone wrong before. Check out an earlier version (https://github.com/EricssonResearch/openwebrtc/blob/a3018bc2e752f1acb0edd2d6f8da86056ee34521/bridge/worker/bridgeserver.js) of bridgeserver.js and build again. If that works, perhaps we should have flags or specific versions of bridgeserver for cases when there is no browser. |
I would expect this to be another bug in seed where it doesn't properly keep track of objects and frees them too early. |
If I disable armv7s and arm64, i.e. specify |
Correction: I do get video when forcing 32-bit only, but I now encounter the same problem as EricssonResearch/openwebrtc-gst-plugins#25 Could it be that 64-bit is problematic in ercolorspace? Maybe we should switch sooner than later :)
|
@sdroege did you look into why 64-bit brakes the bridge? |
No, I don't have any 64 bit ARM device. The problem is still #177 (comment) and everything else is solved by now? As it works fine on x86-64 here it's not a generic 64 bit problem, and I'm suspecting that this is a incompatibility between seed and JavaScriptCore on iOS/ARM64 or maybe the JavaScriptCore version there has new interesting bugs. |
Problem here is that this version of libffi fails to build on iOS/ARM (not 64 bit). See https://github.com/atgreen/libffi/issues/181 |
using v3.2 for ARM causes errors at glib compilation:
|
That's because they end up in different directories, the headers I mean: Why did this even compile glib for me? |
The headers are versioned incorrectly otherwise EricssonResearch/openwebrtc#177
@sdroege Probably because the old headers were still around from a previous compile. Cerbero doesn't remove the old files when installing a new version of a recipe. |
rm -rf dist/* does though ;) |
This should now be fixed by use of an updated libffi. Closing. |
I'm getting the same problem as #177 (comment) on Android, when using both 3.2.1 and 3.2 |
I noticed the same thing when porting Bowser to the new framework and adding 64-bit support. The bridge crashes immediately. |
It's most likely a problem with libffi, the native closure that is created isn't callable even just after it's created, so no chance for seed to lose the ref to it. |
libffi was updated and fixed this issue on iOS apparently. I haven't observed any crashes with the bridge on iOS on an iPhone 6 Plus but Stefan has on an iPhone 5S I think, consistently. |
@superdump I think you will get them if you set Bowser (for example) to support not only 32 bit architectures. |
Perhaps as recommended by https://github.com/atgreen/libffi/issues/181#issuecomment-88053634 we should use https://github.com/frida/libffi till upstream fixes this. It seems to work for 32-bit, 64-bit, etc, for them. |
We should at least try the frida branch before making the release. If it works, great! |
We use that branch now. All solved? |
use partial dictionary for MediaStreamConstraints
Not solved. |
For example, with SimpleDemo in 64-bit mode: https://gist.github.com/superdump/431963602aa83a8fac72 |
3.2.1 fixes the arm64 trampoline segfault (EricssonResearch/openwebrtc#177). The patch is from https://github.com/atgreen/libffi/issues/181#issuecomment-88053634 and it fixes 32 bit compilation with clang.
3.2.1 fixes the arm64 trampoline segfault (EricssonResearch/openwebrtc#177). The patch is from https://github.com/atgreen/libffi/issues/181#issuecomment-88053634 and it fixes 32 bit compilation with clang. Closes #20.
This was fixed by EricssonResearch/cerbero#20 |
Applications that use the OWR bridge (e.g. hybrid apps like Bowser) crashes when running on 64-bit devices:
The text was updated successfully, but these errors were encountered: