You are not logged in.
The critical assertion there usually means that the process crashes, what if you
export GDK_BACKEND=x11; /opt/Citrix/ICAClient/selfservice?
And what do the logs from three days ago look like?
As said before, using x11 changes nothing, I just get:
double free or corruption (!prev)
free(): invalid sizeAfter inserting the email and receiving the error.
Will follow later with answers to other questions thanks a lot
Last edited by ironhak (2026-03-20 16:04:23)
Offline
Using the GDK X11 backend and an X11 session are NOT the same thing!
Did you actually ever try this on an X11 session?
Also test this w/ a fresh user account, the glibc error there is probably also fatal.
You can also try
gdb /opt/Citrix/ICAClient/selfserviceOffline
I tried creating a new user but still does not work. I tried on x11 VM (debian) and Wayland VM. The problem is not tied to x11 or graphic stuff.
$ gdb /opt/Citrix/ICAClient/selfservice
GNU gdb (GDB) 17.1
Copyright (C) 2025 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /opt/Citrix/ICAClient/selfservice...
This GDB supports auto-downloading debuginfo from the following URLs:
<https://debuginfod.archlinux.org>
Enable debuginfod for this session? (y or [n])
Debuginfod has been disabled.
To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
(No debugging symbols found in /opt/Citrix/ICAClient/selfservice)
(gdb) run
Starting program: /opt/Citrix/ICAClient/selfservice
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Failed to open /etc/systeminfo file
Failed to open /etc/tzagent/info file
Failed to open /setup/terminal.ini
[Detaching after vfork from child process 6943]
[New Thread 0x7fffdfbff6c0 (LWP 6947)]
[New Thread 0x7fffdefff6c0 (LWP 6948)]
[New Thread 0x7fffde7fe6c0 (LWP 6949)]
[New Thread 0x7fffddffd6c0 (LWP 6950)]
[New Thread 0x7fffdd7fc6c0 (LWP 6951)]
[New Thread 0x7fffdcffb6c0 (LWP 6952)]
[New Thread 0x7fffc7fff6c0 (LWP 6953)]
[Detaching after vfork from child process 6954]
[Detaching after fork from child process 6961]
[Detaching after fork from child process 6962]
[New Thread 0x7fffc73ff6c0 (LWP 6963)]
[New Thread 0x7fffc6bfe6c0 (LWP 6964)]
[New Thread 0x7fffc5fff6c0 (LWP 6965)]
[New Thread 0x7fffc55a36c0 (LWP 6967)]
[Thread 0x7fffc55a36c0 (LWP 6967) exited]
[Detaching after fork from child process 6968]
free(): invalid size
[Detaching after fork from child process 6978]
double free or corruption (!prev)
(Wfica:6940): Gdk-CRITICAL **: 17:55:44.651: gdk_x11_window_get_xid: assertion 'GDK_IS_X11_WINDOW (window)' failed
[Thread 0x7fffc5fff6c0 (LWP 6965) exited]
[Thread 0x7fffc6bfe6c0 (LWP 6964) exited]
[Thread 0x7fffc73ff6c0 (LWP 6963) exited]
[Thread 0x7fffc7fff6c0 (LWP 6953) exited]
[Thread 0x7fffdcffb6c0 (LWP 6952) exited]
[Thread 0x7fffddffd6c0 (LWP 6950) exited]
[Thread 0x7fffde7fe6c0 (LWP 6949) exited]
[Thread 0x7fffdefff6c0 (LWP 6948) exited]
[Thread 0x7fffdfbff6c0 (LWP 6947) exited]
[Thread 0x7fffea0834c0 (LWP 6940) exited]
[Thread 0x7fffdd7fc6c0 (LWP 6951) exited]
[New process 6940]
[Inferior 1 (process 6940) exited normally]Offline
I tried installing wireshark and run it while trying to login.
I see a red line appearing on the wireshark capture but to me these are all cryptic numbers and I don't know how to interpret them
Offline
Anyway, wireshark log can be downloaded here
I started recording before pressing the "Add" account button in Citrix with the email field and stopped after I recevived the error message.
Last edited by ironhak (2026-03-21 13:29:09)
Offline
selfservice complains about free and double free, then gdk_x11_window_get_xid and then exits ("cleanly") - is the behavior the same on the other distros?
Did I ask you to try to https://wiki.archlinux.org/title/IPv6#D … ctionality ?
You're resoling an IPv4 and IPv6 for some AWS service, then talk to that via IPv6, then half a second later to google and then immediately another AWS server via IPv4.
The traffic is all encrypted, but a globally routable IPv6 is exposed.
Offline
This is what happens when I launch citrix workspace on EndeavorOS VM and I insert my work email (fresh .ICAClient profile folder):
On EndeavorOs ipv6 is not disabled, neither on my Arch machine, i.e. output of
sysctl net.ipv6.conf.all.disable_ipv6
sysctl net.ipv6.conf.default.disable_ipv6is 0 on both machines.
Here the wireshark from EndeavorOS.
Offline
The same command on arch just terminates w/ the free/gtk errors or did you run that w/o --icaroot ?
You don't have dri on vmware, I'm not sure whether this could even possibly be wayland but that might be a thing.
Offline
Fun enough: I installed a debian container trough distrobox, just for curiosity...
I installed citrix inside the debian container... aaaaand
And also still getting
free(): invalid next size (fast)
free(): invalid next size (fast)in terminal. At this point I truly believe there is something wrong on my main Arch machine
Edit: I tried even with Docker and the EXACT same thing happens!
Last edited by ironhak (2026-03-21 19:58:02)
Offline
You're not getting those free() errors in any of the VMs?
It's likely the glib/gtk version or some plugin…
[Thread 0x7fffc55a36c0 (LWP 6967) exited]
[Detaching after fork from child process 6968]
free(): invalid size
[Detaching after fork from child process 6978]
double free or corruption (!prev)Do you currently use the noglycin libraries on Arch?
Unfortunately you cannot "flatten" forked children in gdb… maybe we can at least figure what processes those are - broadsword time:
strace -f -o /tmp/citrix.strace /opt/Citrix/ICAClient/selfservice --icaroot …You might want to gzip /tmp/citrix.strace if it's really big.
Offline
On Post #32 there is a screenshot made inside a VM, as you see there are no free() errors.
On Arch I'm using only gdk-pixbuf2-noglycin (since it's the only library that was preventing the remote desktop to launch on EndeavorOS). But here we are not talking about problems with noglycin libraries, because on Endeavor os even without gdk-pixbuf2-noglycin I can login using my mail and SSO (it's just that once I'm in the Citrix Workspace I can't launch the remote desktop wohtout gdk-pixbuf2-noglycin).
On my Arch I can't use my mail at all to login, but using the server address (as shown before) works.
I'll upload strace soon.
Last edited by ironhak (2026-03-21 20:36:56)
Offline
Here you can check the strace.
Thanks
Offline
Wtf?
164638 execve("/home/seniorincognito/.pyenv/shims/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164638 execve("/home/seniorincognito/.pyenv/bin/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164638 execve("/usr/local/bin/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164638 execve("/usr/bin/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164638 execve("/bin/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164638 execve("/usr/local/sbin/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164638 execve("/usr/bin/site_perl/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164638 execve("/usr/bin/vendor_perl/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164638 execve("/usr/bin/core_perl/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164638 writev(2, [{iov_base="double free or corruption (!prev"..., iov_len=33}, {iov_base="\n", iov_len=1}], 2) = 34
…
164647 execve("/home/seniorincognito/.pyenv/shims/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164647 execve("/home/seniorincognito/.pyenv/bin/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164647 execve("/usr/local/bin/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164647 execve("/usr/bin/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164647 execve("/bin/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164647 execve("/usr/local/sbin/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164647 execve("/usr/bin/site_perl/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164647 execve("/usr/bin/vendor_perl/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164647 execve("/usr/bin/core_perl/dig", ["dig", "-t", "srv", "+short", "_citrixreceiver._tcp.mysteryorga"...], 0x7fff8f167d98 /* 62 vars */) = -1 ENOENT (No such file or directory)
164647 openat(AT_FDCWD, "/opt/Citrix/ICAClient/config/AuthManConfig.xml", O_RDONLY) = 26
164647 read(26, "<?xml version=\"1.0\" encoding=\"UT"..., 8191) = 5116
164647 read(26, "", 8191) = 0
164647 writev(2, [{iov_base="free(): invalid size", iov_len=20}, {iov_base="\n", iov_len=1}], 2) = 21It tries to run (and fails) dig, https://archlinux.org/packages/extra/x86_64/bind/
Last edited by seth (2026-03-22 18:34:11)
Offline
Wtf?
It tries to run (and fails) dig, https://archlinux.org/packages/extra/x86_64/bind/
Please, all download links I posted will expiry soon to protect my privacy. Can you please edit your post to remove the output of the strace? Thanks.
Offline
OH MY GOD THANK YOU. I installed bind and it now works using my email!!!!
Thanks thanks a lot
Offline
well, that's a bit surprising, as even if the citrix client itself would do some dns stuff relying on dig be available ... hmm
nonetheless this would mean that for some reason dig be available default on the other OS you tested
both quite strange things to assume
Offline
"We at citrix are too dumb to use 'import dns.resolver'"
@seniorincognito, obfuscated your shady employer and parents poor name choice ![]()
Please always remember to mark resolved threads by editing your initial posts subject - so others will know that there's no task left, but maybe a solution to find.
Thanks.
Offline
Hey! My name is not that bad
Offline
"We at citrix are too dumb to use 'import dns.resolver'"
off-topic: SAP does one better: "we build software not compliant to applicable laws - and when we're confrented we just reply with 'this process is not intented this way'" - i have to deal wjth such BS on a daily basis
Last edited by cryptearth (2026-03-22 21:42:50)
Offline