Fedora를 실행하는 원격 빌드 서버에서 컴파일 및 링크 된 PostgreSQL의 Initdb 유틸리티 빌드가 있습니다. 내 시스템에서 (우분투 13.04 64 비트) 유틸리티는 명령 initdb -D /home/me/postgres_files/ -L /home/me/postgres_init_files/
을 사용하여 실행되는 반환 다음 : 나는 유틸리티를 로컬로 만들 경우원격 시스템에서 빌드 할 때 오해의 소지가있는 오류 메시지와 함께 Postdbres에 대한 Initdb가 실패했습니다.
initdb: could not obtain information about current user: Success
이 우리의 빌드에서 원격 빌드, 발생하지 않습니다 농장.
pw = getpwuid(geteuid());
if (!pw)
{
fprintf(stderr,
_("%s: could not obtain information about current user: %s\n"),
progname, strerror(errno));
exit(1);
}
호출 중 하나가() 실패를 (geteuid) 또는 getpwuid 할 것으로 보인다 있지만, errno를 설정하지 않을 : 지금까지 initdb.c
에 다음 코드 조각에 이르기까지 문제를 추적 관리해야 실패한 함수에 의해. 불행히도 나는 쉽게 들어가서 유틸리티를 직접 디버깅 할 수 없다. 이것은 유틸리티의 원격 빌드 버전에서만 발생하기 때문이다.
누구든지이 점을 밝힐 수 있다면 크게 감사 할 것입니다.
감사합니다.
NULL
반환 getpwuid()
경우이 아닌 necessarilly 오류를 inidicate 필요 :은 "일관성"오류 메시지를 참조
코드 (https://github.com/postgres/postgres/blob/master/src/bin/initdb/initdb.c)를 아주 자세히 보면 스레드되지 않은 것 같습니다. – Pete