tree 537b5f3614edd700a90149081f56efd1c07ed3ac
parent ed3995538d0c6bbd1fb10f199dfdd0d7ebd4ca39
author RickyMa <rickyma@tencent.com> 1712928878 +0800
committer GitHub <noreply@github.com> 1712928878 +0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJmGThuCRC1aQ7uu5UhlAAAUaMQADmcFMH+0TGBcc1JVMfsR/UA
 l24TjAagwvRki//pbslzTmwUGaJonCgkFy6/iMKrcdphFLVtJYA5CoJDAItHqTx5
 3juNHMPeodrAOBke8DFVO6j+AsFgAeyb+U77IDKIX6jdNL0FRAGGBZE4o34w1Ook
 klZzkKk964yqezGJ5Rccu8/0AeZV/BCYwx2g0gLJxVnNdtsD2u8I5GoqqK6p/kUU
 u89VD/Imkctyoht3mEJ6YpYV6tpDFfGjTkBMMVhsx9DTadvFiutmc0AclgkOJC3w
 1V6kxnYbpW2OSMaV4XS/GdxUPHg63KbrUGt7Q4zeuCLQBej97g9pe8ROu5wcccBp
 wEEjvIbyZzEbBhyFNHQURW02zZKrSymWj7sCv7xWZzH9PHD/yx8kV3yYqmCcwpQG
 iN5JiXprxCwyIhG+s4KUU3hUHKEsU55LRotVf2vQMSTUsJQBzh1Ei4RgQO4z0+Ed
 YKCF7wd0DwgtQt2H73tJDT268gxfnFov5u+jYWlVYHUWhEXc9KToh1Ra5DPCQ8TJ
 1epLiRgOHGh251JDSoPcXOFEFHJnkfnnll4CeDUDYA+VCQH17/29/eE9u5UOdhM5
 JoOxYXgkQutxsuFdHyGZ7P7N2nB/Pj/PzCG4D5UerDSwCVcYOhNsEEh3cPSd6OrW
 YwVMr3VbWZv9P7lx0EAf
 =mM4A
 -----END PGP SIGNATURE-----
 

[#1596][FOLLOWUP] fix(netty): Send failed responses only when the channel is writable (#1641)

### What changes were proposed in this pull request?

1. Send failed responses only when the channel is writable.
2. Print debug logs when the data is successfully sent, reducing log output.
3. Reduce the duplicated error log.

### Why are the changes needed?

A follow-up PR for: https://github.com/apache/incubator-uniffle/pull/1605.

### Does this PR introduce _any_ user-facing change?

No.

### How was this patch tested?

Existing UTs.