ActivityWatch/aw-server-rust

Getting error while building (pear macro panic)

mayankchauhan96 opened this issue · 15 comments

Dependencies :
Python 3.6.8
Poetry version 1.0.10
node v12.19.0
npm 6.14.8
rustc 1.47.0 (18bf6b4f0 2020-10-07)
cargo 1.47.0 (f3c7e066a 2020-08-28)

Error log:

- Installing aw-server (0.9)
make[1]: Leaving directory `/mnt/newdisk/new/rwm04/activitywatch/aw-server'
make --directory=aw-server-rust build SKIP_WEBUI=
make[1]: Entering directory `/mnt/newdisk/new/rwm04/activitywatch/aw-server-rust'
cargo build --release --bin aw-server
   Compiling rocket_http v0.4.3
error: proc macro panicked
   --> /home/centos/.cargo/registry/src/github.com-1ecc6299db9ec823/rocket_http-0.4.3/src/parse/uri/parser.rs:119:34
    |
119 |             let path_and_query = pear_try!(path_and_query(is_pchar));
    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: message: called `Option::unwrap()` on a `None` value
    = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to previous error

error: could not compile `rocket_http`

To learn more, run the command again with --verbose.
make[1]: *** [aw-server] Error 101
make[1]: Leaving directory `/mnt/newdisk/new/rwm04/activitywatch/aw-server-rust'
make: *** [build] Error 2

Are you using rust nightly? It's not clear from your listing of dependencies you have installed.

Can you please suggest me the command I need to run to know this? Actually, I am very new to this.

On running
$ rustup default nightly
I am getting this:

info: using existing install for 'nightly-x86_64-unknown-linux-gnu'
info: default toolchain set to 'nightly-x86_64-unknown-linux-gnu'

nightly-x86_64-unknown-linux-gnu unchanged - rustc 1.50.0-nightly (c919f490b 2020-11-17)

info: note that the toolchain '1.47.0-x86_64-unknown-linux-gnu' is currently in use (directory override for '/home')

Now on running
$ rustc -V

I am getting this:

rustc 1.50.0-nightly (c919f490b 2020-11-17)

The new version you have now looks correct!
Does it build now or is there some other issue?

Still same error.

Any clue what is need to be done in order to debug this?

I googled and found that we have had this issue before

ActivityWatch/aw-android#40 (comment)

It seems to be fixed in the latest version of aw-server-rust though, so unless you are running an older version of rust nightly or aw-server-rust it should not be a problem.

I think we are using the latest versions of both still getting the same error.

Anything we are missing here? Please enlight us

@mayankchauhan96 There must be something weird with your build environment (since it builds fine in CI), but we can't tell what.

Have you tried running cargo build --release --bin aw-server (in ./aw-server-rust) with -Z macro-backtrace and --verbose as suggested by the compile error? What's the output?

On running cargo build --release --bin aw-server --verbose we are getting:

       Fresh version_check v0.1.5
       Fresh autocfg v1.0.0
       Fresh unicode-xid v0.2.0
       Fresh autocfg v0.1.7
       Fresh cc v1.0.50
       Fresh version_check v0.9.1
       Fresh yansi v0.4.0
       Fresh smallvec v1.2.0
       Fresh matches v0.1.8
       Fresh cfg-if v0.1.10
       Fresh safemem v0.3.3
       Fresh percent-encoding v1.0.1
       Fresh rand_core v0.4.2
       Fresh lazy_static v1.4.0
       Fresh typeable v0.1.2
       Fresh itoa v0.4.5
       Fresh language-tags v0.2.2
       Fresh traitobject v0.1.0
       Fresh untrusted v0.6.2
       Fresh glob v0.3.0
       Fresh unicode-xid v0.1.0
       Fresh regex-syntax v0.6.14
       Fresh state v0.4.1
       Fresh yansi v0.5.0
       Fresh ppv-lite86 v0.2.6
       Fresh pkg-config v0.3.17
       Fresh siphasher v0.2.3
       Fresh slab v0.4.2
       Fresh bit-vec v0.4.4
       Fresh linked-hash-map v0.5.2
       Fresh fallible-iterator v0.2.0
       Fresh fallible-streaming-iterator v0.1.9
       Fresh vec_map v0.6.0
       Fresh lazycell v1.2.1
       Fresh modifier v0.1.0
       Fresh same-file v1.0.6
       Fresh ascii v0.8.7
       Fresh remove_dir_all v0.5.2
       Fresh lalr v0.0.2
       Fresh appdirs v0.2.0
       Fresh groupable v0.2.0
       Fresh chunked_transfer v0.3.1
       Fresh quick-error v1.2.3
       Fresh thread_local v1.0.1
       Fresh crossbeam-utils v0.6.6
       Fresh unsafe-any v0.4.2
       Fresh unicode-normalization v0.1.12
       Fresh unicode-bidi v0.3.4
       Fresh rand_core v0.3.1
       Fresh rand_jitter v0.1.4
       Fresh c2-chacha v0.2.3
       Fresh bit-set v0.4.0
       Fresh lru-cache v0.1.2
       Fresh walkdir v2.3.1
       Fresh libc v0.2.67
       Fresh log v0.4.8
       Fresh proc-macro2 v1.0.9
       Fresh byteorder v1.3.4
       Fresh proc-macro2 v0.4.30
       Fresh httparse v1.3.4
       Fresh crossbeam-channel v0.3.9
       Fresh bitflags v1.2.1
       Fresh memchr v2.3.3
       Fresh typemap v0.3.3
       Fresh idna v0.1.5
       Fresh ryu v1.0.2
       Fresh rand_xorshift v0.1.1
       Fresh rand_hc v0.1.0
       Fresh rand_isaac v0.1.1
       Fresh redfa v0.0.2
       Fresh atty v0.2.14
       Fresh getrandom v0.1.14
       Fresh iovec v0.1.4
       Fresh net2 v0.2.33
       Fresh inotify-sys v0.1.3
       Fresh filetime v0.2.8
       Fresh gethostname v0.2.1
       Fresh time v0.1.42
       Fresh num_cpus v1.12.0
       Fresh rand_os v0.1.3
       Fresh unicase v1.4.2
       Fresh log v0.3.9
       Fresh indexmap v1.3.2
       Fresh num-traits v0.2.11
       Fresh quote v1.0.2
       Fresh base64 v0.10.1
       Fresh base64 v0.9.3
       Fresh rand_chacha v0.1.1
       Fresh rand_pcg v0.1.2
       Fresh quote v0.6.13
       Fresh ring v0.13.5
       Fresh mpsc_requests v0.3.1
       Fresh unicase v2.6.0
       Fresh aho-corasick v0.7.9
       Fresh twoway v0.1.8
       Fresh buf_redux v0.8.4
       Fresh plugin v0.2.6
       Fresh url v1.7.2
       Fresh libsqlite3-sys v0.17.1
       Fresh colored v1.9.3
       Fresh rand_core v0.5.1
       Fresh mio v0.6.21
       Fresh inotify v0.7.0
       Fresh phf_shared v0.7.24
       Fresh mime v0.2.6
       Fresh num-integer v0.1.42
       Fresh syn v1.0.16
       Fresh rand v0.6.5
       Fresh syn v0.15.44
       Fresh regex v1.3.4
       Fresh cookie v0.11.2
       Fresh rand_chacha v0.2.1
       Fresh mio-extras v2.0.6
       Fresh phf v0.7.24
       Fresh hyper v0.10.16
       Fresh serde_derive v1.0.104
       Fresh phf_generator v0.7.24
       Fresh pear_codegen v0.1.2
       Fresh devise_core v0.2.0
       Fresh plex v0.2.5
       Fresh rand v0.7.3
       Fresh notify v4.0.15
       Fresh serde v1.0.104
       Fresh phf_codegen v0.7.24
       Fresh pear v0.1.2
       Fresh devise_codegen v0.2.0
       Fresh tempfile v3.1.0
       Fresh chrono v0.4.10
       Fresh serde_json v1.0.48
       Fresh toml v0.4.10
       Fresh mustache v0.9.0
       Fresh unicase_serde v0.1.0
       Fresh uuid v0.8.1
       Fresh toml v0.5.6
   Compiling rocket_http v0.4.3
     Running `rustc --crate-name rocket_http /home/centos/.cargo/registry/src/github.com-1ecc6299db9ec823/rocket_http-0.4.3/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="default"' --cfg 'feature="private-cookies"' -C metadata=e954445f9bbf43ac -C extra-filename=-e954445f9bbf43ac --out-dir /mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps -L dependency=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps --extern cookie=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libcookie-4e8bc651d444743a.rmeta --extern hyper=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libhyper-3ef45cb536f7f16a.rmeta --extern indexmap=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libindexmap-5fb3a64a7169472c.rmeta --extern pear=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libpear-9906273059c413b6.rmeta --extern percent_encoding=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libpercent_encoding-1fb531732dfb5618.rmeta --extern smallvec=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libsmallvec-d7fca4cd80c6c5cd.rmeta --extern state=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libstate-94c7ff9f468ee6e8.rmeta --extern time=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libtime-a882b832e65f5637.rmeta --extern unicode_xid=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libunicode_xid-9a7f426b0bb24c85.rmeta --cap-lints allow -L native=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/build/ring-750632241cbd67c9/out`
error: proc macro panicked
   --> /home/centos/.cargo/registry/src/github.com-1ecc6299db9ec823/rocket_http-0.4.3/src/parse/uri/parser.rs:119:34
    |
119 |             let path_and_query = pear_try!(path_and_query(is_pchar));
    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: message: called `Option::unwrap()` on a `None` value
    = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to previous error

error: could not compile `rocket_http`

Caused by:
  process didn't exit successfully: `rustc --crate-name rocket_http /home/centos/.cargo/registry/src/github.com-1ecc6299db9ec823/rocket_http-0.4.3/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debug-assertions=off --cfg 'feature="default"' --cfg 'feature="private-cookies"' -C metadata=e954445f9bbf43ac -C extra-filename=-e954445f9bbf43ac --out-dir /mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps -L dependency=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps --extern cookie=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libcookie-4e8bc651d444743a.rmeta --extern hyper=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libhyper-3ef45cb536f7f16a.rmeta --extern indexmap=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libindexmap-5fb3a64a7169472c.rmeta --extern pear=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libpear-9906273059c413b6.rmeta --extern percent_encoding=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libpercent_encoding-1fb531732dfb5618.rmeta --extern smallvec=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libsmallvec-d7fca4cd80c6c5cd.rmeta --extern state=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libstate-94c7ff9f468ee6e8.rmeta --extern time=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libtime-a882b832e65f5637.rmeta --extern unicode_xid=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/deps/libunicode_xid-9a7f426b0bb24c85.rmeta --cap-lints allow -L native=/mnt/newdisk/new/rwm01/activitywatch/aw-server-rust/target/release/build/ring-750632241cbd67c9/out` (exit code: 1)

@mayankchauhan96 Seens like you didn't specify -Z macro-backtrace?

Regardless, after a quick search I found this has historically happened when pear and the Rust nightly version get out of sync.

Running cargo update should probably fix it.

Edit: It won't. I just tried building master on latest rust nightly and it builds fine. There's something else going on. Which commit of aw-server-rust are you on?

Edit 2: Your output says Fresh pear v0.1.2, that's not what's in Cargo.lock on master. Pull the latest commit.

Closing since that's definitely the issue.

Also moving the issue to the aw-server-rust repo.