우선 리눅스 서버가 두대 입니다.
A라는 서버에서 컴파일 한 이후 동작 시키면 정상적으로 동작을 하는데
B라는 서버에서 데몬으로 뛰우면 Segmentation fault 에러가 발생합니다.
이일을 어찌해야하는지.. 초보라서 정말 답답합니다. ㅠ.ㅠ
이 내용만으로는 정확한 답변을 하기 힘들어 보이는데요.
최소한 두 서버의 환경과 프로그램 소스 코드라도
있어야 답변이 가능할 듯
http://home.postech.ac.kr/~sodomau
우선 서버 소스 코드라서 코드를 올릴수가 없습니다. 저두 이부분이 답답한 상태이고요.
Segmentation fault 에러가 발생하여 예전에 동작햇던 소스로 컴파일을 해도 Segmentation fault에러가 발생합니다.
환경은 둘다 리눅스 7.3이고 gcc 버전은 같습니다. 둘다 아파치 환경이며 DB서버는 따로 동작하기 때문에
A와 B에서 데몬을 돌려서 DB서버에 접속하여 데이터를 가져와 클라이언트에 자료를 뿌려줍니다.
커널 버전도 같은 상황 입니다.
A에서 컴파일 하여 B로 실행파일만 옮겨서 데몬을 뛰우는 형태입니다.
다른 것은 A/B 서버에 MYSQL이 깔려 있고요 두개의 버전은 다릅니다.
B 서버에 아파치 깔기 전까지는 데몬이 잘 동작했구요.
지금 예전의 소스로 컴파일 했는 데도 불구하고 Segmentation fault 에러가 납니다.
ㅜ.ㅜ
일신 우일신~!!
소스를 B에서 컴파일해서 B에서 돌리면요?
저도 그런 경우를 봤는데, B에서 빌드하면 괜찮던데요. ( 뭐 이유는 모르겠습니다만 .. )
B 서버에서 빌드해도 마찬가지인가요 ?
우선 MYSQL의 버전이 다르기때문에 B에서 컴파일 할경우에는 connect 부분을 전부 수정을 해야합니다.
ㅜ.ㅜ 결국은 새로 수정해서 해야 할꺼 같습니다.
정말 이거에 대한 정확한 원인은 모르는 것인지...ㅜ.ㅜ
음, 바이너리의 의존성을 검사해 보세요.
ldd A ldd B
혹시 버전 문제가 아닐까 합니다. 또한 링크된 라이브러리 버전도 검사를.......
커널 패치수준은 같은지?
소스가 있다면... segment fault났을 때 core dump를 만들어서 gdb로 따라가보는 것도... 어떨까요?
우선 B쪽에서도 DB 콘넥션 부분을 수정해서 컴파일 하니깐 정상적으로
컴파일 잘되고 데몬도 잘 뜹니다.
커널 업데이트 이후에도 잘 뜨던 데몬이 갑자기 안뜨니깐 좀 당황스럽습니다.
우선 서버쪽에 필요한 라이브러리라고는 MYSQL쪽 뿐이고.
두 서버의 커널/GCC버전은 전부 같은 버전이며 틀린 부분은 MYSQL버전 뿐입니다.
데몬이 잘뜨던 상황이랑 변경되어진 것은(이부분은 재가 잘 모르기때문에..)
DNS 서버를 C라는 서버에서 A라는 서버로 셋팅한것과
아파치 셋팅하고 A서버도 웹서버로 설정한것 뿐이 없습니다.
아아.. 그리고 제가 리눅스 쪽은 잘 몰라서.. 바이너리 의존성 검사는 어떻게 해야하는지 검색해도 없네요... ^^*
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
이 내용만으로는 정확한 답변을 하기 힘들어 보이는데요.최소한 두
이 내용만으로는 정확한 답변을 하기 힘들어 보이는데요.
최소한 두 서버의 환경과 프로그램 소스 코드라도
있어야 답변이 가능할 듯
http://home.postech.ac.kr/~sodomau
질문에 대한 자세한 설명? 입니다.
우선 서버 소스 코드라서 코드를 올릴수가 없습니다.
저두 이부분이 답답한 상태이고요.
Segmentation fault 에러가 발생하여 예전에 동작햇던
소스로 컴파일을 해도 Segmentation fault에러가 발생합니다.
환경은 둘다 리눅스 7.3이고 gcc 버전은 같습니다.
둘다 아파치 환경이며 DB서버는 따로 동작하기 때문에
A와 B에서 데몬을 돌려서 DB서버에 접속하여 데이터를 가져와
클라이언트에 자료를 뿌려줍니다.
커널 버전도 같은 상황 입니다.
A에서 컴파일 하여 B로 실행파일만 옮겨서 데몬을 뛰우는 형태입니다.
다른 것은 A/B 서버에 MYSQL이 깔려 있고요 두개의 버전은 다릅니다.
B 서버에 아파치 깔기 전까지는 데몬이 잘 동작했구요.
지금 예전의 소스로 컴파일 했는 데도 불구하고 Segmentation fault 에러가 납니다.
ㅜ.ㅜ
일신 우일신~!!
소스를 B에서 컴파일해서 B에서 돌리면요?
소스를 B에서 컴파일해서 B에서 돌리면요?
저도 그런 경우를 봤는데, B에서 빌드하면 괜찮던데요.( 뭐 이유는
저도 그런 경우를 봤는데, B에서 빌드하면 괜찮던데요.
( 뭐 이유는 모르겠습니다만 .. )
B 서버에서 빌드해도 마찬가지인가요 ?
답변 감사드립니다.
우선 MYSQL의 버전이 다르기때문에 B에서 컴파일 할경우에는
connect 부분을 전부 수정을 해야합니다.
ㅜ.ㅜ 결국은 새로 수정해서 해야 할꺼 같습니다.
정말 이거에 대한 정확한 원인은 모르는 것인지...ㅜ.ㅜ
일신 우일신~!!
음, 바이너리의 의존성을 검사해 보세요.ldd Aldd B
음, 바이너리의 의존성을 검사해 보세요.
ldd A
ldd B
혹시 버전 문제가 아닐까 합니다.
또한 링크된 라이브러리 버전도 검사를.......
커널 패치수준은 같은지?
소스가 있다면... segment fault났을 때 core dump를
소스가 있다면... segment fault났을 때 core dump를 만들어서 gdb로 따라가보는 것도... 어떨까요?
답변 주신 분들께 감사드립니다.
우선 B쪽에서도 DB 콘넥션 부분을 수정해서 컴파일 하니깐 정상적으로
컴파일 잘되고 데몬도 잘 뜹니다.
커널 업데이트 이후에도 잘 뜨던 데몬이 갑자기 안뜨니깐 좀 당황스럽습니다.
우선 서버쪽에 필요한 라이브러리라고는 MYSQL쪽 뿐이고.
두 서버의 커널/GCC버전은 전부 같은 버전이며 틀린 부분은 MYSQL버전 뿐입니다.
데몬이 잘뜨던 상황이랑 변경되어진 것은(이부분은 재가 잘 모르기때문에..)
DNS 서버를 C라는 서버에서 A라는 서버로 셋팅한것과
아파치 셋팅하고 A서버도 웹서버로 설정한것 뿐이 없습니다.
아아.. 그리고 제가 리눅스 쪽은 잘 몰라서.. 바이너리 의존성 검사는
어떻게 해야하는지 검색해도 없네요... ^^*
일신 우일신~!!
댓글 달기