CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): ymir (Mizz)
날 짜 (Date): 2006년 12월 11일 월요일 오후 07시 04분 44초
제 목(Title): Re: [Q] fcntl 관련...



제 질문에 관심 가져 주셔서 감사합니다.

일단 로그인이 안 되는 현상은..

로그인 프로세스 중간에 hang 이 걸려서 발생한 것입니다..

fcntl 의 동작이 궁금해서 다른 부분은 대충 생략했는데..

그 부분까지 조언을 주셔서 고맙습니다.


동일한 OS 의 (패치 레벨은 다를 수 있음) 로그인 과정에서는..

..
open("/etc/project", O_RDONLY|O_LARGEFILE) = 5
fcntl(5, F_DUPFD, 0x00000100) Err#22 EINVAL
read(5, " s y s t e m : 0 : : : :".., 1024) = 78
close(5) = 0
..

와 같이 에러 리턴을 하고 처리가 되었는데..


문제가 발생한 머신에서는..

...
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
..

와 같이 리턴 값이 다르기에 여쭤 본 것입니다.


물론 로직상으로는 처리에 이상이 없어 보입니다만..

저와 동일한 상황(?)을 만들려면 어떤 설정 변경이 필요하다든지..

또는 오류가 맞다면 어떤 오류가 있었을 때 저렇게 동작을 하는지..

등이 궁금해서입니다.


실제로 로그인이 안 되는 부분은는..

PAM 에서 관련 모듈등을 처리하다가...

..
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
..

이후에 hang 이 걸려서 더 이상 진행이 되지 않아서 입니다.

(원인은 알 수 없음)


정상적인 머신에서는..

아래와 같이 settaskid() 가 실행되면서 이후 과정이 진행됩니다.

...
open("/etc/project", O_RDONLY|O_LARGEFILE) = 5
fcntl(5, F_DUPFD, 0x00000100) Err#22 EINVAL
read(5, " s y s t e m : 0 : : : :".., 1024) = 78
close(5) = 0
door_info(4, 0xFFBF9370) = 0
door_call(4, 0xFFBF9358) = 0
access("/var/run/pool.state", 0) Err#2 ENOENT
settaskid(1, 0x00000000) = 41
door_info(4, 0xFFBFEFB8) = 0
door_call(4, 0xFFBFEFA0) = 0
open("/etc/shadow", O_RDONLY|O_LARGEFILE) = 5
fcntl(5, F_DUPFD, 0x00000100) Err#22 EINVAL
read(5, " r o o t : J G x W b j F".., 1024) = 1024
close(5) = 0
...


만약 커널이나 시스템에 이상이 생긴 것이라면..

cron 프로세스가 무수히 떠 있는 것도 이와 관련지어서 설명할 수 있을지도

모르겠습니다. (그 부분은 이미 상황 해제 된 상태라 더 이상 조사 불가)

즉, cron 프로세스가 진행되다가 어느 시점에서 hang 이 걸린게 아닐까

하는 것입니다.


저 hang 이 걸린 부분은, PAM 인증 과정중에 pam_projects.so.1 이 실행되는

부분으로 보입니다.



조금 전에 확인해 본 결과, cron 은 물론 hang 이 걸린 login 프로세스도

kill 이 되지 않았었다고 합니다..

그런데 시스템 리붓을 위해 몇몇 서비스들을 내렸었는데, 그러고 나니..

cron 프로세스들도 어느새 사라져 있더라고 하더군요.


뭔가 deadlock 이라도 걸린 것일까요.. -.-?

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