Re: ssl tests fail due to TCP port conflict
От | Andrew Dunstan |
---|---|
Тема | Re: ssl tests fail due to TCP port conflict |
Дата | |
Msg-id | 92b37fd1-3010-4a88-b8d4-ecf08973eaee@dunslane.net обсуждение исходный текст |
Ответ на | Re: ssl tests fail due to TCP port conflict (Andrew Dunstan <andrew@dunslane.net>) |
Список | pgsql-hackers |
On 2024-06-05 We 16:49, Andrew Dunstan wrote: > > On 2024-06-05 We 16:00, Alexander Lakhin wrote: >> Hello Andrew, >> >> 05.06.2024 21:10, Andrew Dunstan wrote: >>> >>> I think I see what's going on here. It looks like it's because we >>> start the server in unix socket mode, and then switch to using TCP >>> as well. >>> >>> Can you try your test with this patch applied and see if the problem >>> persists? If we start in TCP mode the framework should test for a >>> port clash. >>> >> >> It seems that the failure rate decreased (I guess the patch rules out >> the >> case with two servers choosing the same port), but I still got: >> >> 16/53 postgresql:ssl / ssl/001_ssltests_36 OK 15.25s 205 >> subtests passed >> 17/53 postgresql:ssl / ssl/001_ssltests_30 ERROR 3.17s (exit >> status 255 or signal 127 SIGinvalid) >> >> 2024-06-05 19:40:37.395 UTC [414110] LOG: starting PostgreSQL >> 17beta1 on x86_64-linux, compiled by gcc-13.2.1, 64-bit >> 2024-06-05 19:40:37.395 UTC [414110] LOG: could not bind IPv4 >> address "127.0.0.1": Address already in use >> 2024-06-05 19:40:37.395 UTC [414110] HINT: Is another postmaster >> already running on port 50072? If not, wait a few seconds and retry. >> >> `grep '\b50072\b' -r testrun/` yields: >> testrun/ssl/001_ssltests_34/log/001_ssltests_34_primary.log:2024-06-05 >> 19:40:37.392 UTC [414111] [unknown] LOG: connection received: >> host=localhost port=50072 >> (a psql case) >> >> That is, psql from the test instance 001_ssltests_34 opened a >> connection to >> the test server with the client port 50072 and it made using the port by >> the server from the test instance 001_ssltests_30 impossible. >> > > Oh. (kicks self) > > Should we really be allocating ephemeral server ports in the range > 41952..65535? Maybe we should be looking for an unallocated port > somewhere below 41952, and above, say, 32767, so we couldn't have a > client socket collision. Except that I see this on my Ubuntu instance: $ sudo sysctl net.ipv4.ip_local_port_range net.ipv4.ip_local_port_range = 32768 60999 And indeed I see client sockets in that range. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: