[ CnUnix ] in KIDS 글 쓴 이(By): ymir (Mizz) 날 짜 (Date): 2006년 12월 11일 월요일 오후 09시 12분 34초 제 목(Title): Re: [Q] fcntl 관련... 원래는 fcntl 이 저렇게도 리턴하는지가 궁금해서 였는데.. 이쪽은 천천히 자료를 찾아 봐야 할 것 같습니다. ^^ 일단 뭐 로그인 안 되는 문제에 대해서 따로 정리 해 보자면.. ^^ 로그인이 안 되는 문제가 생긴 시스템에서 나온 데이터는.. login 과정을 truss 로 뜬 것과, cron 프로세스에 관한 내용이 전부였습니다. (단순 kill 이었는지 kill -9 였는지도 모르겠네요.. ;;) 그래서 동일한 OS 및 세팅에서 (패치레벨은 다를 수 있음).. 테스트를 해 본 결과, fcntl 이 다르게 동작하고 있는 것 외에는.. 차이를 발견할 수 없었구요.. 로그인 과정에서 보면.. PAM 의 account 모듈에서 pam_projects.so.1 또는 pam_unix_account.so.1 이 뭔가를 처리하다가 block(?) 된 것으로 보입니다. /etc/pam.conf 를 보면 패스워드 인증이 끝난 후에.. pam_roles.so.1 / pam_projects.so.1 / pam_unix_account.so.1 를 거치고.. pam_unix_session.so.1 를 호출하도록 되어 있는데.. 아래와 같이 /etc/project 파일을 읽고나서 block 된 채로 진행을 못하고 있습니다. .. open("/etc/project", O_RDONLY|O_LARGEFILE) = 4 fcntl(4, F_DUPFD, 0x00000100) = 256 close(4) = 0 read(256, " s y s t e m : 0 : : : :".., 1024) = 78 close(256) = 0 door_info(3, 0xFFBF9368) = 0 door_call(3, 0xFFBF9350) = 0 access("/var/run/pool.state", 0) Err#2 ENOENT .. /var/run/pool.state 파일의 용도는 모르겠지만... 해당 파일은 별다른 영향을 미치지는 않는 것 같습니다. 정상적인 시스템에서는 위 파일을 체크하고, settaskid() 로 넘어가고 있으니.. taskid_t settaskid(projid_t project, uint_t flags) { taskid_t newtaskid; while ((newtaskid = syscall(SYS_tasksys, 0, project, flags, NULL, 0)) == -1 && errno == EINTR); return (newtaskid); } 아마도 얘에서 block 되었겠죵.. -.-? 일단은 kernel 쪽에 뭔가 이상이 생겨서.. 시스템 콜 쪽에 deadlock 이 걸린게 아닐까.. 라고 생각하고 있습니다만.. 시스템은 이미 리붓되었고, 데이터는 더 이상 없고.. 그런 상태네요.. ^^;;; 썬 엔지니어가 와서 덤프를 떴다고 하던데.. 문제가 생길 당시가 아니라.. 프로세스들이 클리어 된 상태에서 뜬거라.. 아마도 추가 자료를 얻기는 힘들 것 같네요.. ㅎ~ cron 서비스도 account 모듈에서 pam_projects.so.1 / pam_unix_account.so.1 를 호출하도록 되어 있는데.. cron 역시 login 과 동일한 위치에서 block 된 게 아닐까 의심하고 있는 상태입니다.. 뭐 기본적인 데이터가 충분하지 않은 상태라.. ;; 이 부분은 걍 생략하고 질문을 올렸었는데... 그냥 말 나온김에 주절 주절 써 봤습니다.. ^^;; 관심 갖고 읽어 주셔서 고맙습니다. 참, fd 하나는 저도 모르겠습니다.. 이미 login 이 떠 있는 상태에서, truss 로 잡고 로그인 과정을 진행한거라.. ^^ 운영서버라며 맘대로 접근도 못하게 하니깐, 걍 답답~하네요.. ㅎ~ Oh, I do believe everlasting love and destiny to meet you again I feel a pain I can hardly stand all I can do is loving you - *Mizz* the Magic Knight! |