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

Add wiki page for headless rendering with Xvfb #7512

Open
jojo05 opened this issue Sep 2, 2015 · 24 comments
Open

Add wiki page for headless rendering with Xvfb #7512

jojo05 opened this issue Sep 2, 2015 · 24 comments

Comments

@jojo05
Copy link

@jojo05 jojo05 commented Sep 2, 2015

In addtion to headless rendering instructions, it would be useful to document the params that can be passed to servo to e.g. save the rendering to a .jpg or .png file

@jdm jdm added the A-documentation label Sep 2, 2015
@SimonSapin
Copy link
Member

@SimonSapin SimonSapin commented Sep 2, 2015

Re documenting the command-line parameters, isn’t that --help?

@jojo05
Copy link
Author

@jojo05 jojo05 commented Sep 2, 2015

./mach run --help

usage: mach [global arguments] run [command arguments]

Command Arguments:
...
params Command-line arguments to be passed through to Servo

I mean the params that can be passed through to Servo. I though one of these params would make the rendering to a jpg/png file, but it may not be available

@SimonSapin
Copy link
Member

@SimonSapin SimonSapin commented Sep 2, 2015

I think that’s a mach bug. ./mach run --help should call ./target/debug/servo --help.

@jojo05
Copy link
Author

@jojo05 jojo05 commented Sep 2, 2015

Yes, thanks.

I can't get headless mode to work:

xvfb-run $SERVO -z -o $FILE $URL

Am I missing anything ?

thanks

@jdm
Copy link
Member

@jdm jdm commented Sep 2, 2015

Paging @glennw for X-related questions.

@jojo05
Copy link
Author

@jojo05 jojo05 commented Sep 15, 2015

Is there an alternative way to contact glennw?

@jdm
Copy link
Member

@jdm jdm commented Sep 15, 2015

What happens when you run xvfb-run $SERVO -z -o $FILE $URL?

@glennw
Copy link
Member

@glennw glennw commented Sep 15, 2015

@jojo05 There are (confusingly) two meanings of headless for servo at the moment (this needs to be cleaned up). There is the -z mode (which uses a null compositor but still connects to X), and the compile time headless option, which uses OSMesa to render to a software frame buffer and removes any X dependencies. You can build the OSMesa version by setting the env var SERVO_HEADLESS=1 before building.

@jojo05
Copy link
Author

@jojo05 jojo05 commented Sep 16, 2015

The program completes with no output file and no message (with top I see how cpu usage goes up to 2 cores out of 4 cores). The url I use is http://mozilla.org

@jojo05
Copy link
Author

@jojo05 jojo05 commented Sep 16, 2015

I ran the above command at runlevel 3 (headless) and with xvfb-run -e error.file but it doesn't show any X errors so I assume it may be an issue in servo

nerith added a commit to nerith/servo that referenced this issue Sep 24, 2015
As mentioned in servo#7512 and servo#7637, the environment variable SERVO_HEADLESS
enables building the OSMesa version of Servo when it is set to 1.

Instead, this should be a command line option to mach's build command.

Fixes servo#7637.
nerith added a commit to nerith/servo that referenced this issue Oct 3, 2015
As mentioned in servo#7512 and servo#7637, the environment variable SERVO_HEADLESS
enables building the OSMesa version of Servo when it is set to 1.

Instead, this should be a command line option to mach's build command.

Fixes servo#7637.
bors-servo pushed a commit that referenced this issue Oct 13, 2015
Allow `./mach build` to enable Servo's headless mode

As mentioned in #7512 and #7637, the environment variable SERVO_HEADLESS
enables building the OSMesa version of Servo when it is set to 1.

Instead, this should be a command line option to mach's build command.

Fixes #7637.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7734)
<!-- Reviewable:end -->
nerith added a commit to nerith/servo that referenced this issue Nov 14, 2015
As mentioned in servo#7512 and servo#7637, the environment variable SERVO_HEADLESS
enables building the OSMesa version of Servo when it is set to 1.

Instead, this should be a command line option to mach's build command.

Fixes servo#7637.
nerith added a commit to nerith/servo that referenced this issue Dec 4, 2015
As mentioned in servo#7512 and servo#7637, the environment variable SERVO_HEADLESS
enables building the OSMesa version of Servo when it is set to 1.

Instead, this should be a command line option to mach's build command.

Fixes servo#7637.
bors-servo added a commit that referenced this issue Dec 4, 2015
Allow `./mach build` to enable Servo's headless mode

As mentioned in #7512 and #7637, the environment variable SERVO_HEADLESS
enables building the OSMesa version of Servo when it is set to 1.

Instead, this should be a command line option to mach's build command.

Fixes #7637.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7734)
<!-- Reviewable:end -->
@shinglyu
Copy link
Member

@shinglyu shinglyu commented Apr 28, 2016

I ran LIBGL_DEBUG=1 xvfb-run ./mach run -r -z https://www.wikipeida.org -x -o test.png
and got the error message:

Xlib:  extension "XFree86-VidModeExtension" missing on display ":99".
libGL: Can't open configuration file /home/shinglyu/.drirc: No such file or directory.
libGL: Can't open configuration file /home/shinglyu/.drirc: No such file or directory.
libGL error: failed to load driver: swrast
thread '<main>' panicked at 'called `Result::unwrap()` on an `Err` value: NoAvailablePixelFormat', ../src/libcore/result.rs:746
stack backtrace:
   1:     0x7f3bfd552cf0 - std::sys::backtrace::tracing::imp::write::h714760a4c8c0cdd8
   2:     0x7f3bfd55a33b - std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::hff309ab1d83ffd90
   3:     0x7f3bfd559fa3 - std::panicking::default_hook::h08ad3bb09872855b
   4:     0x7f3bfce9f806 - util::panicking::initiate_panic_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h02b62cf1712bc88b
   5:     0x7f3bfd540293 - std::sys_common::unwind::begin_unwind_inner::h406d5f1a330b854b
   6:     0x7f3bfd541cd8 - std::sys_common::unwind::begin_unwind_fmt::h57ea3fbee1a40196
   7:     0x7f3bfd551f41 - rust_begin_unwind
   8:     0x7f3bfd591cdf - core::panicking::panic_fmt::ha6b3c19493c123b3
   9:     0x7f3bfbe9d290 - core::result::unwrap_failed::h58d0ffbb55df72f8
  10:     0x7f3bfbe9c057 - glutin_app::window::Window::new::h9259252dcce529a0
  11:     0x7f3bfbe9b3eb - glutin_app::create_window::hb349222595d74248
  12:     0x7f3bfbb7e83f - servo::main::h6924e5658370f6b5
  13:     0x7f3bfd559a44 - std::sys_common::unwind::try::try_fn::hfe4b14ce00a3f42f
  14:     0x7f3bfd551ecb - __rust_try
  15:     0x7f3bfd55948b - std::rt::lang_start::h12d9b3310b48a726
  16:     0x7f3bf9051ec4 - __libc_start_main
  17:     0x7f3bfbb7dd6c - <unknown>
  18:                0x0 - <unknown>
Servo exited with return value 101

Could it be a servo bug or my X window is wrong?

@larsbergstrom
Copy link
Contributor

@larsbergstrom larsbergstrom commented May 3, 2016

In order to run Xvfb with the extensions we require (Xvfb :10 -screen 0 1280x960x24 +extension RANDR +extension RENDER +extension GLX), you will also need to install the additional mesa support. Below is a list of the exact packages we install on our build machines to support xvfb in our test environment:

      - libgl1-mesa-dri
      - libgles2-mesa-dev
      - freeglut3-dev
      - libfreetype6-dev
      - xorg-dev
      - xserver-xorg-input-void
      - xserver-xorg-video-dummy
      - xpra
- libosmesa6-dev
@SimonSapin
Copy link
Member

@SimonSapin SimonSapin commented May 4, 2016

CC @jankeromnes who was interested in running Servo in Xvfb for https://janitor.technology/

@jankeromnes
Copy link

@jankeromnes jankeromnes commented May 4, 2016

Indeed, c.f. https://github.com/jankeromnes/dockerfiles/issues/8.

Thanks for the ping! The list of required packages and Xvfb extensions look promising, with them I hope to be able to run Servo in noVNC without the runtime crashes.

@jankeromnes
Copy link

@jankeromnes jankeromnes commented May 6, 2016

Follow-up: I installed the suggested mesa packages, and configured Xvfb with :99 -screen 0 1280x864x16 -ac -pn -noreset +extension RANDR +extension RENDER +extension GLX but still, ./mach run -d fails in noVNC with Xlib: extension "XFree86-VidModeExtension" missing on display ":99.0".:

I also tried building with SERVO_HEADLESS=1 ./mach build -d instead of just ./mach build -d, but it didn't help. ./mach build --headless didn't work at all.

@shinglyu
Copy link
Member

@shinglyu shinglyu commented May 6, 2016

@jankeromnes I found that even if it runs successfully, it will still produce the Xlib: extension "XFree86-VidModeExtension" missing on display ":99.0". If you didn't see any Segmentation Fault or "Servo exited with non-zero return code", then servo had probably ran successfully.

I can run it in Xvfb successfully in a ubuntu VM. Clone the https://github.com/servo/saltfs repository and run

vagrant up servo-linux1
vagrant provision servo-linux1
vagrant ssh servo-linux1

and build servo in the VM. You can check the Vagrantfile and Salt configurations to see what package you need to install.

@jankeromnes
Copy link

@jankeromnes jankeromnes commented May 6, 2016

@shinglyu Thanks for your reply. In my test run, Servo panicked with:

~/servo$ ./mach run -d
error: XDG_RUNTIME_DIR not set in the environment.
Xlib:  extension "XFree86-VidModeExtension" missing on display ":99.0".
thread '<main>' panicked at 'glx::ChooseFBConfig returned no configurations.', /home/user/servo/.cargo/git/checkouts/rust-layers-[...]
[...]
Servo exited with return value 101

Similar to the first failure in https://github.com/jankeromnes/dockerfiles/issues/8.

I'd love to have a look at 1) the Servo dependencies you install, 2) the command you use to build Servo, 3) the one you use to run Servo graphically, but I couldn't find these in your repository. Could you please point me in the right direction?

I only found your Xvfb configuration, which has a few less parameters than mine.

@jankeromnes
Copy link

@jankeromnes jankeromnes commented May 6, 2016

Oh, it looks like running with webrender works a little better, using ./mach run -w instead of ./mach run -d (or ./mach run --headless, which also panicks on startup in my setup).

Servo started displaying servo.org, taking some time to style everything correctly. Clicking the "Rust" link didn't work, but I was able to scroll through the page, until Servo panicked with:

thread '<unnamed>' panicked at 'called `Option::unwrap()` on a `None` value', ../src/libcore/option.rs:325
stack backtrace:
   1:     0x7f3a5387d880 - std::sys::backtrace::tracing::imp::write::h9fb600083204ae7f
   2:     0x7f3a53884ecb - std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::hca543c34f11229ac
   [...]
thread '<main>' panicked at 'called `Result::unwrap()` on an `Err` value: Error { repr: Os { code: 104, message: "Connection reset by peer" } }', ../src/libcore/result.rs:785
stack backtrace:
   1:     0x7f3a5387d880 - std::sys::backtrace::tracing::imp::write::h9fb600083204ae7f

Maybe that error is unrelated to my setup, and it means I can now run Servo graphically in noVNC?

@jdm
Copy link
Member

@jdm jdm commented May 6, 2016

Was the [...] part of the message or actual elision on your part? That could be a much more informative backtrace if it wasn't there.

@jankeromnes
Copy link

@jankeromnes jankeromnes commented May 6, 2016

Both [...] are elisions on my part, sorry. I can provide the full error log if needed.

@jdm
Copy link
Member

@jdm jdm commented May 6, 2016

Please do! I suspect this is an error in Servo rather than your setup.

@jankeromnes
Copy link

@jankeromnes jankeromnes commented May 6, 2016

Running ./mach run -d or ./mach run --headless in my noVNC setup instantly fails on start-up with:

error: XDG_RUNTIME_DIR not set in the environment.
Xlib:  extension "XFree86-VidModeExtension" missing on display ":99".
thread '<main>' panicked at 'glx::ChooseFBConfig returned no configurations.', /home/user/servo/.cargo/git/checkouts/rust-layers-c02709c0157e02cd/master/src/platform/linux/surface.rs:116
stack backtrace:
   1:     0x7f5631101880 - std::sys::backtrace::tracing::imp::write::h9fb600083204ae7f
   2:     0x7f5631108ecb - std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::hca543c34f11229ac
   3:     0x7f5631108b33 - std::panicking::default_hook::hc2c969e7453d080c
   4:     0x7f563054b24f - util::panicking::initiate_panic_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h6b508d86c8c70738
                        at /home/user/servo/components/util/panicking.rs:46
   5:     0x7f563054b0d9 - _<std..thread..LocalKey<T>>::with::h25de3cca2edad6eb
                        at ../src/libstd/thread/local.rs:211
   6:     0x7f563054af5a - util::panicking::initiate_panic_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hbc02133c208123b8
                        at /home/user/servo/components/util/panicking.rs:41
   7:     0x7f56310eed53 - std::sys_common::unwind::begin_unwind_inner::h30e12d15ce2b2e25
   8:     0x7f5630e06fb7 - std::sys_common::unwind::begin_unwind::h65390c63b501d6ed
                        at ../src/libstd/sys/common/unwind/mod.rs:219
   9:     0x7f5630e212be - layers::platform::linux::surface::NativeDisplay::get_compatible_configuration::h7fdaf256460df8a0
                        at /home/user/servo/components/servo/<std macros>:3
  10:     0x7f5630e211f8 - layers::platform::linux::surface::NativeDisplay::compositor_visual_info::h3275ce521d873ef0
                        at /home/user/servo/.cargo/git/checkouts/rust-layers-c02709c0157e02cd/master/src/platform/linux/surface.rs:106
  11:     0x7f5630e210b6 - layers::platform::linux::surface::NativeDisplay::new::h5e1c76199eb2a192
                        at /home/user/servo/.cargo/git/checkouts/rust-layers-c02709c0157e02cd/master/src/platform/linux/surface.rs:70
  12:     0x7f562dce419d - _<window..Window as compositing..windowing..WindowMethods>::native_display::h4de5007feaef4d22
                        at /home/user/servo/ports/glutin/window.rs:722
  13:     0x7f562db7889b - _<servo..compositing..compositor..IOCompositor<Window>>::new::he9aef0caaa9e3268
                        at /home/user/servo/components/compositing/compositor.rs:407
  14:     0x7f562db77d56 - _<servo..compositing..compositor..IOCompositor<Window>>::create::he2a9e8d4d027661a
                        at /home/user/servo/components/compositing/compositor.rs:455
  15:     0x7f562db77b4f - compositing::compositor_thread::CompositorThread::create::h7022df4c55c52f11
                        at /home/user/servo/components/compositing/compositor_thread.rs:293
  16:     0x7f562db499ee - servo::Browser::new::h3083f22ab10d6569
                        at /home/user/servo/components/servo/lib.rs:174
  17:     0x7f562db47be7 - servo::main::h6924e5658370f6b5
                        at /home/user/servo/components/servo/main.rs:68
  18:     0x7f56311085d4 - std::sys_common::unwind::try::try_fn::h04c0c89e4add6cc4
  19:     0x7f5631100a5b - __rust_try
  20:     0x7f563110801b - std::rt::lang_start::h61f4934e780b4dfc
  21:     0x7f562dc65ae9 - main
  22:     0x7f562ae0482f - __libc_start_main
  23:     0x7f562db47638 - _start
  24:                0x0 - <unknown>
Servo exited with return value 101

Running ./mach run -w failed but after scrolling a short while, with:

error: XDG_RUNTIME_DIR not set in the environment.
Xlib:  extension "XFree86-VidModeExtension" missing on display ":99".
thread '<unnamed>' panicked at 'called `Option::unwrap()` on a `None` value', ../src/libcore/option.rs:325
stack backtrace:
   1:     0x7f3a5387d880 - std::sys::backtrace::tracing::imp::write::h9fb600083204ae7f
   2:     0x7f3a53884ecb - std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::hca543c34f11229ac
   3:     0x7f3a53884b33 - std::panicking::default_hook::hc2c969e7453d080c
   4:     0x7f3a52cc724f - util::panicking::initiate_panic_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h6b508d86c8c70738
                        at /home/user/servo/components/util/panicking.rs:46
   5:     0x7f3a52cc70d9 - _<std..thread..LocalKey<T>>::with::h25de3cca2edad6eb
                        at ../src/libstd/thread/local.rs:211
   6:     0x7f3a52cc6f5a - util::panicking::initiate_panic_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hbc02133c208123b8
                        at /home/user/servo/components/util/panicking.rs:41
   7:     0x7f3a5386ad53 - std::sys_common::unwind::begin_unwind_inner::h30e12d15ce2b2e25
   8:     0x7f3a5386c798 - std::sys_common::unwind::begin_unwind_fmt::hb2de8a9968d38523
   9:     0x7f3a5387cad1 - rust_begin_unwind
  10:     0x7f3a538bbf4f - core::panicking::panic_fmt::h257ceb0aa351d801
  11:     0x7f3a538bc228 - core::panicking::panic::h4bb1497076d04ab9
  12:     0x7f3a529568fe - _<std..option..Option<T>>::unwrap::h4a2634f8679403e3
                        at ../src/libcore/macros.rs:21
  13:     0x7f3a5294f7d9 - webrender::frame::RenderTarget::collect_and_sort_visible_batches::h619b8b46a7e2ab3b
                        at /home/user/servo/.cargo/git/checkouts/webrender-ec406de34643a7ef/master/src/frame.rs:227
  14:     0x7f3a52991b4b - webrender::frame::Frame::collect_and_sort_visible_batches::h28ea9b7db59e1133
                        at /home/user/servo/.cargo/git/checkouts/webrender-ec406de34643a7ef/master/src/frame.rs:1311
  15:     0x7f3a52990b0b - webrender::frame::Frame::build::hf6d98195422516b8
                        at /home/user/servo/.cargo/git/checkouts/webrender-ec406de34643a7ef/master/src/frame.rs:1153
  16:     0x7f3a52a46059 - webrender::render_backend::RenderBackend::render::ha156b0824c08f703
                        at /home/user/servo/.cargo/git/checkouts/webrender-ec406de34643a7ef/master/src/render_backend.rs:362
  17:     0x7f3a52a44a37 - webrender::render_backend::RenderBackend::run::_$u7b$$u7b$closure$u7d$$u7d$::h4aeff3b39d4d099f
                        at /home/user/servo/.cargo/git/checkouts/webrender-ec406de34643a7ef/master/src/render_backend.rs:194
  18:     0x7f3a52a446d8 - webrender::profiler::TimeProfileCounter::profile::h6eea20f507f73f02
                        at /home/user/servo/.cargo/git/checkouts/webrender-ec406de34643a7ef/master/src/profiler.rs:122
  19:     0x7f3a529cb71f - webrender::render_backend::RenderBackend::run::h7d979a62b76d600a
                        at /home/user/servo/.cargo/git/checkouts/webrender-ec406de34643a7ef/master/src/render_backend.rs:184
  20:     0x7f3a52aeeb8f - webrender::renderer::Renderer::new::_$u7b$$u7b$closure$u7d$$u7d$::h6b34d36bd3613a8b
                        at /home/user/servo/.cargo/git/checkouts/webrender-ec406de34643a7ef/master/src/renderer.rs:263
  21:     0x7f3a52aee373 - std::thread::Builder::spawn::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h0f97793282a419a8
  22:     0x7f3a52aee2e8 - std::sys_common::unwind::try::try_fn::h8c6f187920d2b398
                        at ../src/libstd/sys/common/unwind/mod.rs:127
  23:     0x7f3a5387ca5b - __rust_try
  24:     0x7f3a5387c9ed - std::sys_common::unwind::inner_try::h47a4d9cd4a369dcd
  25:     0x7f3a52aee225 - std::sys_common::unwind::try::h7bd5abba8b3581ee
                        at ../src/libstd/sys/common/unwind/mod.rs:123
  26:     0x7f3a52aee061 - std::thread::Builder::spawn::_$u7b$$u7b$closure$u7d$$u7d$::hd01288dd2e3005e6
  27:     0x7f3a52aeeec7 - _<F as std..boxed..FnBox<A>>::call_box::h6105de17e47a26e3
                        at ../src/liballoc/boxed.rs:541
  28:     0x7f3a538833b4 - std::sys::thread::Thread::new::thread_start::h6f266e069bf4ec2b
  29:     0x7f3a4db466f9 - start_thread
  30:     0x7f3a4d666b5c - clone
  31:                0x0 - <unknown>
thread '<main>' panicked at 'called `Result::unwrap()` on an `Err` value: Error { repr: Os { code: 104, message: "Connection reset by peer" } }', ../src/libcore/result.rs:785
stack backtrace:
   1:     0x7f3a5387d880 - std::sys::backtrace::tracing::imp::write::h9fb600083204ae7f
   2:     0x7f3a53884ecb - std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::hca543c34f11229ac
   3:     0x7f3a53884b33 - std::panicking::default_hook::hc2c969e7453d080c
   4:     0x7f3a52cc724f - util::panicking::initiate_panic_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::h6b508d86c8c70738
                        at /home/user/servo/components/util/panicking.rs:46
   5:     0x7f3a52cc70d9 - _<std..thread..LocalKey<T>>::with::h25de3cca2edad6eb
                        at ../src/libstd/thread/local.rs:211
   6:     0x7f3a52cc6f5a - util::panicking::initiate_panic_hook::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hbc02133c208123b8
                        at /home/user/servo/components/util/panicking.rs:41
   7:     0x7f3a5386ad53 - std::sys_common::unwind::begin_unwind_inner::h30e12d15ce2b2e25
   8:     0x7f3a5386c798 - std::sys_common::unwind::begin_unwind_fmt::hb2de8a9968d38523
   9:     0x7f3a5387cad1 - rust_begin_unwind
  10:     0x7f3a538bbf4f - core::panicking::panic_fmt::h257ceb0aa351d801
  11:     0x7f3a534aed57 - core::result::unwrap_failed::h8630b273acce548f
                        at ../src/libcore/macros.rs:29
  12:     0x7f3a534af3b4 - _<core..result..Result<T, E>>::unwrap::h65c0cbf09a789a2b
                        at ../src/libcore/result.rs:723
  13:     0x7f3a53517526 - webrender_traits::api::RenderApi::translate_point_to_layer_space::h764f2d0f41f76dcd
                        at /home/user/servo/.cargo/git/checkouts/webrender_traits-e24a580db67dabe6/master/src/api.rs:217
  14:     0x7f3a503dd9da - _<servo..compositing..compositor..IOCompositor<Window>>::on_mouse_window_move_event_class::h4e51db5395971fef
                        at /home/user/servo/components/compositing/compositor.rs:1404
  15:     0x7f3a503d69ce - _<servo..compositing..compositor..IOCompositor<Window>>::handle_window_message::h0594ad479b8da124
                        at /home/user/servo/components/compositing/compositor.rs:1237
  16:     0x7f3a503166b1 - _<servo..compositing..compositor..IOCompositor<Window> as servo..compositing..CompositorEventListener>::handle_events::h073ffc523bc669db
                        at /home/user/servo/components/compositing/compositor.rs:2469
  17:     0x7f3a5059b494 - servo::Browser::handle_events::h200ef304bd04d660
                        at /home/user/servo/components/servo/lib.rs:190
  18:     0x7f3a502c3d98 - servo::main::h6924e5658370f6b5
                        at /home/user/servo/components/servo/main.rs:78
  19:     0x7f3a538845d4 - std::sys_common::unwind::try::try_fn::h04c0c89e4add6cc4
  20:     0x7f3a5387ca5b - __rust_try
  21:     0x7f3a5388401b - std::rt::lang_start::h61f4934e780b4dfc
  22:     0x7f3a503e1ae9 - main
  23:     0x7f3a4d58082f - __libc_start_main
  24:     0x7f3a502c3638 - _start
  25:                0x0 - <unknown>
Servo exited with return value 101
@jdm
Copy link
Member

@jdm jdm commented May 6, 2016

Interesting, that's a failure inside webrender. cc @glennw

@shinglyu
Copy link
Member

@shinglyu shinglyu commented May 7, 2016

@jankeromnes Answering your earlier question. I use the Vagrant and SaltStack configuration from the saltfs repo directly. This is the packages it installs https://github.com/servo/saltfs/blob/master/servo-build-dependencies/init.sls#L15-L25

I didn't use anything fancy to build servo, just ./mach build -r. But you have to build it in the servo-linux1 VM. I tried to build it on my Linux Mint machine, but there are gfx errors similar to yours.

Xvfb is started automatically in the VM, using this command https://github.com/servo/saltfs/blob/master/xvfb/xvfb.conf#L1. So to run servo headlessly in the VM, I just

export DISPLAY=:0
./mach run -z -x -o output.png https://www.wikipeida.org

-z is a shorthand for --headless, -x -o output.png force servo to exit after the page was fully loaded.

And your error with WebRender is probably inside WebRender, not your configuration.

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.

None yet
7 participants
You can’t perform that action at this time.