Skip to content
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

Nightly macOS can't initialize GStreamer #27293

Closed
jdm opened this issue Jul 16, 2020 · 3 comments
Closed

Nightly macOS can't initialize GStreamer #27293

jdm opened this issue Jul 16, 2020 · 3 comments
Assignees
Labels

Comments

@jdm
Copy link
Member

@jdm jdm commented Jul 16, 2020

godot:MacOS jdm$ ./servo https://hubs.mozilla.com/mB8Wn7L/talkative-simplistic-sphere --pref dom.webrtc.enabled --pref dom.gamepad.enabled --pref dom.webrtc.transceiver.enabled --pref dom.canvas_capture.enabled --pref dom.svg.enabled
A-Frame Version: https://github.com/MozillaReality/aframe
three Version: https://github.com/MozillaReality/three.js
WebVR Polyfill Version: ^0.10.10
%ccore:schema:warn %cDefault value `null` does not match type `string` in component `media-loader`%c  color: orange color: inherit color: orange
%ccore:schema:warn %cDefault value `null` does not match type `string` in component `media-loader`%c  color: orange color: inherit color: orange
%ccore:schema:warn %cDefault value `null` does not match type `string` in component `media-loader`%c  color: orange color: inherit color: orange
%ccore:schema:warn %cDefault value `undefined` does not match type `string` in component `media-image`%c  color: orange color: inherit color: orange
%ccore:schema:warn %cDefault value `null` does not match type `string` in component `camera-focus-button`%c  color: orange color: inherit color: orange
%ccore:schema:warn %cDefault value `null` does not match type `string` in component `emit-scene-event-on-remove`%c  color: orange color: inherit color: orange

(<unknown>:48101): GStreamer-WARNING **: 10:22:56.602: Failed to load plugin '/usr/local/lib/gstreamer-1.0/libgstosxaudio.so': dlopen(/usr/local/lib/gstreamer-1.0/libgstosxaudio.so, 2): Library not loaded: /usr/local/opt/gst-plugins-base/lib/libgstaudio-1.0.0.dylib
  Referenced from: /usr/local/lib/gstreamer-1.0/libgstosxaudio.so
  Reason: Incompatible library version: libgstosxaudio.so requires version 1603.0.0 or later, but libgstaudio-1.0.0.dylib provides version 1602.0.0

(<unknown>:48101): GStreamer-WARNING **: 10:22:56.603: Failed to load plugin '/usr/local/lib/gstreamer-1.0/libgstosxaudio.so': dlopen(/usr/local/lib/gstreamer-1.0/libgstosxaudio.so, 2): Library not loaded: /usr/local/opt/gst-plugins-base/lib/libgstaudio-1.0.0.dylib
  Referenced from: /usr/local/lib/gstreamer-1.0/libgstosxaudio.so
  Reason: Incompatible library version: libgstosxaudio.so requires version 1603.0.0 or later, but libgstaudio-1.0.0.dylib provides version 1602.0.0

(<unknown>:48101): GStreamer-WARNING **: 10:22:56.608: Failed to load plugin '/usr/local/lib/gstreamer-1.0/libgstapplemedia.so': dlopen(/usr/local/lib/gstreamer-1.0/libgstapplemedia.so, 2): Library not loaded: /usr/local/opt/gst-plugins-base/lib/libgstaudio-1.0.0.dylib
  Referenced from: /usr/local/lib/gstreamer-1.0/libgstapplemedia.so
  Reason: Incompatible library version: libgstapplemedia.so requires version 1603.0.0 or later, but libgstaudio-1.0.0.dylib provides version 1602.0.0
%ccore:schema:warn %cDefault value `[object Object]` does not match type `string` in component `pen`%c  color: orange color: inherit color: orange
%ccore:schema:warn %cDefault value `[object Object]` does not match type `string` in component `pen-laser`%c  color: orange color: inherit color: orange
%ccore:schema:warn %cDefault value `[object Object]` does not match type `string` in component `pen-laser`%c  color: orange color: inherit color: orange
%ccore:schema:warn %cDefault value `[object Object]` does not match type `string` in component `pen-laser`%c  color: orange color: inherit color: orange
App version: 1.0.0.20200716002524
Tracking: Sentry DSN: https://013d6a364fed43cdb0539a61d520597a@sentry.prod.mozaws.net/370
Tracking: Google Analytics ID: UA-77033033-12
No WebGL 2.0 context available. Falling back to WebGL 1.0
THREE.WebGLRenderer: WEBGL_depth_texture extension not supported.
%ccore:schema:warn %cUnknown property `multiview` for component/system `undefined`.%c  color: orange color: inherit color: orange
Using Non-VR bindings.

(<unknown>:48101): GStreamer-WARNING **: 10:22:56.743: Failed to load plugin '/usr/local/lib/gstreamer-1.0/libgstapp.so': dlopen(/usr/local/lib/gstreamer-1.0/libgstapp.so, 2): Library not loaded: /usr/local/Cellar/gst-plugins-base/1.16.2/lib/libgstapp-1.0.0.dylib
  Referenced from: /usr/local/lib/gstreamer-1.0/libgstapp.so
  Reason: Incompatible library version: libgstapp.so requires version 1603.0.0 or later, but libgstapp-1.0.0.dylib provides version 1602.0.0
Could not start audio render thread: Backend("appsrc creation failed") (thread AudioRenderThread, at /Users/worker/.cargo/git/checkouts/media-c23a3cd5aa97076a/7b0794d/audio/render_thread.rs:165)
[2020-07-16T14:22:56Z ERROR servo] Could not start audio render thread: Backend("appsrc creation failed")
called `Result::unwrap()` on an `Err` value: RecvError (thread ScriptThread PipelineId { namespace_id: PipelineNamespaceId(1), index: PipelineIndex(1) }, at /Users/worker/.cargo/git/checkouts/media-c23a3cd5aa97076a/7b0794d/audio/context.rs:192)
[2020-07-16T14:22:56Z ERROR servo] called `Result::unwrap()` on an `Err` value: RecvError
assertion failed: `(left == right)`
  left: `5`,
 right: `1`: This runtime still has live children. (thread ScriptThread PipelineId { namespace_id: PipelineNamespaceId(1), index: PipelineIndex(1) }, at /Users/worker/.cargo/git/checkouts/rust-mozjs-8611526964119dd6/0caf554/src/rust.rs:425)
[2020-07-16T14:22:56Z ERROR servo] assertion failed: `(left == right)`
      left: `5`,
     right: `1`: This runtime still has live children.
thread panicked while panicking. aborting.
Stack trace for thread "ScriptThread PipelineId { namespace_id: PipelineNamespaceId(1), index: PipelineIndex(1) }"
   0: <servo::backtrace::Print as core::fmt::Debug>::fmt
   1: core::fmt::write
   2: std::io::Write::write_fmt
   3: servo::backtrace::print
   4: servo::install_crash_handler::handler
   5: __sigtramp
   6: std::panicking::rust_panic_with_hook
   7: _rust_begin_unwind
   8: std::panicking::begin_panic_fmt
   9: <mozjs::rust::Runtime as core::ops::drop::Drop>::drop
  10: core::ptr::drop_in_place
  11: <alloc::rc::Rc<T> as core::ops::drop::Drop>::drop
  12: core::ptr::drop_in_place
  13: std::sys_common::backtrace::__rust_begin_short_backtrace
  14: core::ops::function::FnOnce::call_once{{vtable.shim}}
  15: std::sys::unix::thread::Thread::new::thread_start
  16: __pthread_start
@jdm jdm added the P-mac label Jul 16, 2020
@jdm
Copy link
Member Author

@jdm jdm commented Jul 16, 2020

godot:MacOS jdm$ ./servo https://codepen.io/Rumyra/pen/qyMzqN/
[2020-07-16T14:24:45Z ERROR script::dom::bindings::error] Error at https://cdpn.io/Rumyra/fullpage/qyMzqN:365:9 console.clear is not a function

(<unknown>:49287): GStreamer-WARNING **: 10:24:45.550: Failed to load plugin '/usr/local/lib/gstreamer-1.0/libgstplayback.so': dlopen(/usr/local/lib/gstreamer-1.0/libgstplayback.so, 2): Library not loaded: /usr/local/Cellar/gst-plugins-base/1.16.2/lib/libgstpbutils-1.0.0.dylib
  Referenced from: /usr/local/lib/gstreamer-1.0/libgstplayback.so
  Reason: Incompatible library version: libgstplayback.so requires version 1603.0.0 or later, but libgstpbutils-1.0.0.dylib provides version 1602.0.0

** (<unknown>:49287): ERROR **: 10:24:45.550: GstPlayer: 'playbin' element not found, please check your setup
Trace/BPT trap: 5
@jdm
Copy link
Member Author

@jdm jdm commented Jul 16, 2020

I believe the issue here is that the gstreamer shared libraries that are bundled in the nightly build come from the build machines which are still on gstreamer 1.16.2, and my local machine has gstreamer 1.16.3.

@jdm
Copy link
Member Author

@jdm jdm commented Jul 16, 2020

We probably need to bundle more shared libraries from the build machines to avoid this situation.

@jdm jdm self-assigned this Jul 16, 2020
bors-servo added a commit that referenced this issue Jul 16, 2020
Make gstreamer packaging explicit

This change aligns Windows and macOS in terms of loading an explicit set of included plugins when initializing gstreamer. It also creates a single source of truth - the set of expected plugins is generated in a build script by the same python code that is used for packaging, so it should be impossible for platforms relying on this system to get out of sync.

Fixes #27293
bors-servo added a commit that referenced this issue Jul 16, 2020
Make gstreamer packaging explicit

This change aligns Windows and macOS in terms of loading an explicit set of included plugins when initializing gstreamer. It also creates a single source of truth - the set of expected plugins is generated in a build script by the same python code that is used for packaging, so it should be impossible for platforms relying on this system to get out of sync.

Fixes #27293
bors-servo added a commit that referenced this issue Jul 17, 2020
Make gstreamer packaging explicit

This change aligns Windows and macOS in terms of loading an explicit set of included plugins when initializing gstreamer. It also creates a single source of truth - the set of expected plugins is generated in a build script by the same python code that is used for packaging, so it should be impossible for platforms relying on this system to get out of sync.

Fixes #27293
bors-servo added a commit that referenced this issue Jul 17, 2020
Make gstreamer packaging explicit

This change aligns Windows and macOS in terms of loading an explicit set of included plugins when initializing gstreamer. It also creates a single source of truth - the set of expected plugins is generated in a build script by the same python code that is used for packaging, so it should be impossible for platforms relying on this system to get out of sync.

Fixes #27293
bors-servo added a commit that referenced this issue Jul 17, 2020
Make gstreamer packaging explicit

This change aligns Windows and macOS in terms of loading an explicit set of included plugins when initializing gstreamer. It also creates a single source of truth - the set of expected plugins is generated in a build script by the same python code that is used for packaging, so it should be impossible for platforms relying on this system to get out of sync.

Fixes #27293
bors-servo added a commit that referenced this issue Jul 17, 2020
Make gstreamer packaging explicit

This change aligns Windows and macOS in terms of loading an explicit set of included plugins when initializing gstreamer. It also creates a single source of truth - the set of expected plugins is generated in a build script by the same python code that is used for packaging, so it should be impossible for platforms relying on this system to get out of sync.

Fixes #27293
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

1 participant
You can’t perform that action at this time.