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

Implement HTTP Archive output #4004

Open
jdm opened this issue Nov 16, 2014 · 28 comments
Open

Implement HTTP Archive output #4004

jdm opened this issue Nov 16, 2014 · 28 comments
Labels
A-content/dom Interacting with the DOM from web content A-network B-interesting-project Represents work that is expected to be interesting in some fashion I-perf-slow Unnecessary performance degredation.

Comments

@jdm
Copy link
Member

jdm commented Nov 16, 2014

Spec: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/HAR/Overview.html
Viewer: https://github.com/janodvarko/harviewer

"This specification defines an archival format for HTTP transactions that can be used by a web browser to export detailed performance data about web pages it loads. "

This could be useful for pageload comparisons between Servo and other browsers.

@jdm jdm added A-content/dom Interacting with the DOM from web content I-perf-slow Unnecessary performance degredation. B-interesting-project Represents work that is expected to be interesting in some fashion A-network labels Nov 16, 2014
@jdm
Copy link
Member Author

jdm commented Nov 16, 2014

Also for pageload speed regression tests???

@znewman01
Copy link
Contributor

I'm interested in working on this. I should be able to do the file format part myself easily, but may need a hand plugging it into Servo itself. Will bump when I have some progress made (a few days).

@jdm
Copy link
Member Author

jdm commented Nov 18, 2014

Excellent! I expect the bits you'll want to be looking into reside in ScriptTask::load, as well as the various places we send Load messages to the resource task. #3714 would probably make it easier to tie all of those together, but I'm having trouble getting ahold of someone to review it for me.

@Manishearth
Copy link
Member

IMO we should prioritize implementing gzip/compress (and parallel network fetches) before thinking of comparison with other browsers (without these two there isn't much point of comparing), but if someone wants to work on it that's great 😄

@jdm
Copy link
Member Author

jdm commented Nov 19, 2014

As I pointed out, this can be used to compare runs of Servo against itself too. I think there's lots of value we can derive from this.

@Manishearth
Copy link
Member

Oh, right :)

@znewman01
Copy link
Contributor

Mini-status update

I did some work on the serializer bit. I'd appreciate general feedback on style/design if anyone has the time, as I'm pretty new to the language.

Notes:

  • I worked from http://www.softwareishard.com/blog/har-12-spec/ instead of the URL @jdm provided, since that's a draft version.
  • Because I don't yet understand how we're using this in practice in Servo, I didn't add any utilities or means of manipulating the HAR structs. I'll stick those in as needed.
  • The docs are mostly copy-pasted from the HAR 1.2 spec; I'll improve those incrementally.

Right now, I'd like to know:

  1. Is there an obvious place for this file to go into the Servo tree?
  2. As I understand, Rust DateTime libraries are in a state of flux. How should I deal with DateTime values (the HAR spec requires ISO 8601-formatted strings in several places)? I left them as Rust Strings.

My next step is to take a look at what it means to actually pull the relevant data out of Servo. I'll likely poke this comment thread in about a week with my findings there. Then, if my understanding is sufficient, I'll get to it.

Thanks for bearing with me, since I'm new to Servo and Rust in general.

@Manishearth
Copy link
Member

Is there an obvious place for this file to go into the Servo tree?

I personally would prefer a separate repository if HAR is something other applications may end up using too. If not, components/net/har seems okay to me.

As I understand, Rust DateTime libraries are in a state of flux. How should I deal with DateTime values ?

Good question 😄 rust-chrono might help here.

@jdm
Copy link
Member Author

jdm commented Nov 30, 2014

@znewman01 I have no problem with using Rust strings for the dates. With regards to where to put it, I'd be inclined to make a rust-har repository and use it in Servo via Cargo. It will make building and testing it easier for you, and it looks like you've put together a decent set of structural primitives so far. For fields like on_content_load, it might be nice to have an enum of TimedContent(uint) or NotApplicable (which translates to -1 when serialized).

@jdm jdm added the C-assigned There is someone working on resolving the issue label Dec 6, 2014
@znewman01
Copy link
Contributor

Great! I've created the repository rust-har and implemented those suggestions. Now onto integration with Servo. I'll probably have some questions about that. Expect another check-in once I've taken a crack at it.

@znewman01
Copy link
Contributor

I've taken a look at this (was hoping #3714 would have landed by now, so I was putting it off 😄 ) and I think I understand where at what point in the code all of the timings happen.

First, I have a question about ScriptTask objects: am I correct in thinking that there is only one ScriptTask object, and that it loads every page?

I'd like to know what you think the best way to hook the HAR objects into all of this is. The easiest way I can think of would be to attach a har::Log to the ScriptTask and update its timings every time a page is loaded. But this would complicate things when we're trying to hook network timing information in.

The other option that comes to mind is attaching some sort of HAR channel or something and feeding it timing information, similar to the TimeProfilerChan. But then retrieval of the HAR would be strange.

Do y'all have thoughts? I'm just starting to get a sense of how Servo is structured.

@jdm
Copy link
Member Author

jdm commented Dec 30, 2014

To answer the immediate question, there is one ScriptTask object per origin, more or less. That means that a page that contains a cross-origin iframe would cause two separate ScriptTasks to be created. If a link was clicked that navigated to a different origin, a third ScriptTask would be created.

@jdm
Copy link
Member Author

jdm commented Dec 30, 2014

It may make the most sense to make the Constellation own the HAR. That can be thought of as a tab, basically, and it knows how to talk to the various script tasks (in history and currently active), and they to it.

@jdm
Copy link
Member Author

jdm commented Dec 30, 2014

Maybe a ScriptTask or a Page could be in charge of the timings for a particular page, and then send the collected data to the Constellation when it's finished?

@znewman01
Copy link
Contributor

ACK, that makes perfect sense to me. I'll prototype something along those
lines.
On Dec 29, 2014 7:27 PM, "Josh Matthews" notifications@github.com wrote:

Maybe a ScriptTask or a Page could be in charge of the timings for a
particular page, and then send the collected data to the Constellation when
it's finished?


Reply to this email directly or view it on GitHub
#4004 (comment).

@znewman01
Copy link
Contributor

Progress report (no major questions at the time, but as always feedback is welcome):

I've taken a preliminary stab at this on the branch znewman01/servo:har.

Some notes:

  • I dropped the rust-har dependency on rust-crono, because I was having a
    difficult time to get it, rust-har, and servo to compile on the same compiler
    version (rust-chrono is a little bit ahead). A library user passes in strings
    instead of time objects.
  • The page_id just has to be a unique identifier. "page_0" is an example in
    the HAR spec. I've
    left it as a static string for now, but I'll probably just have the
    Constellation assign a monotonically increasing identifier to a page within a
    single HAR (use the pipeline ID, perhaps?)
  • I ignored the networking related stuff at first, which makes up the bulk of
    the HAR spec. This might require more mucking in Servo internals than the page
    load stuff did.
  • I can't think of an obvious way to get the detailed connection information (DNS resolution time, TCP connection time, local TCP port used, etc.) from Hyper without modifying it. Any suggestions?
  • The synchronization between Entries (HTTP request/response data) and Pages
    (page load data) requires a small amount of work (related to page_ids). I
    think I'm going to have the Constellation handle this.
  • I've thought about moving the timing logic to rust-har. For example,
    let mut p = har::page::new(..); p.start(); p.onContentLoad(); p.onLoad();
    (with better-named methods) would give you a populated Page object. But I'm
    hesitant to do that, mostly because of the unstable state of the time crate.
  • I've thought about moving the timing logic to the Constellation (i.e. the
    ScriptTask would send events to the Constellation, which would record the
    times). But that scares me: coordinating events between possibly different
    ScriptTasks could be complicated. Also, this would be way-too-difficult for
    the much-more-complicated Entries portion of HAR.
  • Therefore, I've concluded that creating Page objects in ScriptTask and sending
  • them back up is the best way to go.
  • Right now, the HAR is getting populated, but not used. Should I be concerned
    right now about how to pull out that data (for debugging I can print it out,
    using json::encode)? Or will that happen as demand is created.

My plan for now is to implement the Entries (networking) portion of HAR
(probably incrementally). Then, I'll make sure that page IDs are handled
correctly. At this point, we'll have (potentially) useful (if incomplete) HAR
objects.

I'll take care of other stuff (like style issues, and
addressing any other feedback given) as I go.

@znewman01
Copy link
Contributor

RE: the Hyper issue, I see hyperium/hyper#56 which seems relevant. So maybe if I get to that point and it's not resolved, I'll take a crack at that.

@jdm
Copy link
Member Author

jdm commented Jan 2, 2015

With regards to your last point, maybe we can add a command line argument which writes all HAR data out before closing? The rest of the things you mentioned all sound reasonable to me. Thanks so much for tackling all this open-ended stuff!

@jdm jdm removed the C-assigned There is someone working on resolving the issue label Sep 18, 2015
@BhanuSreekarReddy
Copy link

I am a windows user. I am getting an error when building servo. I installed visual studio build tools. I launched the x86_x64 Cross Tools Command Prompt for VS 2017. I changed the directory to servo and when executing the command "python mach build -d". I am getting the error "Cannot run mach in a path with spaces.". Please help me with this issue

@jdm
Copy link
Member Author

jdm commented Mar 18, 2018

@BhanuSreekarReddy That sounds like you're trying to run mach in a path with spaces. Can you move your servo directory into a path that doesn't contain spaces?

@BhanuSreekarReddy
Copy link

Okay will try that thanks for your reply

@BhanuSreekarReddy
Copy link

Well That Suggestion was helpful in running the build but failed to build for the following error:

error: failed to parse manifest at C:\Users\Bhanu\MozillaProject\servo\components\net_traits\Cargo.toml

Caused by:
could not parse input as TOML

Caused by:
unexpected character found: / at line 33
Build FAILED in 0:03:00

@jdm
Copy link
Member Author

jdm commented Mar 18, 2018

There's no line 33 in https://github.com/servo/servo/blob/master/components/net_traits/Cargo.toml. Does git status show any modifications?

@BhanuSreekarReddy
Copy link

Ohh our bad ..one of my teammate added a line which was the reason for that I removed the line and executed that but still getting an another error

error: linking with link.exe failed: exit code: 1112

error: aborting due to previous error

error: Could not compile winapi.
warning: build failed, waiting for other jobs to finish...
error: build failed
Build FAILED in 0:06:37

@jdm
Copy link
Member Author

jdm commented Mar 18, 2018

@BhanuSreekarReddy Could you copy the entire output into a new gist?

@BhanuSreekarReddy
Copy link

BhanuSreekarReddy commented Mar 20, 2018

This was the entire output

C:\Users\Bhanu\MozillaProjectMine\servo>python mach build -d
Compiling mac v0.1.1
Compiling getopts v0.2.14
Compiling smallbitvec v1.0.6
Compiling color_quant v1.0.0
Compiling semver v0.1.20
Compiling sha1 v0.2.0
Compiling bitflags v1.0.0
Compiling half v1.0.0
Compiling procedural-masquerade v0.1.2
Compiling language-tags v0.2.2
Compiling either v1.1.0
Compiling nodrop v0.1.12
Compiling mitochondria v1.1.2
Compiling size_of_test v0.0.1 (file:///C:/Users/Bhanu/MozillaProjectMine/servo/components/size_of_test)
Compiling servo v0.0.1 (file:///C:/Users/Bhanu/MozillaProjectMine/servo/ports/servo)
Compiling simd v0.2.0
Compiling matches v0.1.4
Compiling scopeguard v0.3.2
Compiling typeable v0.1.2
Compiling sig v0.1.1
Compiling gcc v0.3.47
Compiling swapper v0.1.0
Compiling lazycell v0.4.0
Compiling byteorder v1.2.1
Compiling safemem v0.2.0
Compiling rayon-core v1.4.0
Compiling khronos_api v2.1.0
Compiling unicode-normalization v0.1.5
Compiling pkg-config v0.3.9
error: linking with link.exe failed: exit code: 1112
error: linking with link.exe failed: exit code: 1112
|
|
= note: "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.13.26128\bin\HostX86\x86\link.exe" "/NOLOGO" "/NXCOMPAT" "/LIBPATH:C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\rayon-core-30c7a810b4ffb89a\build_script_build-30c7a810b4ffb89a.build_script_build0.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\rayon-core-30c7a810b4ffb89a\build_script_build-30c7a810b4ffb89a.build_script_build1.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\rayon-core-30c7a810b4ffb89a\build_script_build-30c7a810b4ffb89a.build_script_build2.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\rayon-core-30c7a810b4ffb89a\build_script_build-30c7a810b4ffb89a.build_script_build3.rcgu.o" "/OUT:C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\rayon-core-30c7a810b4ffb89a\build_script_build-30c7a810b4ffb89a.exe" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\rayon-core-30c7a810b4ffb89a\build_script_build-30c7a810b4ffb89a.crate.allocator.rcgu.o" "/OPT:REF,NOICF" "/DEBUG" "/NATVIS:C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\etc\intrinsic.natvis" "/NATVIS:C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\etc\liballoc.natvis" "/NATVIS:C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\etc\libcore.natvis" "/LIBPATH:C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\deps" "/LIBPATH:C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libstd-c97a363104767441.rlib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libpanic_unwind-b732895cb7c4e889.rlib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libunwind-56bf7dac071a8973.rlib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\liblibc-61a0189b56f176aa.rlib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\liballoc_system-95134b3ee7034552.rlib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\liballoc-e3aec90daf7e1365.rlib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libstd_unicode-dc3684e3dbd584fa.rlib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libcore-eed809e61e03daa6.rlib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libcompiler_builtins-f6e984c3c6ce8db3.rlib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "shell32.lib" "msvcrt.lib"
= note: "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.13.26128\bin\HostX86\x86\link.exe" "/NOLOGO" "/NXCOMPAT" "/LIBPATH:C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.15kq92zzbmxot4k9.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.16u6js6g0l3k1ic6.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.1dqvxks6k2bzkxe.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.1im38lueib99jsk0.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.1jnlhyxj59jycbjv.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.1mvmz58owquyropc.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.1o6b1la7g4jnv39b.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.1q8ffos2d96smbjs.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.1y16o1qfye96o7m0.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.236iz806sghm3wx.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.2jqywn86b2gsqohu.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.2kjrmm4fe2aha78f.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.2lyh15q6cjwzy18c.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.2qrttinu4b1fw1i9.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.3404ijhq5998aa1q.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.3ayaeypdcro9d6yk.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.3cx7oljifvb206q7.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.3kfx4ynvkmi2y9i5.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.3ldk0i2zxftngav8.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.3rngp6bm2u2q5z0y.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.436dotimmrgzkwfa.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.43v6g0y2xsxoggnt.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.45nf4z58qqykpcpi.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.47kb80rpg37n2ote.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.48721dc4k5qxei0u.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.49a7n47po4ttqjl7.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.49lx1q7cxvpykyv0.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.4b8ptp1vn215jmoe.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.4cuh1vnlot3f7m9v.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.4j76ebx195cz2ne1.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.4jdnq7xfjeka1bt.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.4xq48u46a1pwiqn7.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.4ybye971cqflgun6.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.4yh8x2b62dcih00t.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.4ypvbwho0bu5tnww.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.5544xgl7axh7p8nz.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.7p53qlves2rwxx0.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.8xzrsc1ux72v29j.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.98g0d9x8aw3akpe.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.9elsx31vb4it187.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.c6lbtaiefvx3wya.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.flypaog9cyk0inx.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.kt25z0521ngsjub.rcgu.o" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.sjcqfz2ncn1dupz.rcgu.o" "/OUT:C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.exe" "C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\build\servo-666548f1a3163683\build_script_build-666548f1a3163683.crate.allocator.rcgu.o" "/OPT:REF,NOICF" "/DEBUG" "/NATVIS:C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\etc\intrinsic.natvis" "/NATVIS:C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\etc\liballoc.natvis" "/NATVIS:C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\etc\libcore.natvis" "/LIBPATH:C:\Users\Bhanu\MozillaProjectMine\servo\target\debug\deps" "/LIBPATH:C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libstd-c97a363104767441.rlib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libpanic_unwind-b732895cb7c4e889.rlib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libunwind-56bf7dac071a8973.rlib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\liblibc-61a0189b56f176aa.rlib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\liballoc_system-95134b3ee7034552.rlib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\liballoc-e3aec90daf7e1365.rlib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libstd_unicode-dc3684e3dbd584fa.rlib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libcore-eed809e61e03daa6.rlib" "C:\Users\Bhanu\.rustup\toolchains\nightly-2018-01-21-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib\libcompiler_builtins-f6e984c3c6ce8db3.rlib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "shell32.lib" "msvcrt.lib"
= note: msvcrt.lib(chkstk.obj) : fatal error LNK1112: module machine type 'x86' conflicts with target machine type 'x64'

= note: msvcrt.lib(chkstk.obj) : fatal error LNK1112: module machine type 'x86' conflicts with target machine type 'x64'

error: aborting due to previous error

error: aborting due to previous error

error: Could not compile servo.
warning: build failed, waiting for other jobs to finish...
error: Could not compile rayon-core.
warning: build failed, waiting for other jobs to finish...
error: build failed
Build FAILED in 0:01:22

@jdm
Copy link
Member Author

jdm commented Mar 20, 2018

@BhanuSreekarReddy Are you using 32 bit windows? If so, that's not a configuration that we support. It may be easier for you to use an online build environment instead: https://janitor.technology/

@BhanuSreekarReddy
Copy link

I am using 64-bit windows but thanks for the alternative suggestion will try that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-content/dom Interacting with the DOM from web content A-network B-interesting-project Represents work that is expected to be interesting in some fashion I-perf-slow Unnecessary performance degredation.
Projects
None yet
Development

No branches or pull requests

4 participants