fix(io-core,signer): replace unwrap() with proper error handling (#3150)

* fix(io-core,signer): replace unwrap() with proper error handling

## io-core (issue #653 item 1)
- pool.rs: replace 8 .lock().unwrap() with poisoned recovery
- pool.rs: replace semaphore acquire unwrap with graceful fallback
- deadlock_detector.rs: replace 5 .lock().unwrap() with match/ok

## signer (issue #653 item 1)
- Add SignV2Error enum, try_pre_sign_v2, try_sign_v2
- Replace 14 unwrap() in v2 signing with ? propagation
- Add try_streaming_sign_v4, replace 5 expect("err") with descriptive errors
- get_host_addr returns Result instead of panicking

All backward-compat wrappers preserved. 95 io-core + 18 signer tests pass.

* fix: address signer and pool review comments

* test: update signer v2 string-to-sign test

* fix: address signer and pool review followups

* fix: tighten signer host and pool fallback
This commit is contained in:
安正超
2026-06-01 07:40:20 +08:00
committed by GitHub
parent 9ce9ec22d1
commit bd571a575f
6 changed files with 421 additions and 73 deletions
+4
View File
@@ -20,8 +20,12 @@ pub mod request_signature_v4;
pub mod utils;
pub use request_signature_streaming::streaming_sign_v4;
pub use request_signature_streaming::try_streaming_sign_v4;
pub use request_signature_v2::SignV2Error;
pub use request_signature_v2::pre_sign_v2;
pub use request_signature_v2::sign_v2;
pub use request_signature_v2::try_pre_sign_v2;
pub use request_signature_v2::try_sign_v2;
pub use request_signature_v4::SignV4Error;
pub use request_signature_v4::pre_sign_v4;
pub use request_signature_v4::sign_v4;