Corba ETIMEDOUT Event Client

I created a CORBA event service client with omniOrb and Python. I had the same issue with the Java client. I am very sure that I am experiencing the same thing as this post, because my strace looks very similar, but it doesn’t exactly explain how it fixed it: Java tnameserv gets 3+ minutes to be β€œReady”, why?

Bottom line - my client starts, but never receives events from the server due to an ETIMEDOUT error on both sides. Any recommendations are welcome!

Thanks in advance!

EDIT

Unfortunately, updating ip6tables (or iptables) did not work.

It looks like I can get the remote call return data, but as soon as IT wants to trigger a response (event), this causes this problem (see the beginning of the log below)

Here is my magazine from strace ...

[pid 17571] futex(0xa298288, FUTEX_WAIT_PRIVATE, 1, {4, 999961668} <unfinished ...>
[pid 17568] <... poll resumed> )        = 1 ([{fd=10, revents=POLLOUT}])
[pid 17568] getpeername(10, {sa_family=AF_INET, sin_port=htons(23120), sin_addr=inet_addr("10.10.10.250")}, [16]) = 0
[pid 17568] fcntl64(10, F_SETFL, O_RDONLY) = 0
[pid 17568] getsockname(10, {sa_family=AF_INET, sin_port=htons(37741), sin_addr=inet_addr("10.10.10.204")}, [16]) = 0
[pid 17568] getpeername(10, {sa_family=AF_INET, sin_port=htons(23120), sin_addr=inet_addr("10.10.10.250")}, [16]) = 0
[pid 17568] fcntl64(10, F_SETFD, FD_CLOEXEC) = 0
[pid 17568] send(10, "GIOP\1\1\1\0035\0\0\0\2\0\0\0-\0\0\0\24\1\17\0NUP\0\0\0\24\0"..., 65, 0) = 65
[pid 17568] recv(10,  <unfinished ...>
[pid 17570] <... poll resumed> )        = 0 (Timeout)
[pid 17570] gettimeofday({1292097412, 746922}, NULL) = 0
[pid 17570] poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}], 2, 0) = 0 (Timeout)
...
[pid 17570] gettimeofday({1292097412, 747503}, NULL) = 0
[pid 17570] poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}], 2, 0) = 0 (Timeout)
[pid 17570] gettimeofday({1292097412, 747544}, NULL) = 0
[pid 17570] gettimeofday({1292097412, 747563}, NULL) = 0
[pid 17570] poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}], 2, 50 <unfinished ...>
[pid 17568] <... recv resumed> "GIOP\1\1\0\4\0\0\0\10\0\0\0\2\0\0\0\1", 8192, 0) = 20
[pid 17568] send(10, "GIOP\1\1\1\0z\0\0\0\1\0\0\0\1\0\0\0\f\0\0\0\1\0\0\0\1\0\1\0"..., 134, 0) = 134
[pid 17568] recv(10,  <unfinished ...>
[pid 17570] <... poll resumed> )        = 0 (Timeout)
[pid 17570] gettimeofday({1292097412, 797695}, NULL) = 0
[pid 17570] gettimeofday({1292097412, 797716}, NULL) = 0
[pid 17570] poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}], 2, 50 <unfinished ...>
[pid 17568] <... recv resumed> "GIOP\1\1\0\1\0\0\0\330\0\0\0\1\0\0\0\1\0\0\0\f\1\0\0\0\1\0\1\0"..., 8192, 0) = 228
[pid 17568] write(1, "logged on\n", 10logged on
) = 10
[pid 17568] send(10, "GIOP\1\1\1\0u\0\0\0\0\0\0\0\6\0\0\0\1\0\0\0#\0\0\0\24\1\17\0"..., 129, 0) = 129
[pid 17568] recv(10,  <unfinished ...>
[pid 17570] <... poll resumed> )        = 0 (Timeout)
[pid 17570] gettimeofday({1292097412, 847848}, NULL) = 0
[pid 17570] gettimeofday({1292097412, 847868}, NULL) = 0
[pid 17570] poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}], 2, 50 <unfinished ...>
[pid 17568] <... recv resumed> "GIOP\1\1\0\1\0\0\0\r\0\0\0\0\0\0\0\6\0\0\0\0\1", 8192, 0) = 25
[pid 17568] send(10, "GIOP\1\1\1\0\t\1\0\0\0\0\0\0\10\0\0\0\1\0\0\0#\0\0\0\24\1\17\0"..., 277, 0) = 277
[pid 17568] recv(10,  <unfinished ...>
[pid 17570] <... poll resumed> )        = 0 (Timeout)
[pid 17570] gettimeofday({1292097412, 898007}, NULL) = 0
[pid 17570] gettimeofday({1292097412, 898028}, NULL) = 0
[pid 17570] poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}], 2, 50 <unfinished ...>
[pid 17568] <... recv resumed> "GIOP\1\1\0\1\0\0\0\20\0\0\0\0\0\0\0\10\0\0\0\0\0\2I\360", 8192, 0) = 28
[pid 17568] write(1, "150000\n", 7150000
)     = 7
[pid 17568] write(1, "registered\n", 11registered
) = 11
[pid 17568] gettimeofday({1292097412, 921865}, NULL) = 0
[pid 17568] clock_gettime(CLOCK_REALTIME, {1292097412, 921888446}) = 0
[pid 17568] futex(0xb7228ed4, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 17568] gettimeofday({1292097412, 921935}, NULL) = 0
[pid 17568] clock_gettime(CLOCK_REALTIME, {1292097412, 921956052}) = 0
...
[pid 17568] futex(0xb7228ed4, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 17568] gettimeofday({1292097412, 923784}, NULL) = 0
[pid 17568] clock_gettime(CLOCK_REALTIME, {1292097412, 923804532}) = 0
[pid 17568] futex(0xb7228f48, FUTEX_WAIT_PRIVATE, 65, {0, 581}) = -1 ETIMEDOUT (Connection timed out)
[pid 17568] futex(0xb7228ed4, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 17568] gettimeofday({1292097412, 923933}, NULL) = 0
[pid 17568] clock_gettime(CLOCK_REALTIME, {1292097412, 923953643}) = 0
[pid 17568] futex(0xb7228f48, FUTEX_WAIT_PRIVATE, 67, {0, 2582}) = -1 ETIMEDOUT (Connection timed out)
...
[pid 17568] futex(0xb7228ed4, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 17568] gettimeofday({1292097412, 934108}, NULL) = 0
[pid 17568] clock_gettime(CLOCK_REALTIME, {1292097412, 934127651}) = 0
[pid 17568] futex(0xb7228f48, FUTEX_WAIT_PRIVATE, 135, {0, 573697}) = -1 ETIMEDOUT (Connection timed out)
[pid 17568] futex(0xb7228ed4, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 17568] gettimeofday({1292097412, 934800}, NULL) = 0
[pid 17570] <... poll resumed> )        = 0 (Timeout)
[pid 17570] gettimeofday({1292097412, 989071}, NULL) = 0
[pid 17570] gettimeofday({1292097412, 989093}, NULL) = 0
[pid 17570] poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}], 2, -1 <unfinished ...>
[pid 17568] clock_gettime(CLOCK_REALTIME, {1292097412, 989133116}) = 0
[pid 17568] futex(0xb7228ed4, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 17568] gettimeofday({1292097412, 989191}, NULL) = 0
[pid 17568] clock_gettime(CLOCK_REALTIME, {1292097412, 989211757}) = 0
[pid 17568] futex(0xb7228f48, FUTEX_WAIT_PRIVATE, 139, {0, 697194}) = -1 ETIMEDOUT (Connection timed out)
...
[pid 17568] futex(0xb7228ed4, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 17568] gettimeofday({1292097413, 255954}, NULL) = 0
[pid 17568] clock_gettime(CLOCK_REALTIME, {1292097413, 255977528}) = 0
[pid 17568] futex(0xb7228f48, FUTEX_WAIT_PRIVATE, 215, {0, 26830986}) = -1 ETIMEDOUT (Connection timed out)
0
source share
2 answers

I ended up finding out that since I was on a different subnet than the server, ORB was posting the wrong IP address, and was unable to figure out the route back to my client when it was running.

In the end, I changed the configuration file to /etc/omniORB.cfg and changed the value of the endPointPublish property to the IP address on the server subnet!

0
source

I fixed this problem by adding the following line to my firewall script

 ip6tables -A INPUT -i lo -j ACCEPT
0
source

Source: https://habr.com/ru/post/1725795/


All Articles