Skip to content

feat: log more information on error #535

feat: log more information on error

feat: log more information on error #535

Triggered via push September 14, 2023 16:03
Status Success
Total duration 26s
Artifacts
This run and associated checks have been archived and are scheduled for deletion. Learn more about checks retention

security.yaml

on: push
security-audit
17s
security-audit
Fit to window
Zoom out
Zoom in

Annotations

44 warnings
security-audit
The following actions uses node12 which is deprecated and will be forced to run on node16: actions-rs/audit-check@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
use of `unwrap_or_else` to construct default value: volo-grpc/src/status.rs#L454
warning: use of `unwrap_or_else` to construct default value --> volo-grpc/src/status.rs:454:18 | 454 | .unwrap_or_else(Bytes::new); | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default = note: `#[warn(clippy::unwrap_or_default)]` on by default
this argument is a mutable reference, but not used mutably: volo-thrift/src/codec/default/ttheader.rs#L502
warning: this argument is a mutable reference, but not used mutably --> volo-thrift/src/codec/default/ttheader.rs:502:50 | 502 | pub(crate) fn encode_size<Cx: ThriftContext>(cx: &mut Cx) -> Result<usize, EncodeError> { | ^^^^^^^ help: consider changing to: `&Cx` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_ref_mut
this argument is a mutable reference, but not used mutably: volo-thrift/src/codec/default/ttheader.rs#L274
warning: this argument is a mutable reference, but not used mutably --> volo-thrift/src/codec/default/ttheader.rs:274:9 | 274 | cx: &mut Cx, | ^^^^^^^ help: consider changing to: `&Cx` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_ref_mut = note: `#[warn(clippy::needless_pass_by_ref_mut)]` on by default
try not to call a closure in the expression where it is declared: volo-thrift/src/codec/default/mod.rs#L136
warning: try not to call a closure in the expression where it is declared --> volo-thrift/src/codec/default/mod.rs:136:28 | 136 | let write_result = (|| async { | ____________________________^ 137 | | self.linked_bytes.reset(); 138 | | // then we reserve the size of the message in the linked bytes 139 | | self.linked_bytes.reserve(malloc_size); ... | 158 | | Ok::<(), crate::Error>(()) 159 | | })() | |____________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call = note: `#[warn(clippy::redundant_closure_call)]` on by default help: try doing something like | 136 ~ let write_result = async async { 137 + self.linked_bytes.reset(); 138 + // then we reserve the size of the message in the linked bytes 139 + self.linked_bytes.reserve(malloc_size); 140 + // after that, we encode the message into the linked bytes 141 + self.encoder 142 + .encode(cx, &mut self.linked_bytes, msg) 143 + .map_err(|e| { 144 + // record the error time 145 + cx.stats_mut().record_encode_end_at(); 146 + e 147 + })?; 148 + 149 + cx.stats_mut().record_encode_end_at(); 150 + cx.stats_mut().record_write_start_at(); // encode end is also write start 151 + 152 + self.linked_bytes 153 + .write_all_vectored(&mut self.writer) 154 + .await 155 + .map_err(TransportError::from)?; 156 + self.writer.flush().await.map_err(TransportError::from)?; 157 + 158 + Ok::<(), crate::Error>(()) 159 + } |
using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)`: volo-thrift/src/client/mod.rs#L610
warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` --> volo-thrift/src/client/mod.rs:610:13 | 610 | / cache 611 | | .pop() 612 | | .and_then(|mut cx| { 613 | | // The generated code only push the cx to the cache, we need to reset ... | 642 | | Some(cx) 643 | | }) | |__________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map = note: `#[warn(clippy::bind_instead_of_map)]` on by default help: try | 612 ~ .map(|mut cx| { 613 | // The generated code only push the cx to the cache, we need to reset ... 641 | cx.rpc_info_mut().method = Some(FastStr::from_static_str(method)); 642 ~ cx |
use of `or_insert_with` to construct default value: volo-thrift/src/transport/pool/mod.rs#L540
warning: use of `or_insert_with` to construct default value --> volo-thrift/src/transport/pool/mod.rs:540:45 | 540 | let idle = self.idle.entry(key).or_insert_with(Vec::new); | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default = note: `#[warn(clippy::unwrap_or_default)]` on by default
this function has too many arguments (8/7): volo-thrift/src/transport/pingpong/server.rs#L21
warning: this function has too many arguments (8/7) --> volo-thrift/src/transport/pingpong/server.rs:21:1 | 21 | / pub async fn serve<Svc, Req, Resp, E, D, SP>( 22 | | mut encoder: E, 23 | | mut decoder: D, 24 | | notified: Notified<'_>, ... | 29 | | span_provider: SP, 30 | | ) where | |__^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments = note: `#[warn(clippy::too_many_arguments)]` on by default
unneeded `return` statement: volo/src/hotrestart/mod.rs#L415
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:415:17 | 415 | return Err(e); | ^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 415 - return Err(e); 415 + Err(e) |
unneeded `return` statement: volo/src/hotrestart/mod.rs#L409
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:409:17 | 409 | / return Err(io::Error::new( 410 | | io::ErrorKind::InvalidData, 411 | | "Not PassFdResponse", 412 | | )); | |__________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 409 ~ Err(io::Error::new( 410 + io::ErrorKind::InvalidData, 411 + "Not PassFdResponse", 412 ~ )) |
unneeded `return` statement: volo/src/hotrestart/mod.rs#L406
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:406:17 | 406 | return Ok(Some(fd)); | ^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 406 - return Ok(Some(fd)); 406 + Ok(Some(fd)) |
useless conversion to the same type: `std::io::Error`: volo/src/hotrestart/mod.rs#L279
warning: useless conversion to the same type: `std::io::Error` --> volo/src/hotrestart/mod.rs:279:28 | 279 | return Err(e.into()); | ^^^^^^^^ help: consider removing `.into()`: `e` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion = note: `#[warn(clippy::useless_conversion)]` on by default
unneeded `return` statement: volo/src/hotrestart/mod.rs#L279
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:279:17 | 279 | return Err(e.into()); | ^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 279 - return Err(e.into()); 279 + Err(e.into()) |
unneeded `return` statement: volo/src/hotrestart/mod.rs#L274
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:274:25 | 274 | return Err(io::Error::new(io::ErrorKind::InvalidData, e.message)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 274 - return Err(io::Error::new(io::ErrorKind::InvalidData, e.message)); 274 + Err(io::Error::new(io::ErrorKind::InvalidData, e.message)) |
unneeded `return` statement: volo/src/hotrestart/mod.rs#L270
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:270:29 | 270 | ... return Ok(HotRestartMessage::TerminateParentRequest); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 270 - return Ok(HotRestartMessage::TerminateParentRequest); 270 + Ok(HotRestartMessage::TerminateParentRequest) |
unneeded `return` statement: volo/src/hotrestart/mod.rs#L263
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:263:33 | 263 | / ... return Err(io::Error::new( 264 | | ... io::ErrorKind::InvalidData, 265 | | ... "PassFdResponse without fd", 266 | | ... )); | |________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 263 ~ Err(io::Error::new( 264 + io::ErrorKind::InvalidData, 265 + "PassFdResponse without fd", 266 ~ )) |
unneeded `return` statement: volo/src/hotrestart/mod.rs#L261
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:261:33 | 261 | ... return Ok(HotRestartMessage::PassFdResponse(fd)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 261 - return Ok(HotRestartMessage::PassFdResponse(fd)); 261 + Ok(HotRestartMessage::PassFdResponse(fd)) |
unneeded `return` statement: volo/src/hotrestart/mod.rs#L250
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:250:29 | 250 | ... return Ok(HotRestartMessage::PassFdRequest(addr)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return = note: `#[warn(clippy::needless_return)]` on by default help: remove `return` | 250 - return Ok(HotRestartMessage::PassFdRequest(addr)); 250 + Ok(HotRestartMessage::PassFdRequest(addr)) |
you should consider adding a `Default` implementation for `HotRestart`: volo/src/hotrestart/mod.rs#L107
warning: you should consider adding a `Default` implementation for `HotRestart` --> volo/src/hotrestart/mod.rs:107:5 | 107 | / pub fn new() -> Self { 108 | | HotRestart { 109 | | state: Arc::new(Mutex::new(HotRestartState::Uninitalized)), 110 | | listener_fds: Arc::new(StdMutex::new(HashMap::new())), ... | 116 | | } 117 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default = note: `#[warn(clippy::new_without_default)]` on by default help: try adding this | 106 + impl Default for HotRestart { 107 + fn default() -> Self { 108 + Self::new() 109 + } 110 + } |
the borrowed expression implements the required traits: volo/src/net/incoming.rs#L297
warning: the borrowed expression implements the required traits --> volo/src/net/incoming.rs:297:34 | 297 | std::fs::remove_file(&path)?; | ^^^^^ help: change this to: `path` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow = note: `#[warn(clippy::needless_borrow)]` on by default
casting to the same type is unnecessary (`i32` -> `i32`): volo/src/net/incoming.rs#L238
warning: casting to the same type is unnecessary (`i32` -> `i32`) --> volo/src/net/incoming.rs:238:13 | 238 | libc::SOMAXCONN as i32 | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `libc::SOMAXCONN` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
casting to the same type is unnecessary (`i32` -> `i32`): volo/src/net/incoming.rs#L228
warning: casting to the same type is unnecessary (`i32` -> `i32`) --> volo/src/net/incoming.rs:228:20 | 228 | return libc::SOMAXCONN as i32; | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `libc::SOMAXCONN` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
casting to the same type is unnecessary (`i32` -> `i32`): volo/src/net/incoming.rs#L221
warning: casting to the same type is unnecessary (`i32` -> `i32`) --> volo/src/net/incoming.rs:221:30 | 221 | Err(_) => return libc::SOMAXCONN as i32, | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `libc::SOMAXCONN` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast = note: `#[warn(clippy::unnecessary_cast)]` on by default
manual `RangeInclusive::contains` implementation: volo/src/net/incoming.rs#L157
warning: manual `RangeInclusive::contains` implementation --> volo/src/net/incoming.rs:157:16 | 157 | if b'0' <= c && c <= b'9' { | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `(b'0'..=b'9').contains(&c)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains = note: `#[warn(clippy::manual_range_contains)]` on by default
constants have by default a `'static` lifetime: volo/src/hotrestart/mod.rs#L33
warning: constants have by default a `'static` lifetime --> volo/src/hotrestart/mod.rs:33:32 | 33 | const HOT_RESTART_CHILD_ADDR: &'static str = "volo_hot_restart_child.sock"; | -^^^^^^^---- help: consider removing `'static`: `&str` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes
constants have by default a `'static` lifetime: volo/src/hotrestart/mod.rs#L32
warning: constants have by default a `'static` lifetime --> volo/src/hotrestart/mod.rs:32:33 | 32 | const HOT_RESTART_PARENT_ADDR: &'static str = "volo_hot_restart_parent.sock"; | -^^^^^^^---- help: consider removing `'static`: `&str` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default
unneeded `return` statement: volo/src/hotrestart/mod.rs#L415
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:415:17 | 415 | return Err(e); | ^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 415 - return Err(e); 415 + Err(e) |
unneeded `return` statement: volo/src/hotrestart/mod.rs#L409
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:409:17 | 409 | / return Err(io::Error::new( 410 | | io::ErrorKind::InvalidData, 411 | | "Not PassFdResponse", 412 | | )); | |__________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 409 ~ Err(io::Error::new( 410 + io::ErrorKind::InvalidData, 411 + "Not PassFdResponse", 412 ~ )) |
unneeded `return` statement: volo/src/hotrestart/mod.rs#L406
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:406:17 | 406 | return Ok(Some(fd)); | ^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 406 - return Ok(Some(fd)); 406 + Ok(Some(fd)) |
useless conversion to the same type: `std::io::Error`: volo/src/hotrestart/mod.rs#L279
warning: useless conversion to the same type: `std::io::Error` --> volo/src/hotrestart/mod.rs:279:28 | 279 | return Err(e.into()); | ^^^^^^^^ help: consider removing `.into()`: `e` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion = note: `#[warn(clippy::useless_conversion)]` on by default
unneeded `return` statement: volo/src/hotrestart/mod.rs#L279
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:279:17 | 279 | return Err(e.into()); | ^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 279 - return Err(e.into()); 279 + Err(e.into()) |
unneeded `return` statement: volo/src/hotrestart/mod.rs#L274
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:274:25 | 274 | return Err(io::Error::new(io::ErrorKind::InvalidData, e.message)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 274 - return Err(io::Error::new(io::ErrorKind::InvalidData, e.message)); 274 + Err(io::Error::new(io::ErrorKind::InvalidData, e.message)) |
unneeded `return` statement: volo/src/hotrestart/mod.rs#L270
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:270:29 | 270 | ... return Ok(HotRestartMessage::TerminateParentRequest); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 270 - return Ok(HotRestartMessage::TerminateParentRequest); 270 + Ok(HotRestartMessage::TerminateParentRequest) |
unneeded `return` statement: volo/src/hotrestart/mod.rs#L263
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:263:33 | 263 | / ... return Err(io::Error::new( 264 | | ... io::ErrorKind::InvalidData, 265 | | ... "PassFdResponse without fd", 266 | | ... )); | |________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 263 ~ Err(io::Error::new( 264 + io::ErrorKind::InvalidData, 265 + "PassFdResponse without fd", 266 ~ )) |
unneeded `return` statement: volo/src/hotrestart/mod.rs#L261
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:261:33 | 261 | ... return Ok(HotRestartMessage::PassFdResponse(fd)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 261 - return Ok(HotRestartMessage::PassFdResponse(fd)); 261 + Ok(HotRestartMessage::PassFdResponse(fd)) |
unneeded `return` statement: volo/src/hotrestart/mod.rs#L250
warning: unneeded `return` statement --> volo/src/hotrestart/mod.rs:250:29 | 250 | ... return Ok(HotRestartMessage::PassFdRequest(addr)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return = note: `#[warn(clippy::needless_return)]` on by default help: remove `return` | 250 - return Ok(HotRestartMessage::PassFdRequest(addr)); 250 + Ok(HotRestartMessage::PassFdRequest(addr)) |
you should consider adding a `Default` implementation for `HotRestart`: volo/src/hotrestart/mod.rs#L107
warning: you should consider adding a `Default` implementation for `HotRestart` --> volo/src/hotrestart/mod.rs:107:5 | 107 | / pub fn new() -> Self { 108 | | HotRestart { 109 | | state: Arc::new(Mutex::new(HotRestartState::Uninitalized)), 110 | | listener_fds: Arc::new(StdMutex::new(HashMap::new())), ... | 116 | | } 117 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default = note: `#[warn(clippy::new_without_default)]` on by default help: try adding this | 106 + impl Default for HotRestart { 107 + fn default() -> Self { 108 + Self::new() 109 + } 110 + } |
the borrowed expression implements the required traits: volo/src/net/incoming.rs#L297
warning: the borrowed expression implements the required traits --> volo/src/net/incoming.rs:297:34 | 297 | std::fs::remove_file(&path)?; | ^^^^^ help: change this to: `path` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow = note: `#[warn(clippy::needless_borrow)]` on by default
casting to the same type is unnecessary (`i32` -> `i32`): volo/src/net/incoming.rs#L238
warning: casting to the same type is unnecessary (`i32` -> `i32`) --> volo/src/net/incoming.rs:238:13 | 238 | libc::SOMAXCONN as i32 | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `libc::SOMAXCONN` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
casting to the same type is unnecessary (`i32` -> `i32`): volo/src/net/incoming.rs#L228
warning: casting to the same type is unnecessary (`i32` -> `i32`) --> volo/src/net/incoming.rs:228:20 | 228 | return libc::SOMAXCONN as i32; | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `libc::SOMAXCONN` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
casting to the same type is unnecessary (`i32` -> `i32`): volo/src/net/incoming.rs#L221
warning: casting to the same type is unnecessary (`i32` -> `i32`) --> volo/src/net/incoming.rs:221:30 | 221 | Err(_) => return libc::SOMAXCONN as i32, | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `libc::SOMAXCONN` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast = note: `#[warn(clippy::unnecessary_cast)]` on by default
manual `RangeInclusive::contains` implementation: volo/src/net/incoming.rs#L157
warning: manual `RangeInclusive::contains` implementation --> volo/src/net/incoming.rs:157:16 | 157 | if b'0' <= c && c <= b'9' { | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `(b'0'..=b'9').contains(&c)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains = note: `#[warn(clippy::manual_range_contains)]` on by default
constants have by default a `'static` lifetime: volo/src/hotrestart/mod.rs#L33
warning: constants have by default a `'static` lifetime --> volo/src/hotrestart/mod.rs:33:32 | 33 | const HOT_RESTART_CHILD_ADDR: &'static str = "volo_hot_restart_child.sock"; | -^^^^^^^---- help: consider removing `'static`: `&str` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes
constants have by default a `'static` lifetime: volo/src/hotrestart/mod.rs#L32
warning: constants have by default a `'static` lifetime --> volo/src/hotrestart/mod.rs:32:33 | 32 | const HOT_RESTART_PARENT_ADDR: &'static str = "volo_hot_restart_parent.sock"; | -^^^^^^^---- help: consider removing `'static`: `&str` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default