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

Panic while building in tonic-build/src/service.rs:219 #25

Closed
rlabrecque opened this issue Oct 2, 2019 · 3 comments · Fixed by #26
Closed

Panic while building in tonic-build/src/service.rs:219 #25

rlabrecque opened this issue Oct 2, 2019 · 3 comments · Fixed by #26

Comments

@rlabrecque
Copy link

rlabrecque commented Oct 2, 2019

Version

git master
2734d3a

Platform

Linux RILEY-LT 4.19.43-microsoft-standard #1 SMP Mon May 20 19:35:22 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Crates

tonic-build

Description

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error("expected identifier")', src/libcore/result.rs:1165:5
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/libunwind.rs:88
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:76
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:60
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1030
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1412
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:64
   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:49
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:196
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:210
  10: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:477
  11: std::panicking::continue_panic_fmt
             at src/libstd/panicking.rs:380
  12: rust_begin_unwind
             at src/libstd/panicking.rs:307
  13: core::panicking::panic_fmt
             at src/libcore/panicking.rs:85
  14: core::result::unwrap_failed
             at src/libcore/result.rs:1165
  15: core::result::Result<T,E>::unwrap
             at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/libcore/result.rs:933
  16: tonic_build::service::generate_unary
             at /home/riley/.cargo/git/checkouts/tonic-54a04bc36763b24d/8f80d0f/tonic-build/src/service.rs:219
  17: tonic_build::service::generate_methods
             at /home/riley/.cargo/git/checkouts/tonic-54a04bc36763b24d/8f80d0f/tonic-build/src/service.rs:186
  18: tonic_build::service::generate
             at /home/riley/.cargo/git/checkouts/tonic-54a04bc36763b24d/8f80d0f/tonic-build/src/service.rs:8
  19: <tonic_build::ServiceGenerator as prost_build::ServiceGenerator>::generate
             at /home/riley/.cargo/git/checkouts/tonic-54a04bc36763b24d/8f80d0f/tonic-build/src/lib.rs:176
  20: prost_build::code_generator::CodeGenerator::push_service::{{closure}}
             at /home/riley/.cargo/registry/src/github.com-1ecc6299db9ec823/prost-build-0.5.0/src/code_generator.rs:685
  21: core::option::Option<T>::map
             at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/libcore/option.rs:447
  22: prost_build::code_generator::CodeGenerator::push_service
             at /home/riley/.cargo/registry/src/github.com-1ecc6299db9ec823/prost-build-0.5.0/src/code_generator.rs:682
  23: prost_build::code_generator::CodeGenerator::generate
             at /home/riley/.cargo/registry/src/github.com-1ecc6299db9ec823/prost-build-0.5.0/src/code_generator.rs:103
  24: prost_build::Config::generate
             at /home/riley/.cargo/registry/src/github.com-1ecc6299db9ec823/prost-build-0.5.0/src/lib.rs:566
  25: prost_build::Config::compile_protos
             at /home/riley/.cargo/registry/src/github.com-1ecc6299db9ec823/prost-build-0.5.0/src/lib.rs:543
  26: tonic_build::Builder::compile
             at /home/riley/.cargo/git/checkouts/tonic-54a04bc36763b24d/8f80d0f/tonic-build/src/lib.rs:98
  27: tonic_build::compile_protos
             at /home/riley/.cargo/git/checkouts/tonic-54a04bc36763b24d/8f80d0f/tonic-build/src/lib.rs:130
  28: build_script_build::main
             at rlbi_proto/build.rs:2
  29: std::rt::lang_start::{{closure}}
             at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/libstd/rt.rs:64
  30: std::rt::lang_start_internal::{{closure}}
             at src/libstd/rt.rs:49
  31: std::panicking::try::do_call
             at src/libstd/panicking.rs:292
  32: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:80
  33: std::panicking::try
             at src/libstd/panicking.rs:271
  34: std::panic::catch_unwind
             at src/libstd/panic.rs:394
  35: std::rt::lang_start_internal
             at src/libstd/rt.rs:48
  36: std::rt::lang_start
             at /rustc/5752b6348ee6971573b278c315a02193c847ee32/src/libstd/rt.rs:64
  37: main
  38: __libc_start_main
  39: _start
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

admin.proto:

syntax = "proto3";

package rlbi.admin.v1;

import "google/protobuf/empty.proto";

option java_package = "rlbi.admin.v1";
option java_outer_classname = "AdminProto";
option optimize_for = SPEED;

service Admin {
  rpc AddApplication(AddApplicationRequest) returns (google.protobuf.Empty);

  rpc RenameApplication(RenameApplicationRequest) returns (google.protobuf.Empty);
}

message AddApplicationRequest {
  string name = 1;
}

message RenameApplicationRequest {
    string old_name = 1;
    string new_name = 2;
  }

build.rs:

fn main() {
    tonic_build::compile_protos("proto/rlbi/admin/v1/admin.proto").unwrap();
}

Cargo.toml:

[package]
name = "rlbi_proto"
version = "0.1.0"
authors = ["Riley Labrecque"]
edition = "2018"

[dependencies]
tonic               = { git = "https://github.com/hyperium/tonic", features = ["rustls"] }
prost               = "0.5"
bytes               = "0.4"

[build-dependencies]
tonic-build = { git = "https://github.com/hyperium/tonic" }

Note: Compiling some other protos works fine, so it's something about mine, but I haven't quite been able to figure it out yet. Maybe the import or usage of the common types?

@rlabrecque rlabrecque changed the title Panic in tonic-build/src/service.rs:219 Panic while building in tonic-build/src/service.rs:219 Oct 2, 2019
@LucioFranco
Copy link
Member

LucioFranco commented Oct 2, 2019

@rlabrecque Thanks for the report! I see this issue comes from the codegen trying to find the "()" type within the proto path which is super in this case. super::() isn't valid rust so it bails.

@LucioFranco
Copy link
Member

#26 should fix this, it only supports empty for now but I want to find a better strategy for well known types.

@rlabrecque
Copy link
Author

Looks like this is fixed completely in #49 👍

brentalanmiller pushed a commit to brentalanmiller/tonic that referenced this issue Oct 6, 2023
Shrink down the dependency on tokio
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants