CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ 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!
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.