Symptoms

PBA Migration precheck fails with the following error message:

+1s [ DIE ] [SSH::Connection] Error while init transport: Net::SSH: Can't bind socket to port 1023: The address is already in use at /usr/local/bm/tools/mig2rh6/SSH.pm line 141

In the /tmp/migrate_rh6.log it may be seen that there was failed attempt to establish SSH connection with the source PBA Application server:

[1s] [INFO] [Migration] Check connection state for `pba.app`
[1s] [DEBUG] [Migration] Get Location `pba.app` from repo
[1s] [DEBUG] [Migration] Get Location `pba.app.new` from repo
[1s] [DEBUG] [SSH::Connection] Attempt to open ssh transport to <IP_address>
[1s] [DEBUG] [SSH::Connection] Init SSH using password authentification
[1s] [DIE] [SSH::Connection] Error while init transport: Net::SSH: Can't bind socket to port 1023: The address is already in use at /usr/local/bm/tools/mig2rh6/SSH.pm line 141

However, it is possible to manually establish SSH connection from the server where PBA Migration tool is installed to all source PBA servers.

Cause

The PBA migration script establishes SSH connection via Perl. When Perl is running under the root user, it uses port 1023 for outgoing connections. Perl does not close the socket, and if it needs to establish a new connection, it will fail to bind to port 1023 because it is already in use, and ports above 1023 are out of the privileged ports range (privileged ports include TCP/IP port numbers below 1024).

Resolution

  1. Make sure that the /etc/ssh/ssh_config file exists on the server where the PBA migration utility is installed, create the file if it does not exist.

  2. Disable the priviliged ports security feature in the /etc/ssh/ssh_config adding the following string:

    UsePrivilegedPort no
    
  3. Run the PBA Migration utility.

Internal content