서버 프로그램이 멈춰있습니다. 무슨 문제일까요?
Reading symbols from shared object read from target memory...done.
Loaded system supplied DSO at 0x44079000
`shared object read from target memory' has disappeared; keeping its symbols.
Reading symbols from /lib/libpthread.so.0...done.
[Thread debugging using libthread_db enabled]
[New Thread -1209002288 (LWP 1024)]
Error while reading shared library symbols:
Can't attach LWP 1024: 그런 프로세스가 없음
Reading symbols from /usr/local/mysql/lib/mysql/libmysqlclient.so.15...done.
Loaded symbols for /usr/local/mysql/lib/mysql/libmysqlclient.so.15
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /usr/lib/libstdc++.so.6...done.
Loaded symbols for /usr/lib/libstdc++.so.6
0x00000100 in ?? ()
(gdb) bt
#0 0x00000100 in ?? ()
#1 0x44276d5b in __read_nocancel () from /lib/libpthread.so.0
#2 0x0804d307 in CAPAccess::Catch_Protocol (this=0x8086b60, pSql=0xbfd77c4c, pPly=0x8113458, RBuffer=0xbfd77490 "") at access.cpp:111
#3 0x0804a7e6 in main () at main.cpp:161
(gdb)
위와 같이 멈춰져 있는 경우가 하루에 한번꼴로 나타납니다.
사용자 약 200명 수준에서 access.cpp:111은
nread = read(pPly->m_Fd, RBuffer, HEAD_SIZE);
혹시나 read 함수 문제인가 해서 현재는
nread = recv(pPly->m_Fd, RBuffer, HEAD_SIZE, 0);
교체후에 상황을 지켜 보고 있는 상태입니다.
sd는 물론 넌블럭 상태입니다.
쓰레드는 epoll 쓰레드, 처리쓰레드, 보내는 쓰레드, 기타 잡다 쓰레드 2개 정도인데..
넌블럭인 넘이 블럭되어서 있는데 참 환장할 노릇이군요..
댓글 달기