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

geckodriver is broken on master #35301

Closed
dotlambda opened this issue Feb 21, 2018 · 9 comments
Closed

geckodriver is broken on master #35301

dotlambda opened this issue Feb 21, 2018 · 9 comments

Comments

@dotlambda
Copy link
Member

Issue description

error[E0277]: the trait bound `*mut core::ops::Fn() + 'static: core::marker::Sync` is not satisfied in `core::fmt::Arguments<'static>`
   --> /build/geckodriver-0.19.1-vendor/slog/src/ser.rs:228:6
    |
228 | impl SyncSerialize for fmt::Arguments<'static> {}
    |      ^^^^^^^^^^^^^ `*mut core::ops::Fn() + 'static` cannot be shared between threads safely
    |
    = help: within `core::fmt::Arguments<'static>`, the trait `core::marker::Sync` is not implemented for `*mut core::ops::Fn() + 'static`
    = note: required because it appears within the type `core::marker::PhantomData<*mut core::ops::Fn() + 'static>`
    = note: required because it appears within the type `core::fmt::Void`
    = note: required because it appears within the type `&'static core::fmt::Void`
    = note: required because it appears within the type `core::fmt::ArgumentV1<'static>`
    = note: required because it appears within the type `[core::fmt::ArgumentV1<'static>]`
    = note: required because it appears within the type `&'static [core::fmt::ArgumentV1<'static>]`
    = note: required because it appears within the type `core::fmt::Arguments<'static>`

error: aborting due to previous error

error: Could not compile `slog`.

Steps to reproduce

nix-build -A geckodriver

/cc maintainer @jraygauthier

@Synthetica9
Copy link
Member

This broke with the update rust: 1.22.1 -> 1.24.0

f61e8d98ff7fbb049ddeea33742bb4b840dafbfa is the first bad commit
commit f61e8d98ff7fbb049ddeea33742bb4b840dafbfa
Author: Jörg Thalheim <Mic92@users.noreply.github.com>
Date:   Tue Feb 20 09:59:26 2018 +0000

     rust: 1.22.1 -> 1.24.0

:040000 040000 521ca4d4146d24dc66877b6c99db34af34f622aa 1aaab27b45ccc7c60d8c11f6e7f6e3ace93743ee M   pkgs
bisect run success

Found with git bisect run nix-build . -A geckodriver

@jraygauthier
Copy link
Member

I think the easy road will be to revert to the binary version until Mozilla update its package. See https://github.com/mozilla/geckodriver/releases. Alternatives would be to patch 0.19.1 version or use a non official version from mozilla central which no longer uses the problematic slog crate..

@dotlambda
Copy link
Member Author

@jraygauthier Do you know which commit on their side removed the slog dependency? Can we maybe use that commit as a patch?

@matthiasbeyer
Copy link
Contributor

Just wanted to file this issue. Nice that it is already in progress! ❤️

@dotlambda
Copy link
Member Author

@matthiasbeyer As you are proficient in Rust, maybe you can find out which patch to apply?

@matthiasbeyer
Copy link
Contributor

I could, but unfortunately I'm not on my computer over the weekend (vacation) ... so if this can wait until monday, I can try. But as this breaks master I'd suggest you try yourself... if you can't find the right patch, I guess rolling back to the last version which worked should do the job short-term.

@dotlambda
Copy link
Member Author

Found it: https://bugzilla.mozilla.org/show_bug.cgi?id=1436830
Sadly, this cannot be applied as is, some manual work seems to be needed.

@mguentner
Copy link
Contributor

See referenced PR

mguentner added a commit to mguentner/nixpkgs that referenced this issue Feb 28, 2018
@leenaars leenaars mentioned this issue Feb 28, 2018
8 tasks
@globin globin closed this as completed in 452f9ca Mar 1, 2018
@noloader
Copy link

An FYI... It looks like version 21 (https://github.com/mozilla/geckodriver/archive/v0.21.0. tar.gz) compiles as expected. versions 16-20 have compile problems. I did not try version 15 of the driver.

Unfortunately, version 21 breaks in another way:

   Compiling miniz_oxide v0.2.1
error: `impl Trait` in argument position is experimental (see issue #34511)
    --> /root/.cargo/registry/src/github.com-1ecc6299db9ec823/miniz_oxide-0.2.1/src/deflate/core.rs:2030:20
     |
2030 |     callback_func: impl FnMut(&[u8]) -> bool,
     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to previous error

error: Could not compile `miniz_oxide`.
warning: build failed, waiting for other jobs to finish...

Man this language blows. I'll never understand the "let's embrace bleeding edge" because things mostly don't work...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants