Skip to content

Commit

Permalink
Fix complie error
Browse files Browse the repository at this point in the history
1. update ttrpc version
2. proto3 syntax  "To define 'optional' fields in Proto3, simply remove the 'optional' label, as fields are 'optional' by default"
3. compile fail because "required for the cast from `Arc<std::boxed::Box<<T as asynchronous::Shim>::T>>` to `Arc<(dyn containerd_shim_protos::shim_async::Task + std::marker::Send + Sync + 'static)>`"

Signed-off-by: jokemanfire <hu.dingyang@zte.com.cn>
  • Loading branch information
jokemanfire committed Jan 20, 2025
1 parent 1f1e38d commit c4577a7
Showing 6 changed files with 12 additions and 9 deletions.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion crates/shim-protos/Cargo.toml
Original file line number Diff line number Diff line change
@@ -52,7 +52,7 @@ async-trait = { workspace = true, optional = true }
# protobuf 3.5 introduces a breaking change: https://github.com/containerd/rust-extensions/issues/295
# pinning to <3.5.0 until we can update the generated code
protobuf = ">= 3.0, <3.5.0"
ttrpc = "0.8.2"
ttrpc = "0.8.3"

[build-dependencies]
ttrpc-codegen = "0.4.2"
5 changes: 3 additions & 2 deletions crates/shim/src/asynchronous/mod.rs
Original file line number Diff line number Diff line change
@@ -177,8 +177,9 @@ where
}

let publisher = RemotePublisher::new(&ttrpc_address).await?;
let task = shim.create_task_service(publisher).await;
let task_service = create_task(Arc::new(Box::new(task)));
let task = Box::new(shim.create_task_service(publisher).await)
as Box<dyn containerd_shim_protos::shim_async::Task + Send + Sync>;
let task_service = create_task(Arc::from(task));
let mut server = Server::new().register_service(task_service);
server = server.add_listener(SOCKET_FD)?;
server = server.set_domain_unix();
5 changes: 3 additions & 2 deletions crates/shim/src/synchronous/mod.rs
Original file line number Diff line number Diff line change
@@ -265,8 +265,9 @@ where
}

let publisher = publisher::RemotePublisher::new(&ttrpc_address)?;
let task = shim.create_task_service(publisher);
let task_service = create_task(Arc::new(Box::new(task)));
let task = Box::new(shim.create_task_service(publisher))
as Box<dyn containerd_shim_protos::Task + Send + Sync + 'static>;
let task_service = create_task(Arc::from(task));
let mut server = create_server(flags)?;
server = server.register_service(task_service);
server.start()?;
3 changes: 2 additions & 1 deletion crates/shim/src/synchronous/publisher.rs
Original file line number Diff line number Diff line change
@@ -188,7 +188,8 @@ mod tests {
use std::os::unix::{io::AsRawFd, net::UnixListener};
let listener = UnixListener::bind(server_address).unwrap();
listener.set_nonblocking(true).unwrap();
let service = client::create_events(Arc::new(Box::new(FakeServer {})));
let task = Box::new(FakeServer {}) as Box<dyn Events + Send + Sync>;
let service = client::create_events(task.into());
let server = Server::new()
.add_listener(listener.as_raw_fd())
.unwrap()

0 comments on commit c4577a7

Please sign in to comment.