Well, here's the code producing that output:

typeset -i retry='0'
typeset -i max_retry='10'
typeset output=''
for ((retry = 0; retry < max_retry; ++retry)); do
        typeset -i free_port="${X2GO_PORT}"
        if free_port="$("${X2GO_LIB_PATH}/x2gogetfreeport"
"${current_host_name}" "${ss}" 'display' "${X2GO_PORT}")"; then
                X2GO_PORT="${free_port}"

                if [[ -n "${SHADREQ_USER}" ]]; then

SESSION_NAME="${SHADREQ_USER}-${X2GO_PORT}-$(date '+%s')"
                else
                        SESSION_NAME="${USER}-${X2GO_PORT}-$(date '+%s')"
                fi
                if [[ -n "${COLORDEPTH}" ]]; then

SESSION_NAME="${SESSION_NAME}_st${SESSION_TYPE}${X2GO_CMD}_dp${COLORDEPTH}"
                        SESSION_NAME="${SESSION_NAME//:/PP}"
                fi

                # sanitize session name
                SESSION_NAME="$(perl -pe 's/[^a-zA-Z0-9\.\_\-\@]//g'
<<< "${SESSION_NAME}")"

                if [[ -n "${SHADREQ_USER}" ]]; then
                        "${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'debug'
"initializing new shadow session with ID ${SESSION_NAME}"

output="$("${X2GO_LIB_PATH}/x2goinsertshadowsession" "${X2GO_PORT}"
"${current_host_name}" "${SESSION_NAME}" "${SHADREQ_USER}")"
                else
                        "${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'debug'
"initializing new session with ID ${SESSION_NAME}"
                        output="$("${X2GO_LIB_PATH}/x2goinsertsession"
"${X2GO_PORT}" "${current_host_name}" "${SESSION_NAME}")"
                fi

                if [[ "${output}" = 'inserted' ]]; then
                        break
                else
                        "${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'warning'
"unable to insert display port into database. Retrying (run $((retry +
1)))."
                fi
        else
                "${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'warning' "no
free display number available, cannot start new session. Retrying (run
$((retry + 1)))."
        fi
done

if [[ "${output}" != 'inserted' ]]; then
        typeset msg="Unable to find free display port or insert new
session into database; parameters: port (${X2GO_PORT}), hostname
(${current_host_name}) and session name (${SESSION_NAME})."
        "${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'err' "${msg}"

        # Make x2goclient fail.
        echo "${msg}" >&2
        exit '10'
fi


This boils down to

for ((retry = 0; retry < max_retry; ++retry)); do
        typeset -i free_port="${X2GO_PORT}"
        if free_port="$("${X2GO_LIB_PATH}/x2gogetfreeport"
"${current_host_name}" "${ss}" 'display' "${X2GO_PORT}")"; then
...
       else
                "${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'warning' "no
free display number available, cannot start new session. Retrying (run
$((retry + 1)))."
        fi
done

-> as you can see x2gofreeport does not seem to report the port as
free. You can try this manually:

/usr/lib/x2go/x2gogetfreeport $(hostname) "$(which ss)" display 50

If that will output a free port x2go should generally work. If not,
you still have something running and blocking these ports. You can
check with lsof -i :6050 and you will see who is blocking the first
checked port.

You can also run the x2gogefreeport with bash -x:
bash -x /usr/lib/x2go/x2gogetfreeport $(hostname) "$(which ss)" display 50

and see what going on.

Hope that helps,

Uli




On Mon, Jan 25, 2021 at 8:50 PM Robert Kudyba <rkud...@fordham.edu> wrote:
>
> I posted a similar issue back in Nov, 2020 at 
> https://www.mail-archive.com/x2go-dev@lists.x2go.org/msg06284.html
>
> rpm -qa|grep -i x2go
> x2goclient-4.1.2.2-3.fc33.x86_64
> x2goserver-common-4.1.0.3-9.fc33.noarch
> perl-X2Go-Server-4.1.0.3-9.fc33.noarch
> perl-X2Go-Log-4.1.0.3-9.fc33.noarch
> perl-X2Go-Server-DB-4.1.0.3-9.fc33.x86_64
> x2goagent-4.1.0.3-9.fc33.x86_64
> x2goserver-xsession-4.1.0.3-9.fc33.noarch
> x2goserver-4.1.0.3-9.fc33.x86_64
>
> nxagent -display :55
> NXAGENT - Version 3.5.99.25
>
> Jan 25 14:14:29 pascal /usr/bin/x2gostartagent[39654]: no free display number 
> available, cannot start new session. Retrying (run 1).
> Jan 25 14:14:30 pascal /usr/bin/x2gostartagent[39663]: no free display number 
> available, cannot start new session. Retrying (run 2).
> Jan 25 14:14:30 pascal /usr/bin/x2gostartagent[39672]: no free display number 
> available, cannot start new session. Retrying (run 3).
> Jan 25 14:14:30 pascal /usr/bin/x2gostartagent[39681]: no free display number 
> available, cannot start new session. Retrying (run 4).
> Jan 25 14:14:30 pascal /usr/bin/x2gostartagent[39690]: no free display number 
> available, cannot start new session. Retrying (run 5).
> Jan 25 14:14:30 pascal /usr/bin/x2gostartagent[39699]: no free display number 
> available, cannot start new session. Retrying (run 6).
> Jan 25 14:14:30 pascal /usr/bin/x2gostartagent[39708]: no free display number 
> available, cannot start new session. Retrying (run 7).
> Jan 25 14:14:30 pascal /usr/bin/x2gostartagent[39717]: no free display number 
> available, cannot start new session. Retrying (run 8).
> Jan 25 14:14:31 pascal /usr/bin/x2gostartagent[39726]: no free display number 
> available, cannot start new session. Retrying (run 9).
> Jan 25 14:14:31 pascal /usr/bin/x2gostartagent[39736]: no free display number 
> available, cannot start new session. Retrying (run 10).
> Jan 25 14:14:31 pascal /usr/bin/x2gostartagent[39737]: Unable to find free 
> display port or insert new session into database; parameters: port (50), 
> hostname (pascal.dsm.fordham.edu) and session name ().
> Jan 25 14:14:31 pascal kernel: kauditd_printk_skb: 21 callbacks suppressed
>
> Let me to 
> https://unix.stackexchange.com/questions/467507/x2go-unable-to-find-free-display-port-or-insert-new-session-into-database
>  so I ran x2godbadmin --createdb
>
> Then I tried with another use and got:
> Connection failed.
> /usr/lib64/x2go/x2gocheckport: line 131: 
> connect('dbname=/var/lib/x2go/x2go_sessions','',...): syntax error in 
> expression (error token is "('dbname=/var/lib/x2go/x2go_sessions','',...)")
> /usr/lib64/x2go/x2gocheckport: line 131: 
> connect('dbname=/var/lib/x2go/x2go_sessions','',...): syntax error in 
> expression (error token is "('dbname=/var/lib/x2go/x2go_sessions','',...)")
> /usr/lib64/x2go/x2gocheckport: line 131: 
> connect('dbname=/var/lib/x2go/x2go_sessions','',...): syntax error in 
> expression (error token is "('dbname=/var/lib/x2go/x2go_sessions','',...)")
> /usr/lib64/x2go/x2gocheckport: line 131: 
> connect('dbname=/var/lib/x2go/x2go_sessions','',...): syntax error in 
> expression (error token is "('dbname=/var/lib/x2go/x2go_sessions','',...)")
> /usr/lib64/x2go/x2gocheckport: line 131: 
> connect('dbname=/var/lib/x2go/x2go_sessions','',...): syntax error in 
> expression (error token is "('dbname=/var/lib/x2go/x2go_sessions','',...)")
> /usr/lib64/x2go/x2gocheckport: line 131: 
> connect('dbname=/var/lib/x2go/x2go_sessions','',...): syntax error in 
> expression (error token is "('dbname=/var/lib/x2go/x2go_sessions','',...)")
> /usr/lib64/x2go/x2gocheckport: line 131: 
> connect('dbname=/var/lib/x2go/x2go_sessions','',...): syntax error in 
> expression (error token is "('dbname=/var/lib/x2go/x2go_sessions','',...)")
> /usr/lib64/x2go/x2gocheckport: line 131: 
> connect('dbname=/var/lib/x2go/x2go_sessions','',...): syntax error in 
> expression (error token is "('dbname=/var/lib/x2go/x2go_sessions','',...)")
> /usr/lib64/x2go/x2gocheckport: line 131: 
> connect('dbname=/var/lib/x2go/x2go_sessions','',...): syntax error in 
> expression (error token is "('dbname=/var/lib/x2go/x2go_sessions','',...)")
> /usr/lib64/x2go/x2gocheckport: line 131: 
> connect('dbname=/var/lib/x2go/x2go_sessions','',...): syntax error in 
> expression (error token is "('dbname=/var/lib/x2go/x2go_sessions','',...)")
> Unable to find free display port or insert new session into database; 
> parameters: port (50), hostname (oudomain.edu) and session name ().
>
> How does one start X2Go Windows with debug enabled? I only found for Mac you 
> can add the --debug flag.
>
> My colleague also had this error:
>
>
> XSession-x2go: X session started for moniot at Mon Jan 25 09:01:13 EST 2021
> ** Message: 09:01:15.605: couldn't access control socket: 
> /run/user/1200/keyring/control: No such file or directory
> SSH_AUTH_SOCK=/run/user/1200/keyring/ssh
>
> ** (mate-settings-daemon:1436112): WARNING **: 09:01:16.172: Could not open 
> RFKILL control device, please verify your installation
> SSH_AUTH_SOCK=/run/user/1200/keyring/ssh
> SSH_AUTH_SOCK=/run/user/1200/keyring/ssh
> vmware-user: could not open /proc/fs/vmblock/dev
> Error: /usr/bin/vmtoolsd must be run inside a virtual machine on a VMware 
> hypervisor product.
> SSH_AUTH_SOCK=/run/user/1200/keyring/ssh
>
> (caja:1436133): Gtk-WARNING **: 09:01:17.552: Failed to register client: 
> GDBus.Error:org.gnome.SessionManager.AlreadyRegistered: Unable to register 
> client
> *** ERROR ***
> TI:09:01:17     TH:0x56299587f960       FI:gpm-manager.c        
> FN:gpm_manager_systemd_inhibit,1786
>  - Error in dbus - GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: 
> Permission denied
> Traceback:
>         mate-power-manager(+0x1d474) [0x562995487474]
>         mate-power-manager(+0x136ab) [0x56299547d6ab]
>         /lib64/libgobject-2.0.so.0(g_type_create_instance+0x248) 
> [0x7f04c0b72498]
>         /lib64/libgobject-2.0.so.0(+0x19205) [0x7f04c0b58205]
>         /lib64/libgobject-2.0.so.0(g_object_new_with_properties+0x1dd) 
> [0x7f04c0b596ad]
>         /lib64/libgobject-2.0.so.0(g_object_new+0xc1) [0x7f04c0b5a331]
>         mate-power-manager(+0x15f16) [0x56299547ff16]
>         mate-power-manager(+0xb20a) [0x56299547520a]
>         /lib64/libc.so.6(__libc_start_main+0xf2) [0x7f04c0708082]
>         mate-power-manager(+0xb58e) [0x56299547558e]
> Failure: Module initialization failed
> SELinux Troubleshooter: Applet requires SELinux be enabled to run
> Initializing caja-open-terminal extension
> Initializing caja-xattr-tags extension
> Initializing caja-image-converter extension
> ICE default IO error handler doing an exit(), pid = 1436318, errno = 32
>
> (mate-settings-daemon:1436112): GLib-GIO-WARNING **: 09:02:44.229: Error 
> releasing name org.mate.SettingsDaemon.Rfkill: The connection is closed
> [1611583276,000,xklavier.c:xkl_engine_start_listen/]    The backend does not 
> require manual layout management - but it is provided by the application
>
>
>
_______________________________________________
x2go-dev mailing list
x2go-dev@lists.x2go.org
https://lists.x2go.org/listinfo/x2go-dev

Reply via email to