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

   **Describe the bug (描述bug)**
   
   server:
   ```
   ➜  echo_c++ git:(master) ./echo_server                                       
                            
   I0404 03:39:09.932712 141904     0 src/brpc/server.cpp:1241] 
Server[example::EchoServiceImpl] is serving on port=8000.
   I0404 03:39:09.933092 141904     0 src/brpc/server.cpp:1244] Check out 
http://noble:8000 in web browser.
   ```
   client:
   ```
   ➜  echo_c++ git:(master) ./echo_client                                       
                            
   [1]    141961 segmentation fault (core dumped)  ./echo_client
   ```
   
   **To Reproduce (复现方法)**
   
   ```bash
   
   $ ./config_brpc.sh --headers=/usr/include --libs=/usr/lib --cxx=clang++ 
--cc=clang
   $ cd example/echo_c++
   $ make
   $ ./echo_server &
   $ ./echo_client
   ```
   
   gdb 调试发现 _app_connect memory addr cannot access.
   ```
   ➜  echo_c++ git:(master) gdb ./echo_client
   ...
   Reading symbols from ./echo_client...
   (gdb) r
   Starting program: /home/kanxu/proj/brpc/example/echo_c++/echo_client 
   [Thread debugging using libthread_db enabled]
   Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
   [New Thread 0xfffff740ee40 (LWP 142238)]
   [New Thread 0xfffff6a0ee40 (LWP 142239)]
   [New Thread 0xfffff600ee40 (LWP 142240)]
   [New Thread 0xfffff560ee40 (LWP 142241)]
   [New Thread 0xfffff4c0ee40 (LWP 142242)]
   [New Thread 0xffffefe0ee40 (LWP 142243)]
   [New Thread 0xffffef40ee40 (LWP 142244)]
   [New Thread 0xffffeea0ee40 (LWP 142245)]
   [New Thread 0xffffee00ee40 (LWP 142246)]
   [New Thread 0xffffed60ee40 (LWP 142247)]
   [New Thread 0xffffecc0ee40 (LWP 142248)]
   
   Thread 10 "brpc_wkr:0-6" received signal SIGSEGV, Segmentation fault.
   [Switching to Thread 0xffffee00ee40 (LWP 142246)]
   brpc::Socket::CheckConnectedAndKeepWrite (fd=<optimized out>, err=<optimized 
out>, err@entry=0, data=0xaaaaac08cab0) at src/brpc/socket.cpp:1571
   1571                s->_app_connect->StartConnect(req->get_socket(),
   (gdb) bt
   #0  brpc::Socket::CheckConnectedAndKeepWrite (fd=<optimized out>, 
err=<optimized out>, err@entry=0, data=0xaaaaac08cab0) at 
src/brpc/socket.cpp:1571
   #1  0x0000aaaaaacc5d98 in brpc::Socket::KeepWriteIfConnected (fd=<optimized 
out>, err=0, data=<optimized out>) at src/brpc/socket.cpp:1554
   #2  0x0000aaaaaacc5ee8 in brpc::Socket::HandleEpollOutRequest 
(this=0xaaaaac04f8b0, error_code=0, req=0xaaaaabe184b0) at 
src/brpc/socket.cpp:1490
   #3  brpc::Socket::OnOutputEvent (user_data=<optimized out>) at 
src/brpc/socket.cpp:1456
   #4  0x0000aaaaaac8e080 in brpc::IOEventData::CallOutputEventCallback 
(this=0xaaaaac022220, events=4, thread_attr=...)
       at ./src/brpc/event_dispatcher.h:74
   #5  brpc::EventDispatcher::OnEvent<false> (event_data_id=<optimized out>, 
events=4, thread_attr=...) at ./src/brpc/event_dispatcher.h:158
   #6  brpc::EventDispatcher::CallOutputEventCallback (event_data_id=<optimized 
out>, events=4, thread_attr=...) at ./src/brpc/event_dispatcher.h:170
   #7  brpc::EventDispatcher::Run (this=0xaaaaabe1efc8) at 
./src/brpc/event_dispatcher_epoll.cpp:232
   #8  0x0000aaaaaac8dd00 in brpc::EventDispatcher::RunThis 
(arg=0x631eba43eaea2) at ./src/brpc/event_dispatcher_epoll.cpp:189
   #9  0x0000aaaaaac77d44 in bthread::TaskGroup::task_runner 
(skip_remained=<optimized out>) at src/bthread/task_group.cpp:305
   #10 0x0000aaaaaadbd5b0 in bthread_make_fcontext ()
   Backtrace stopped: previous frame identical to this frame (corrupt stack?)
   (gdb) p s->_app_connect 
   $1 = <error reading variable: Cannot access memory at address 0x1f4000000008>
   (gdb) 
   ```
   
   
   **Expected behavior (期望行为)**
   ```
   ➜  echo_c++ git:(master) ✗ ./echo_client 
   I0404 03:28:27.590878 135960     0 client.cpp:78] Received response from 
0.0.0.0:8000 to 127.0.0.1:43450: hello world (attached=) latency=5523us
   I0404 03:28:28.591892 135960     0 client.cpp:78] Received response from 
0.0.0.0:8000 to 127.0.0.1:43450: hello world (attached=) latency=767us
   ```
   
   
   **Versions (各种版本)**
   OS: 6.10.0 
   Compiler: clang++
   ```
   ➜  echo_c++ git:(master) clang++ -v         
   Ubuntu clang version 18.1.3 (1ubuntu1)
   Target: aarch64-unknown-linux-gnu
   Thread model: posix
   InstalledDir: /usr/bin
   Found candidate GCC installation: /usr/bin/../lib/gcc/aarch64-linux-gnu/13
   Selected GCC installation: /usr/bin/../lib/gcc/aarch64-linux-gnu/13
   Candidate multilib: .;@m64
   Selected multilib: .;@m64
   ```
   
   brpc: 3d16b5bc08c967103c9640e9aef24a63e775dd24 (latest)
   protobuf: 3.21.12
   
   **Additional context/screenshots (更多上下文/截图)**
   
   用 g++/gcc 编译可以正常运行
   


-- 
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: dev-unsubscr...@brpc.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@brpc.apache.org
For additional commands, e-mail: dev-h...@brpc.apache.org

Reply via email to