icexin opened a new issue, #3109:
URL: https://github.com/apache/brpc/issues/3109

   **Describe the bug**
   When using a GRPC client to call a brpc server with redis protocol enabled, 
the client will failed with `code = Unavailable desc = connection closed before 
server preface received`.
   
   Introduced by #3024 , the Redis protocol check is too loose, and it parses 
the GRPC protocol as the Redis protocol.
   
   **To Reproduce**
   
   This is the code to reproduce the the issue.
   ``` c++
   #include <brpc/server.h>
   
   class RedisService : public brpc::RedisService {
   };
   
   int main(int argc, char* argv[]) {
       google::ParseCommandLineFlags(&argc, &argv, true);
       brpc::Server server;
       brpc::ServerOptions options;
       RedisService redis_service;
       options.redis_service = &redis_service;
       if (server.Start(7447, &options) != 0) {
           LOG(ERROR) << "Failed to start dummy server";
           return 1;
       }
       server.RunUntilAskedToQuit();
       return 0;
   }
   ```
   
   **Expected behavior**
   
   The GRPC client failed with `code = Unimplemented desc = 
[10.234.44.157:4003][E1002]Fail to find method on /service.method"
   
   **Versions**
   OS: ubuntu 20.04 kernel: 5.15.0
   Compiler: clang-12
   brpc: 1.14.1
   protobuf: 27.3
   
   **Additional context/screenshots**
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to