문제

Linux에서 Corba Server를 사용하는 문제를 촬영하고 싶은 앱의 개발자를 돕기 위해 노력하고 있습니다. 나는 문제를 좁혔다 tnameserv 호출 후 준비하는 데 3 분 이상 걸립니다.

정확히 무엇입니까 tnameserv 그 3 분 안에하려고 노력하고 어쨌든 속도를 올릴 수 있습니까? 앱은 재 훈련 사이에 1 초로 5 개의 연결 시도를 시도했기 때문에 실패했습니다. 분명히 Tnameserv가 준비하기에 충분한 시간을주지는 않습니다. Slackware 13.0에서 Java 6U17을 사용하고 있습니다

그것이 중요하다면. 실제 호출 tnameserv 다음은 다음과 같습니다.

tnameserv -ORBInitialPort 23423

쉘에서 그 명령을 실행하면 마침내 "Ready"를 표시 할 때 3 분 정도까지 매달린 것으로 보입니다.

업데이트

나는했다 strace -f tnameserv -ORBInitialPort 23423 그리고 나는 gettimeofday (), clock_gettime () 및 futex ()에 대한 수많은 호출을보고 있는데, 그 중 후자는 항상 '-1 etimedout (연결 시간이 설정)를 반환합니다. 나는 이것이 내 문제와 관련이 있다고 생각하지만, 어떻게 또는 왜 그런지 전혀 모른다.

여기에 내가 Strace에서보고있는 것의 작은 부분이 있습니다. 누군가 복제 및/또는 이것을 이해할 수 있습니까?

[pid 30950] futex(0x8128e14, FUTEX_WAIT_PRIVATE, 1, {0, 49903084}) = -1 ETIMEDOUT (Connection timed out)
[pid 30950] futex(0x8098a28, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC, {329619, 995857482}) = 0
[pid 30950] gettimeofday({1260930158, 92108}, NULL) = 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC, {329619, 995996617}) = 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC, {329619, 996088536}) = 0
[pid 30950] gettimeofday({1260930158, 92328}, NULL) = 0
[pid 30950] clock_gettime(CLOCK_REALTIME, {1260930158, 92424295}) = 0
[pid 30950] futex(0x8128e14, FUTEX_WAIT_PRIVATE, 1, {0, 49903705}) = -1 ETIMEDOUT (Connection timed out)
[pid 30950] futex(0x8098a28, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC, {329620, 46761098}) = 0
[pid 30950] gettimeofday({1260930158, 143084}, NULL) = 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC, {329620, 46913924}) = 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC, {329620, 47006961}) = 0
[pid 30950] gettimeofday({1260930158, 143303}, NULL) = 0
[pid 30950] clock_gettime(CLOCK_REALTIME, {1260930158, 143398317}) = 0
[pid 30950] futex(0x8128e14, FUTEX_WAIT_PRIVATE, 1, {0, 49904683}) = -1 ETIMEDOUT (Connection timed out)
[pid 30950] futex(0x8098a28, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC, {329620, 97818379}) = 0
[pid 30950] gettimeofday({1260930158, 194127}, NULL) = 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC, {329620, 97957235}) = 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC, {329620, 98049154}) = 0
[pid 30950] gettimeofday({1260930158, 194346}, NULL) = 0
[pid 30950] clock_gettime(CLOCK_REALTIME, {1260930158, 194441349}) = 0
[pid 30950] futex(0x8128e14, FUTEX_WAIT_PRIVATE, 1, {0, 49904651}) = -1 ETIMEDOUT (Connection timed out)
[pid 30950] futex(0x8098a28, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC, {329620, 148806370}) = 0
[pid 30950] gettimeofday({1260930158, 245055}, NULL) = 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC, {329620, 148947182}) = 0
[pid 30950] clock_gettime(CLOCK_MONOTONIC, {329620, 148981547}) = 0
[pid 30950] gettimeofday({1260930158, 245280}, NULL) = 0
[pid 30950] clock_gettime(CLOCK_REALTIME, {1260930158, 245374859}) = 0
[pid 30950] futex(0x8128e14, FUTEX_WAIT_PRIVATE, 1, {0, 49905141}) = -1 ETIMEDOUT (Connection timed out)
도움이 되었습니까?

해결책 2

문제는 방화벽 문제였습니다. 방화벽이 특정 패킷을 떨어 뜨리고 있기 때문에 Wireshark는 유용한 것을 보여주지 않았습니다. 나는 이것이 사실이 아닌지 확인하기 위해 내 방화벽 로그를 꽤 많이 보았지만, 올바른 장소를보고 있지 않았다는 것이 밝혀졌습니다. 나는이 'tnameserv'가 IPv6 인식 (::: 23423에 바인딩)이라는 사실을 간과하고 내 방화벽 스크립트를 한눈에 볼 때 IPv6 관련 패킷을 IPv4 패킷과 다른 위치에 로그인하고 있음을 보여주었습니다. 이것은 감독이 아니었지만 ip6tables가 현재 -j ulog 대상을 지원하지 않기 때문에 수행해야했습니다.

간단히 말해서, IPv6에 대한 루프백을 허용하면 문제가 해결되고 'Tnameserv'는 "Ready Repoy"를 거의 즉시 즉시 수정했습니다.

다른 팁

나는 찾았다 이것 Google 사용 (LL Zamenhof의 생일 BTW). 나는 Wireshark 추적을 켜고 거기에서 무엇이든 볼 수 있는지 볼 것입니다. 네트워크 활동이 있다면 Strace에서 물건을 볼 것으로 기대합니다. 너무 나쁘다 그것은 오픈 소스가 아닙니다.

DNS 설정을 확인하십시오. 답변을 여러 번 기다리는 시간이 걸릴 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top