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

Cargo freezes at Building stage with version 1.46.0 #77094

Closed
octave99 opened this issue Sep 23, 2020 · 15 comments
Closed

Cargo freezes at Building stage with version 1.46.0 #77094

octave99 opened this issue Sep 23, 2020 · 15 comments
Labels
C-bug Category: This is a bug. E-needs-bisection Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example I-compiletime Issue: Problems and improvements with respect to compile times. regression-from-stable-to-stable Performance or correctness regression from one stable version to another. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@octave99
Copy link

octave99 commented Sep 23, 2020

When I execute my binary using latest rust version, "cargo run" freezes at Building stage and executes the binary after several minutes. But when I revert the rust version to 1.45.2 without any other change, it works just fine.

Step 1.
rustup default 1.46.0

rustc --version --verbose:

rustc 1.46.0 (04488afe3 2020-08-24)
binary: rustc
commit-hash: 04488afe34512aa4c33566eb16d8c912a3ae04f9
commit-date: 2020-08-24
host: x86_64-unknown-linux-gnu
release: 1.46.0
LLVM version: 10.0

Step 2.
RUST_BACKTRACE=1 cargo build
Compiling asapi v0.1.0 (/media/asapi)
Building [====================================================> ] 393/394

Result: Freezes for several minutes

Step 3.
rustup default 1.45.2

rustc --version --verbose:

rustc 1.45.2 (d3fb005a3 2020-07-31)
binary: rustc
commit-hash: d3fb005a39e62501b8b0b356166e515ae24e2e54
commit-date: 2020-07-31
host: x86_64-unknown-linux-gnu
release: 1.45.2
LLVM version: 10.0

Step 4.
RUST_BACKTRACE=1 cargo build
Compiling asapi v0.1.0 (/media/asapi)
Finished dev [unoptimized + debuginfo] target(s) in 1m 18s

Result: Works just fine

OS Info:
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster

@octave99 octave99 added the C-bug Category: This is a bug. label Sep 23, 2020
@mati865
Copy link
Contributor

mati865 commented Sep 23, 2020

Can you obtain call stack for hanged process?

@octave99
Copy link
Author

octave99 commented Sep 23, 2020

As indicated in the issue above, its the build process that hangs when using "cargo build" command, "cargo run" executes the process after several minutes though. So it doesn't seem to be an issue with the process.

@LeSeulArtichaut LeSeulArtichaut added I-compiletime Issue: Problems and improvements with respect to compile times. regression-from-stable-to-stable Performance or correctness regression from one stable version to another. labels Sep 23, 2020
@rustbot rustbot added the I-prioritize Issue: Indicates that prioritization has been requested for this issue. label Sep 23, 2020
@LeSeulArtichaut LeSeulArtichaut added E-needs-bisection Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example labels Sep 23, 2020
@LeSeulArtichaut
Copy link
Contributor

@octave99 Can you provide the code used to reproduce this issue?

@spastorino spastorino added the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label Sep 23, 2020
@camelid camelid added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 30, 2020
@pronvis
Copy link

pronvis commented Oct 6, 2020

I have similar issue - cargo 1.46 hangs on last building stage.
cargo run hangs too.
My project is production service, so I can't append code here(

@Mark-Simulacrum
Copy link
Member

This looks very similar to #76980, can folks encountering this problem confirm they have proc macros with C++ code in their dependencies?

@pronvis
Copy link

pronvis commented Oct 6, 2020

Mmm, very hard question, at least for me.
Maybe you could say, here is my list of deps:

actix-http
actix-rt
actix-web
ruma-serde
anyhow
bb8
bb8-postgres
clickhouse-rs
chrono-tz
chrono
dotenv
env_logger
futures
log
postgres-types
prost
prost-types
retain_mut
serde
serde_json
tokio
tokio-postgres
tonic
uuid
time
prometheus
actix-web-prom
cfg-if
maplit
structopt

@cuviper
Copy link
Member

cuviper commented Oct 6, 2020

cargo tree --edges no-dev would help us see everything in use.

@pronvis
Copy link

pronvis commented Oct 6, 2020

admin_api v0.1.1 
├── actix-http v2.0.0
│   ├── actix-codec v0.3.0
│   │   ├── bitflags v1.2.1
│   │   ├── bytes v0.5.6
│   │   ├── futures-core v0.3.6
│   │   ├── futures-sink v0.3.6
│   │   ├── log v0.4.11
│   │   │   ├── cfg-if v0.1.10
│   │   │   └── serde v1.0.116
│   │   │       └── serde_derive v1.0.116
│   │   │           ├── proc-macro2 v1.0.24
│   │   │           │   └── unicode-xid v0.2.1
│   │   │           ├── quote v1.0.7
│   │   │           │   └── proc-macro2 v1.0.24 (*)
│   │   │           └── syn v1.0.42
│   │   │               ├── proc-macro2 v1.0.24 (*)
│   │   │               ├── quote v1.0.7 (*)
│   │   │               └── unicode-xid v0.2.1
│   │   ├── pin-project v0.4.26
│   │   │   └── pin-project-internal v0.4.26
│   │   │       ├── proc-macro2 v1.0.24 (*)
│   │   │       ├── quote v1.0.7 (*)
│   │   │       └── syn v1.0.42 (*)
│   │   ├── tokio v0.2.22
│   │   │   ├── bytes v0.5.6
│   │   │   ├── fnv v1.0.7
│   │   │   ├── futures-core v0.3.6
│   │   │   ├── iovec v0.1.4
│   │   │   │   └── libc v0.2.79
│   │   │   ├── lazy_static v1.4.0
│   │   │   ├── libc v0.2.79
│   │   │   ├── memchr v2.3.3
│   │   │   ├── mio v0.6.22
│   │   │   │   ├── cfg-if v0.1.10
│   │   │   │   ├── iovec v0.1.4 (*)
│   │   │   │   ├── libc v0.2.79
│   │   │   │   ├── log v0.4.11 (*)
│   │   │   │   ├── net2 v0.2.35
│   │   │   │   │   ├── cfg-if v0.1.10
│   │   │   │   │   └── libc v0.2.79
│   │   │   │   └── slab v0.4.2
│   │   │   ├── mio-uds v0.6.8
│   │   │   │   ├── iovec v0.1.4 (*)
│   │   │   │   ├── libc v0.2.79
│   │   │   │   └── mio v0.6.22 (*)
│   │   │   ├── num_cpus v1.13.0
│   │   │   │   └── libc v0.2.79
│   │   │   ├── pin-project-lite v0.1.10
│   │   │   ├── signal-hook-registry v1.2.1
│   │   │   │   ├── arc-swap v0.4.7
│   │   │   │   └── libc v0.2.79
│   │   │   ├── slab v0.4.2
│   │   │   └── tokio-macros v0.2.5
│   │   │       ├── proc-macro2 v1.0.24 (*)
│   │   │       ├── quote v1.0.7 (*)
│   │   │       └── syn v1.0.42 (*)
│   │   └── tokio-util v0.3.1
│   │       ├── bytes v0.5.6
│   │       ├── futures-core v0.3.6
│   │       ├── futures-sink v0.3.6
│   │       ├── log v0.4.11 (*)
│   │       ├── pin-project-lite v0.1.10
│   │       └── tokio v0.2.22 (*)
│   ├── actix-connect v2.0.0
│   │   ├── actix-codec v0.3.0 (*)
│   │   ├── actix-rt v1.1.1
│   │   │   ├── actix-macros v0.1.2
│   │   │   │   ├── quote v1.0.7 (*)
│   │   │   │   └── syn v1.0.42 (*)
│   │   │   ├── actix-threadpool v0.3.3
│   │   │   │   ├── derive_more v0.99.11
│   │   │   │   │   ├── proc-macro2 v1.0.24 (*)
│   │   │   │   │   ├── quote v1.0.7 (*)
│   │   │   │   │   └── syn v1.0.42 (*)
│   │   │   │   ├── futures-channel v0.3.6
│   │   │   │   │   ├── futures-core v0.3.6
│   │   │   │   │   └── futures-sink v0.3.6
│   │   │   │   ├── lazy_static v1.4.0
│   │   │   │   ├── log v0.4.11 (*)
│   │   │   │   ├── num_cpus v1.13.0 (*)
│   │   │   │   ├── parking_lot v0.11.0
│   │   │   │   │   ├── instant v0.1.7
│   │   │   │   │   │   └── cfg-if v0.1.10
│   │   │   │   │   ├── lock_api v0.4.1
│   │   │   │   │   │   └── scopeguard v1.1.0
│   │   │   │   │   └── parking_lot_core v0.8.0
│   │   │   │   │       ├── cfg-if v0.1.10
│   │   │   │   │       ├── instant v0.1.7 (*)
│   │   │   │   │       ├── libc v0.2.79
│   │   │   │   │       └── smallvec v1.4.2
│   │   │   │   └── threadpool v1.8.1
│   │   │   │       └── num_cpus v1.13.0 (*)
│   │   │   ├── copyless v0.1.5
│   │   │   ├── futures-channel v0.3.6 (*)
│   │   │   ├── futures-util v0.3.6
│   │   │   │   ├── futures-channel v0.3.6 (*)
│   │   │   │   ├── futures-core v0.3.6
│   │   │   │   ├── futures-io v0.3.6
│   │   │   │   ├── futures-macro v0.3.6
│   │   │   │   │   ├── proc-macro-hack v0.5.18
│   │   │   │   │   ├── proc-macro2 v1.0.24 (*)
│   │   │   │   │   ├── quote v1.0.7 (*)
│   │   │   │   │   └── syn v1.0.42 (*)
│   │   │   │   ├── futures-sink v0.3.6
│   │   │   │   ├── futures-task v0.3.6
│   │   │   │   │   └── once_cell v1.4.1
│   │   │   │   ├── memchr v2.3.3
│   │   │   │   ├── pin-project v0.4.26 (*)
│   │   │   │   ├── pin-utils v0.1.0
│   │   │   │   ├── proc-macro-hack v0.5.18
│   │   │   │   ├── proc-macro-nested v0.1.6
│   │   │   │   └── slab v0.4.2
│   │   │   ├── smallvec v1.4.2
│   │   │   └── tokio v0.2.22 (*)
│   │   ├── actix-service v1.0.6
│   │   │   ├── futures-util v0.3.6 (*)
│   │   │   └── pin-project v0.4.26 (*)
│   │   ├── actix-utils v2.0.0
│   │   │   ├── actix-codec v0.3.0 (*)
│   │   │   ├── actix-rt v1.1.1 (*)
│   │   │   ├── actix-service v1.0.6 (*)
│   │   │   ├── bitflags v1.2.1
│   │   │   ├── bytes v0.5.6
│   │   │   ├── either v1.6.1
│   │   │   ├── futures-channel v0.3.6 (*)
│   │   │   ├── futures-sink v0.3.6
│   │   │   ├── futures-util v0.3.6 (*)
│   │   │   ├── log v0.4.11 (*)
│   │   │   ├── pin-project v0.4.26 (*)
│   │   │   └── slab v0.4.2
│   │   ├── derive_more v0.99.11 (*)
│   │   ├── either v1.6.1
│   │   ├── futures-util v0.3.6 (*)
│   │   ├── http v0.2.1
│   │   │   ├── bytes v0.5.6
│   │   │   ├── fnv v1.0.7
│   │   │   └── itoa v0.4.6
│   │   ├── log v0.4.11 (*)
│   │   ├── trust-dns-proto v0.19.5
│   │   │   ├── async-trait v0.1.41
│   │   │   │   ├── proc-macro2 v1.0.24 (*)
│   │   │   │   ├── quote v1.0.7 (*)
│   │   │   │   └── syn v1.0.42 (*)
│   │   │   ├── backtrace v0.3.51
│   │   │   │   ├── addr2line v0.13.0
│   │   │   │   │   └── gimli v0.22.0
│   │   │   │   ├── cfg-if v0.1.10
│   │   │   │   ├── libc v0.2.79
│   │   │   │   ├── miniz_oxide v0.4.2
│   │   │   │   │   └── adler v0.2.3
│   │   │   │   │   [build-dependencies]
│   │   │   │   │   └── autocfg v1.0.1
│   │   │   │   ├── object v0.20.0
│   │   │   │   └── rustc-demangle v0.1.16
│   │   │   ├── enum-as-inner v0.3.3
│   │   │   │   ├── heck v0.3.1
│   │   │   │   │   └── unicode-segmentation v1.6.0
│   │   │   │   ├── proc-macro2 v1.0.24 (*)
│   │   │   │   ├── quote v1.0.7 (*)
│   │   │   │   └── syn v1.0.42 (*)
│   │   │   ├── futures v0.3.6
│   │   │   │   ├── futures-channel v0.3.6 (*)
│   │   │   │   ├── futures-core v0.3.6
│   │   │   │   ├── futures-executor v0.3.6
│   │   │   │   │   ├── futures-core v0.3.6
│   │   │   │   │   ├── futures-task v0.3.6 (*)
│   │   │   │   │   └── futures-util v0.3.6 (*)
│   │   │   │   ├── futures-io v0.3.6
│   │   │   │   ├── futures-sink v0.3.6
│   │   │   │   ├── futures-task v0.3.6 (*)
│   │   │   │   └── futures-util v0.3.6 (*)
│   │   │   ├── idna v0.2.0
│   │   │   │   ├── matches v0.1.8
│   │   │   │   ├── unicode-bidi v0.3.4
│   │   │   │   │   └── matches v0.1.8
│   │   │   │   └── unicode-normalization v0.1.13
│   │   │   │       └── tinyvec v0.3.4
│   │   │   ├── lazy_static v1.4.0
│   │   │   ├── log v0.4.11 (*)
│   │   │   ├── rand v0.7.3
│   │   │   │   ├── getrandom v0.1.15
│   │   │   │   │   ├── cfg-if v0.1.10
│   │   │   │   │   └── libc v0.2.79
│   │   │   │   ├── libc v0.2.79
│   │   │   │   ├── rand_chacha v0.2.2
│   │   │   │   │   ├── ppv-lite86 v0.2.9
│   │   │   │   │   └── rand_core v0.5.1
│   │   │   │   │       └── getrandom v0.1.15 (*)
│   │   │   │   ├── rand_core v0.5.1 (*)
│   │   │   │   └── rand_pcg v0.2.1
│   │   │   │       └── rand_core v0.5.1 (*)
│   │   │   ├── smallvec v1.4.2
│   │   │   ├── thiserror v1.0.20
│   │   │   │   └── thiserror-impl v1.0.20
│   │   │   │       ├── proc-macro2 v1.0.24 (*)
│   │   │   │       ├── quote v1.0.7 (*)
│   │   │   │       └── syn v1.0.42 (*)
│   │   │   ├── tokio v0.2.22 (*)
│   │   │   └── url v2.1.1
│   │   │       ├── idna v0.2.0 (*)
│   │   │       ├── matches v0.1.8
│   │   │       └── percent-encoding v2.1.0
│   │   └── trust-dns-resolver v0.19.5
│   │       ├── backtrace v0.3.51 (*)
│   │       ├── cfg-if v0.1.10
│   │       ├── futures v0.3.6 (*)
│   │       ├── lazy_static v1.4.0
│   │       ├── log v0.4.11 (*)
│   │       ├── lru-cache v0.1.2
│   │       │   └── linked-hash-map v0.5.3
│   │       ├── resolv-conf v0.6.3
│   │       │   ├── hostname v0.3.1
│   │       │   │   ├── libc v0.2.79
│   │       │   │   └── match_cfg v0.1.0
│   │       │   └── quick-error v1.2.3
│   │       ├── smallvec v1.4.2
│   │       ├── thiserror v1.0.20 (*)
│   │       ├── tokio v0.2.22 (*)
│   │       └── trust-dns-proto v0.19.5 (*)
│   ├── actix-rt v1.1.1 (*)
│   ├── actix-service v1.0.6 (*)
│   ├── actix-threadpool v0.3.3 (*)
│   ├── actix-utils v2.0.0 (*)
│   ├── base64 v0.12.3
│   ├── bitflags v1.2.1
│   ├── brotli2 v0.3.2
│   │   ├── brotli-sys v0.3.2
│   │   │   └── libc v0.2.79
│   │   │   [build-dependencies]
│   │   │   └── cc v1.0.60
│   │   └── libc v0.2.79
│   ├── bytes v0.5.6
│   ├── cookie v0.14.2
│   │   ├── percent-encoding v2.1.0
│   │   └── time v0.2.22
│   │       ├── const_fn v0.4.2
│   │       ├── libc v0.2.79
│   │       ├── standback v0.2.10
│   │       │   [build-dependencies]
│   │       │   └── version_check v0.9.2
│   │       └── time-macros v0.1.1
│   │           ├── proc-macro-hack v0.5.18
│   │           └── time-macros-impl v0.1.1
│   │               ├── proc-macro-hack v0.5.18
│   │               ├── proc-macro2 v1.0.24 (*)
│   │               ├── quote v1.0.7 (*)
│   │               ├── standback v0.2.10 (*)
│   │               └── syn v1.0.42 (*)
│   │       [build-dependencies]
│   │       └── version_check v0.9.2
│   │   [build-dependencies]
│   │   └── version_check v0.9.2
│   ├── copyless v0.1.5
│   ├── derive_more v0.99.11 (*)
│   ├── either v1.6.1
│   ├── encoding_rs v0.8.24
│   │   └── cfg-if v0.1.10
│   ├── flate2 v1.0.18
│   │   ├── cfg-if v0.1.10
│   │   ├── crc32fast v1.2.0
│   │   │   └── cfg-if v0.1.10
│   │   ├── libc v0.2.79
│   │   └── miniz_oxide v0.4.2 (*)
│   ├── futures-channel v0.3.6 (*)
│   ├── futures-core v0.3.6
│   ├── futures-util v0.3.6 (*)
│   ├── fxhash v0.2.1
│   │   └── byteorder v1.3.4
│   ├── h2 v0.2.6
│   │   ├── bytes v0.5.6
│   │   ├── fnv v1.0.7
│   │   ├── futures-core v0.3.6
│   │   ├── futures-sink v0.3.6
│   │   ├── futures-util v0.3.6 (*)
│   │   ├── http v0.2.1 (*)
│   │   ├── indexmap v1.6.0
│   │   │   └── hashbrown v0.9.1
│   │   │   [build-dependencies]
│   │   │   └── autocfg v1.0.1
│   │   ├── slab v0.4.2
│   │   ├── tokio v0.2.22 (*)
│   │   ├── tokio-util v0.3.1 (*)
│   │   └── tracing v0.1.21
│   │       ├── cfg-if v0.1.10
│   │       ├── log v0.4.11 (*)
│   │       ├── pin-project-lite v0.1.10
│   │       ├── tracing-attributes v0.1.11
│   │       │   ├── proc-macro2 v1.0.24 (*)
│   │       │   ├── quote v1.0.7 (*)
│   │       │   └── syn v1.0.42 (*)
│   │       └── tracing-core v0.1.17
│   │           └── lazy_static v1.4.0
│   ├── http v0.2.1 (*)
│   ├── httparse v1.3.4
│   ├── indexmap v1.6.0 (*)
│   ├── itoa v0.4.6
│   ├── language-tags v0.2.2
│   ├── lazy_static v1.4.0
│   ├── log v0.4.11 (*)
│   ├── mime v0.3.16
│   ├── percent-encoding v2.1.0
│   ├── pin-project v0.4.26 (*)
│   ├── rand v0.7.3 (*)
│   ├── regex v1.3.9
│   │   ├── aho-corasick v0.7.13
│   │   │   └── memchr v2.3.3
│   │   ├── memchr v2.3.3
│   │   ├── regex-syntax v0.6.18
│   │   └── thread_local v1.0.1
│   │       └── lazy_static v1.4.0
│   ├── serde v1.0.116 (*)
│   ├── serde_json v1.0.58
│   │   ├── itoa v0.4.6
│   │   ├── ryu v1.0.5
│   │   └── serde v1.0.116 (*)
│   ├── serde_urlencoded v0.6.1
│   │   ├── dtoa v0.4.6
│   │   ├── itoa v0.4.6
│   │   ├── serde v1.0.116 (*)
│   │   └── url v2.1.1 (*)
│   ├── sha-1 v0.9.1
│   │   ├── block-buffer v0.9.0
│   │   │   └── generic-array v0.14.4
│   │   │       └── typenum v1.12.0
│   │   │       [build-dependencies]
│   │   │       └── version_check v0.9.2
│   │   ├── cfg-if v0.1.10
│   │   ├── cpuid-bool v0.1.2
│   │   ├── digest v0.9.0
│   │   │   └── generic-array v0.14.4 (*)
│   │   └── opaque-debug v0.3.0
│   ├── slab v0.4.2
│   └── time v0.2.22 (*)
├── actix-rt v1.1.1 (*)
├── actix-web v3.1.0
│   ├── actix-codec v0.3.0 (*)
│   ├── actix-http v2.0.0 (*)
│   ├── actix-macros v0.1.2 (*)
│   ├── actix-router v0.2.5
│   │   ├── bytestring v0.1.5
│   │   │   └── bytes v0.5.6
│   │   ├── http v0.2.1 (*)
│   │   ├── log v0.4.11 (*)
│   │   ├── regex v1.3.9 (*)
│   │   └── serde v1.0.116 (*)
│   ├── actix-rt v1.1.1 (*)
│   ├── actix-server v1.0.4
│   │   ├── actix-codec v0.3.0 (*)
│   │   ├── actix-rt v1.1.1 (*)
│   │   ├── actix-service v1.0.6 (*)
│   │   ├── actix-utils v2.0.0 (*)
│   │   ├── futures-channel v0.3.6 (*)
│   │   ├── futures-util v0.3.6 (*)
│   │   ├── log v0.4.11 (*)
│   │   ├── mio v0.6.22 (*)
│   │   ├── mio-uds v0.6.8 (*)
│   │   ├── num_cpus v1.13.0 (*)
│   │   ├── slab v0.4.2
│   │   └── socket2 v0.3.15
│   │       ├── cfg-if v0.1.10
│   │       └── libc v0.2.79
│   ├── actix-service v1.0.6 (*)
│   ├── actix-testing v1.0.1
│   │   ├── actix-macros v0.1.2 (*)
│   │   ├── actix-rt v1.1.1 (*)
│   │   ├── actix-server v1.0.4 (*)
│   │   ├── actix-service v1.0.6 (*)
│   │   ├── log v0.4.11 (*)
│   │   └── socket2 v0.3.15 (*)
│   ├── actix-threadpool v0.3.3 (*)
│   ├── actix-tls v2.0.0
│   │   ├── actix-codec v0.3.0 (*)
│   │   ├── actix-service v1.0.6 (*)
│   │   ├── actix-utils v2.0.0 (*)
│   │   └── futures-util v0.3.6 (*)
│   ├── actix-utils v2.0.0 (*)
│   ├── actix-web-codegen v0.3.0
│   │   ├── proc-macro2 v1.0.24 (*)
│   │   ├── quote v1.0.7 (*)
│   │   └── syn v1.0.42 (*)
│   ├── awc v2.0.0
│   │   ├── actix-codec v0.3.0 (*)
│   │   ├── actix-http v2.0.0 (*)
│   │   ├── actix-rt v1.1.1 (*)
│   │   ├── actix-service v1.0.6 (*)
│   │   ├── base64 v0.12.3
│   │   ├── bytes v0.5.6
│   │   ├── derive_more v0.99.11 (*)
│   │   ├── futures-core v0.3.6
│   │   ├── log v0.4.11 (*)
│   │   ├── mime v0.3.16
│   │   ├── percent-encoding v2.1.0
│   │   ├── rand v0.7.3 (*)
│   │   ├── serde v1.0.116 (*)
│   │   ├── serde_json v1.0.58 (*)
│   │   └── serde_urlencoded v0.6.1 (*)
│   ├── bytes v0.5.6
│   ├── derive_more v0.99.11 (*)
│   ├── encoding_rs v0.8.24 (*)
│   ├── futures-channel v0.3.6 (*)
│   ├── futures-core v0.3.6
│   ├── futures-util v0.3.6 (*)
│   ├── fxhash v0.2.1 (*)
│   ├── log v0.4.11 (*)
│   ├── mime v0.3.16
│   ├── pin-project v0.4.26 (*)
│   ├── regex v1.3.9 (*)
│   ├── serde v1.0.116 (*)
│   ├── serde_json v1.0.58 (*)
│   ├── serde_urlencoded v0.6.1 (*)
│   ├── socket2 v0.3.15 (*)
│   ├── time v0.2.22 (*)
│   ├── tinyvec v1.0.1
│   │   └── tinyvec_macros v0.1.0
│   └── url v2.1.1 (*)
├── actix-web-prom v0.5.0
│   ├── actix-http v2.0.0 (*)
│   ├── actix-service v1.0.6 (*)
│   ├── actix-web v3.1.0 (*)
│   ├── futures v0.3.6 (*)
│   ├── pin-project v0.4.26 (*)
│   └── prometheus v0.10.0
│       ├── cfg-if v0.1.10
│       ├── fnv v1.0.7
│       ├── lazy_static v1.4.0
│       ├── libc v0.2.79
│       ├── parking_lot v0.11.0 (*)
│       ├── protobuf v2.18.0
│       ├── regex v1.3.9 (*)
│       └── thiserror v1.0.20 (*)
├── anyhow v1.0.32
├── bb8 v0.4.2
│   ├── async-trait v0.1.41 (*)
│   ├── futures v0.3.6 (*)
│   └── tokio v0.2.22 (*)
├── bb8-postgres v0.4.0
│   ├── async-trait v0.1.41 (*)
│   ├── bb8 v0.4.2 (*)
│   ├── futures v0.3.6 (*)
│   ├── tokio v0.2.22 (*)
│   └── tokio-postgres v0.5.5
│       ├── async-trait v0.1.41 (*)
│       ├── byteorder v1.3.4
│       ├── bytes v0.5.6
│       ├── fallible-iterator v0.2.0
│       ├── futures v0.3.6 (*)
│       ├── log v0.4.11 (*)
│       ├── parking_lot v0.11.0 (*)
│       ├── percent-encoding v2.1.0
│       ├── phf v0.8.0
│       │   └── phf_shared v0.8.0
│       │       └── siphasher v0.3.3
│       ├── pin-project-lite v0.1.10
│       ├── postgres-protocol v0.5.2
│       │   ├── base64 v0.12.3
│       │   ├── byteorder v1.3.4
│       │   ├── bytes v0.5.6
│       │   ├── fallible-iterator v0.2.0
│       │   ├── hmac v0.8.1
│       │   │   ├── crypto-mac v0.8.0
│       │   │   │   ├── generic-array v0.14.4 (*)
│       │   │   │   └── subtle v2.3.0
│       │   │   └── digest v0.9.0 (*)
│       │   ├── md5 v0.7.0
│       │   ├── memchr v2.3.3
│       │   ├── rand v0.7.3 (*)
│       │   ├── sha2 v0.9.1
│       │   │   ├── block-buffer v0.9.0 (*)
│       │   │   ├── cfg-if v0.1.10
│       │   │   ├── cpuid-bool v0.1.2
│       │   │   ├── digest v0.9.0 (*)
│       │   │   └── opaque-debug v0.3.0
│       │   └── stringprep v0.1.2
│       │       ├── unicode-bidi v0.3.4 (*)
│       │       └── unicode-normalization v0.1.13 (*)
│       ├── postgres-types v0.1.2
│       │   ├── bytes v0.5.6
│       │   ├── chrono v0.4.19
│       │   │   ├── libc v0.2.79
│       │   │   ├── num-integer v0.1.43
│       │   │   │   └── num-traits v0.2.12
│       │   │   │       [build-dependencies]
│       │   │   │       └── autocfg v1.0.1
│       │   │   │   [build-dependencies]
│       │   │   │   └── autocfg v1.0.1
│       │   │   ├── num-traits v0.2.12 (*)
│       │   │   └── time v0.1.44
│       │   │       └── libc v0.2.79
│       │   ├── fallible-iterator v0.2.0
│       │   ├── postgres-protocol v0.5.2 (*)
│       │   ├── serde v1.0.116 (*)
│       │   └── serde_json v1.0.58 (*)
│       ├── tokio v0.2.22 (*)
│       └── tokio-util v0.3.1 (*)
├── cfg-if v0.1.10
├── chrono v0.4.19 (*)
├── chrono-tz v0.5.3
│   └── chrono v0.4.19 (*)
│   [build-dependencies]
│   └── parse-zoneinfo v0.3.0
│       └── regex v1.3.9 (*)
├── clickhouse-rs v0.2.0-alpha.5 (https://github.com/suharev7/clickhouse-rs/?branch=async-await#2edd140f)
│   ├── byteorder v1.3.4
│   ├── chrono v0.4.19 (*)
│   ├── chrono-tz v0.5.3 (*)
│   ├── clickhouse-rs-cityhash-sys v0.1.2 (https://github.com/suharev7/clickhouse-rs/?branch=async-await#2edd140f)
│   │   [build-dependencies]
│   │   └── cc v1.0.60
│   ├── combine v4.3.2
│   │   ├── bytes v0.5.6
│   │   ├── memchr v2.3.3
│   │   └── pin-project-lite v0.1.10
│   ├── crossbeam v0.7.3
│   │   ├── cfg-if v0.1.10
│   │   ├── crossbeam-channel v0.4.4
│   │   │   ├── crossbeam-utils v0.7.2
│   │   │   │   ├── cfg-if v0.1.10
│   │   │   │   └── lazy_static v1.4.0
│   │   │   │   [build-dependencies]
│   │   │   │   └── autocfg v1.0.1
│   │   │   └── maybe-uninit v2.0.0
│   │   ├── crossbeam-deque v0.7.3
│   │   │   ├── crossbeam-epoch v0.8.2
│   │   │   │   ├── cfg-if v0.1.10
│   │   │   │   ├── crossbeam-utils v0.7.2 (*)
│   │   │   │   ├── lazy_static v1.4.0
│   │   │   │   ├── maybe-uninit v2.0.0
│   │   │   │   ├── memoffset v0.5.6
│   │   │   │   │   [build-dependencies]
│   │   │   │   │   └── autocfg v1.0.1
│   │   │   │   └── scopeguard v1.1.0
│   │   │   │   [build-dependencies]
│   │   │   │   └── autocfg v1.0.1
│   │   │   ├── crossbeam-utils v0.7.2 (*)
│   │   │   └── maybe-uninit v2.0.0
│   │   ├── crossbeam-epoch v0.8.2 (*)
│   │   ├── crossbeam-queue v0.2.3
│   │   │   ├── cfg-if v0.1.10
│   │   │   ├── crossbeam-utils v0.7.2 (*)
│   │   │   └── maybe-uninit v2.0.0
│   │   └── crossbeam-utils v0.7.2 (*)
│   ├── futures-core v0.3.6
│   ├── futures-sink v0.3.6
│   ├── futures-util v0.3.6 (*)
│   ├── hostname v0.3.1 (*)
│   ├── lazy_static v1.4.0
│   ├── log v0.4.11 (*)
│   ├── lz4 v1.23.2
│   │   ├── libc v0.2.79
│   │   └── lz4-sys v1.9.2
│   │       └── libc v0.2.79
│   │       [build-dependencies]
│   │       └── cc v1.0.60
│   ├── pin-project v0.4.26 (*)
│   ├── thiserror v1.0.20 (*)
│   ├── tokio v0.2.22 (*)
│   ├── url v2.1.1 (*)
│   └── uuid v0.8.1
│       └── rand v0.7.3 (*)
├── clickhouse_api v0.2.1 (company library)
│   ├── actix-rt v1.1.1 (*)
│   ├── actix-web v3.1.0 (*)
│   ├── anyhow v1.0.32
│   ├── chrono v0.4.19 (*)
│   ├── chrono-tz v0.5.3 (*)
│   ├── clickhouse-rs v0.2.0-alpha.5 (https://github.com/suharev7/clickhouse-rs/?branch=async-await#2edd140f) (*)
│   ├── ctrlc v3.1.6
│   │   └── nix v0.17.0
│   │       ├── bitflags v1.2.1
│   │       ├── cfg-if v0.1.10
│   │       ├── libc v0.2.79
│   │       └── void v1.0.2
│   ├── dotenv v0.15.0
│   ├── env_logger v0.7.1
│   │   ├── atty v0.2.14
│   │   │   └── libc v0.2.79
│   │   ├── humantime v1.3.0
│   │   │   └── quick-error v1.2.3
│   │   ├── log v0.4.11 (*)
│   │   ├── regex v1.3.9 (*)
│   │   └── termcolor v1.1.0
│   ├── futures v0.3.6 (*)
│   ├── grpc-metrics v0.1.0 (company library)
│   │   ├── http v0.2.1 (*)
│   │   ├── hyper v0.13.8
│   │   │   ├── bytes v0.5.6
│   │   │   ├── futures-channel v0.3.6 (*)
│   │   │   ├── futures-core v0.3.6
│   │   │   ├── futures-util v0.3.6 (*)
│   │   │   ├── h2 v0.2.6 (*)
│   │   │   ├── http v0.2.1 (*)
│   │   │   ├── http-body v0.3.1
│   │   │   │   ├── bytes v0.5.6
│   │   │   │   └── http v0.2.1 (*)
│   │   │   ├── httparse v1.3.4
│   │   │   ├── httpdate v0.3.2
│   │   │   ├── itoa v0.4.6
│   │   │   ├── pin-project v0.4.26 (*)
│   │   │   ├── socket2 v0.3.15 (*)
│   │   │   ├── tokio v0.2.22 (*)
│   │   │   ├── tower-service v0.3.0
│   │   │   ├── tracing v0.1.21 (*)
│   │   │   └── want v0.3.0
│   │   │       ├── log v0.4.11 (*)
│   │   │       └── try-lock v0.2.3
│   │   ├── lazy_static v1.4.0
│   │   ├── prometheus v0.10.0 (*)
│   │   ├── tonic v0.3.1
│   │   │   ├── async-stream v0.2.1
│   │   │   │   ├── async-stream-impl v0.2.1
│   │   │   │   │   ├── proc-macro2 v1.0.24 (*)
│   │   │   │   │   ├── quote v1.0.7 (*)
│   │   │   │   │   └── syn v1.0.42 (*)
│   │   │   │   └── futures-core v0.3.6
│   │   │   ├── async-trait v0.1.41 (*)
│   │   │   ├── base64 v0.12.3
│   │   │   ├── bytes v0.5.6
│   │   │   ├── futures-core v0.3.6
│   │   │   ├── futures-util v0.3.6 (*)
│   │   │   ├── http v0.2.1 (*)
│   │   │   ├── http-body v0.3.1 (*)
│   │   │   ├── hyper v0.13.8 (*)
│   │   │   ├── percent-encoding v2.1.0
│   │   │   ├── pin-project v0.4.26 (*)
│   │   │   ├── prost v0.6.1
│   │   │   │   ├── bytes v0.5.6
│   │   │   │   └── prost-derive v0.6.1
│   │   │   │       ├── anyhow v1.0.32
│   │   │   │       ├── itertools v0.8.2
│   │   │   │       │   └── either v1.6.1
│   │   │   │       ├── proc-macro2 v1.0.24 (*)
│   │   │   │       ├── quote v1.0.7 (*)
│   │   │   │       └── syn v1.0.42 (*)
│   │   │   ├── prost-derive v0.6.1 (*)
│   │   │   ├── tokio v0.2.22 (*)
│   │   │   ├── tokio-util v0.3.1 (*)
│   │   │   ├── tower v0.3.1
│   │   │   │   ├── futures-core v0.3.6
│   │   │   │   ├── tower-buffer v0.3.0
│   │   │   │   │   ├── futures-core v0.3.6
│   │   │   │   │   ├── pin-project v0.4.26 (*)
│   │   │   │   │   ├── tokio v0.2.22 (*)
│   │   │   │   │   ├── tower-layer v0.3.0
│   │   │   │   │   ├── tower-service v0.3.0
│   │   │   │   │   └── tracing v0.1.21 (*)
│   │   │   │   ├── tower-discover v0.3.0
│   │   │   │   │   ├── futures-core v0.3.6
│   │   │   │   │   ├── pin-project v0.4.26 (*)
│   │   │   │   │   └── tower-service v0.3.0
│   │   │   │   ├── tower-layer v0.3.0
│   │   │   │   ├── tower-limit v0.3.1
│   │   │   │   │   ├── futures-core v0.3.6
│   │   │   │   │   ├── pin-project v0.4.26 (*)
│   │   │   │   │   ├── tokio v0.2.22 (*)
│   │   │   │   │   ├── tower-layer v0.3.0
│   │   │   │   │   ├── tower-load v0.3.0
│   │   │   │   │   │   ├── futures-core v0.3.6
│   │   │   │   │   │   ├── log v0.4.11 (*)
│   │   │   │   │   │   ├── pin-project v0.4.26 (*)
│   │   │   │   │   │   ├── tokio v0.2.22 (*)
│   │   │   │   │   │   ├── tower-discover v0.3.0 (*)
│   │   │   │   │   │   └── tower-service v0.3.0
│   │   │   │   │   └── tower-service v0.3.0
│   │   │   │   ├── tower-load-shed v0.3.0
│   │   │   │   │   ├── futures-core v0.3.6
│   │   │   │   │   ├── pin-project v0.4.26 (*)
│   │   │   │   │   ├── tower-layer v0.3.0
│   │   │   │   │   └── tower-service v0.3.0
│   │   │   │   ├── tower-retry v0.3.0
│   │   │   │   │   ├── futures-core v0.3.6
│   │   │   │   │   ├── pin-project v0.4.26 (*)
│   │   │   │   │   ├── tokio v0.2.22 (*)
│   │   │   │   │   ├── tower-layer v0.3.0
│   │   │   │   │   └── tower-service v0.3.0
│   │   │   │   ├── tower-service v0.3.0
│   │   │   │   ├── tower-timeout v0.3.0
│   │   │   │   │   ├── pin-project v0.4.26 (*)
│   │   │   │   │   ├── tokio v0.2.22 (*)
│   │   │   │   │   ├── tower-layer v0.3.0
│   │   │   │   │   └── tower-service v0.3.0
│   │   │   │   └── tower-util v0.3.1
│   │   │   │       ├── futures-core v0.3.6
│   │   │   │       ├── futures-util v0.3.6 (*)
│   │   │   │       ├── pin-project v0.4.26 (*)
│   │   │   │       └── tower-service v0.3.0
│   │   │   ├── tower-balance v0.3.0
│   │   │   │   ├── futures-core v0.3.6
│   │   │   │   ├── futures-util v0.3.6 (*)
│   │   │   │   ├── indexmap v1.6.0 (*)
│   │   │   │   ├── pin-project v0.4.26 (*)
│   │   │   │   ├── rand v0.7.3 (*)
│   │   │   │   ├── slab v0.4.2
│   │   │   │   ├── tokio v0.2.22 (*)
│   │   │   │   ├── tower-discover v0.3.0 (*)
│   │   │   │   ├── tower-layer v0.3.0
│   │   │   │   ├── tower-load v0.3.0 (*)
│   │   │   │   ├── tower-make v0.3.0
│   │   │   │   │   ├── tokio v0.2.22 (*)
│   │   │   │   │   └── tower-service v0.3.0
│   │   │   │   ├── tower-ready-cache v0.3.1
│   │   │   │   │   ├── futures-core v0.3.6
│   │   │   │   │   ├── futures-util v0.3.6 (*)
│   │   │   │   │   ├── indexmap v1.6.0 (*)
│   │   │   │   │   ├── log v0.4.11 (*)
│   │   │   │   │   ├── tokio v0.2.22 (*)
│   │   │   │   │   └── tower-service v0.3.0
│   │   │   │   ├── tower-service v0.3.0
│   │   │   │   └── tracing v0.1.21 (*)
│   │   │   ├── tower-load v0.3.0 (*)
│   │   │   ├── tower-make v0.3.0 (*)
│   │   │   ├── tower-service v0.3.0
│   │   │   ├── tracing v0.1.21 (*)
│   │   │   └── tracing-futures v0.2.4
│   │   │       ├── pin-project v0.4.26 (*)
│   │   │       └── tracing v0.1.21 (*)
│   │   └── tower v0.3.1 (*)
│   ├── log v0.4.11 (*)
│   ├── prost v0.6.1 (*)
│   ├── structopt v0.3.18
│   │   ├── clap v2.33.3
│   │   │   ├── ansi_term v0.11.0
│   │   │   ├── atty v0.2.14 (*)
│   │   │   ├── bitflags v1.2.1
│   │   │   ├── strsim v0.8.0
│   │   │   ├── textwrap v0.11.0
│   │   │   │   └── unicode-width v0.1.8
│   │   │   ├── unicode-width v0.1.8
│   │   │   └── vec_map v0.8.2
│   │   ├── lazy_static v1.4.0
│   │   └── structopt-derive v0.4.11
│   │       ├── heck v0.3.1 (*)
│   │       ├── proc-macro-error v1.0.4
│   │       │   ├── proc-macro-error-attr v1.0.4
│   │       │   │   ├── proc-macro2 v1.0.24 (*)
│   │       │   │   └── quote v1.0.7 (*)
│   │       │   │   [build-dependencies]
│   │       │   │   └── version_check v0.9.2
│   │       │   ├── proc-macro2 v1.0.24 (*)
│   │       │   ├── quote v1.0.7 (*)
│   │       │   └── syn v1.0.42 (*)
│   │       │   [build-dependencies]
│   │       │   └── version_check v0.9.2
│   │       ├── proc-macro2 v1.0.24 (*)
│   │       ├── quote v1.0.7 (*)
│   │       └── syn v1.0.42 (*)
│   ├── tokio v0.2.22 (*)
│   ├── tonic v0.3.1 (*)
│   └── triggered v0.1.1
│   [build-dependencies]
│   └── tonic-build v0.3.1
│       ├── proc-macro2 v1.0.24 (*)
│       ├── prost-build v0.6.1
│       │   ├── bytes v0.5.6
│       │   ├── heck v0.3.1 (*)
│       │   ├── itertools v0.8.2 (*)
│       │   ├── log v0.4.11 (*)
│       │   ├── multimap v0.8.2
│       │   ├── petgraph v0.5.1
│       │   │   ├── fixedbitset v0.2.0
│       │   │   └── indexmap v1.6.0 (*)
│       │   ├── prost v0.6.1 (*)
│       │   ├── prost-types v0.6.1
│       │   │   ├── bytes v0.5.6
│       │   │   └── prost v0.6.1 (*)
│       │   └── tempfile v3.1.0
│       │       ├── cfg-if v0.1.10
│       │       ├── libc v0.2.79
│       │       ├── rand v0.7.3 (*)
│       │       └── remove_dir_all v0.5.3
│       │   [build-dependencies]
│       │   └── which v3.1.1
│       │       └── libc v0.2.79
│       ├── quote v1.0.7 (*)
│       └── syn v1.0.42 (*)
├── dotenv v0.15.0
├── env_logger v0.7.1 (*)
├── futures v0.3.6 (*)
├── grpc-metrics v0.1.0 (company library) (*)
├── log v0.4.11 (*)
├── maplit v1.0.2
├── postgres-types v0.1.2 (*)
├── prometheus v0.10.0 (*)
├── prost v0.6.1 (*)
├── prost-types v0.6.1 (*)
├── retain_mut v0.1.1
├── ruma-serde v0.2.3
│   ├── form_urlencoded v1.0.0
│   │   ├── matches v0.1.8
│   │   └── percent-encoding v2.1.0
│   ├── itoa v0.4.6
│   ├── js_int v0.1.9
│   │   └── serde v1.0.116 (*)
│   ├── serde v1.0.116 (*)
│   └── serde_json v1.0.58 (*)
├── serde v1.0.116 (*)
├── serde_json v1.0.58 (*)
├── structopt v0.3.18 (*)
├── time v0.2.22 (*)
├── tokio v0.2.22 (*)
├── tokio-postgres v0.5.5 (*)
├── tonic v0.3.1 (*)
└── uuid v0.8.1 (*)
[build-dependencies]
└── tonic-build v0.3.1 (*)

@cuviper
Copy link
Member

cuviper commented Oct 6, 2020

There is C++ in clickhouse-rs-cityhash-sys, but that's not used in a proc-macro like #76980.
https://github.com/suharev7/clickhouse-rs/tree/async-await/clickhouse-rs-cityhash-sys/src/cc

A debugger call stack for the hung process would still be helpful too. You replied before that this freezes in cargo build, not cargo run, but that's fine. If a rustc process is hung, that's where we want a debugger.

But it's not completely stuck, just takes much longer than you expect? That suggests some scalability problem in rustc/llvm.

@camelid camelid added I-hang Issue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc. and removed I-hang Issue: The compiler never terminates, due to infinite loops, deadlock, livelock, etc. labels Oct 7, 2020
@camelid
Copy link
Member

camelid commented Oct 7, 2020

@octave99 @invis87 Could you try the pre-release which may have a fix for this? Instructions at https://blog.rust-lang.org/inside-rust/2020/10/07/1.47.0-prerelease-2.html

@LeSeulArtichaut LeSeulArtichaut removed the I-prioritize Issue: Indicates that prioritization has been requested for this issue. label Oct 19, 2020
@LeSeulArtichaut
Copy link
Contributor

@octave99 @invis87 Is this still an issue with Rust 1.47.0?

@pronvis
Copy link

pronvis commented Oct 19, 2020

I don't have it anymore

@Mark-Simulacrum
Copy link
Member

Without confirmation from @octave99 I'm not inclined to close just yet -- I suspect the underlying problems may (at least plausibly) be different.

@octave99
Copy link
Author

I can notice the issue even with the latest version 1.47.0 but everything works seamlessly with 1.45.2 and also with 1.48.0-beta.8, so hopefully 1.48.0 release should fix this issue. Just in case it helps in someway, below are the crates in use:

[dependencies]
jsonwebtoken = "7.1"

[dependencies.log]
version = "0.4"

[dependencies.env_logger]
version = "0.8"

[dependencies.fern]
version = "0.6"

[dependencies.rust-argon2]
version = "0.8"

[dependencies.serde]
version = "1.0"
features = ["derive"]

[dependencies.serde_json]
version = "1.0"

[dependencies.chrono]
version = "0.4"
features = ["serde"]

[dependencies.actix-web]
version = "3.2"

[dependencies.actix-cors]
version = "0.5"

[dependencies.actix]
version = "0.10"

[dependencies.actix-web-actors]
version = "3.0"

[dependencies.bb8]
version = "0.4"

[dependencies.bb8-postgres]
version = "0.4"
features = ["with-chrono-0_4", "with-uuid-0_8", "with-serde_json-1"]

[dependencies.futures]
version = "0.3"

[dependencies.tokio]
version = "0.2"
features= ["fs"]

[dependencies.lazy_static]
version = "1.4"

[dependencies.uuid]
version = "0.8"
features = ["serde", "v4"]

[dependencies.regex]
version = "1"

There are few additional and small internal crates which I am unable to share.

@octave99
Copy link
Author

I can confirm that 1.48.0 release solved this issue for me. Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: This is a bug. E-needs-bisection Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example I-compiletime Issue: Problems and improvements with respect to compile times. regression-from-stable-to-stable Performance or correctness regression from one stable version to another. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

9 participants