11

After changing the hostname on 14.04 I cannot launch unetbootin, attempting to launch the application from bash returns:

_IceTransSocketUNIXConnect: Cannot connect to non-local host OLDHOSTNAME _IceTransSocketUNIXConnect: Cannot connect to non-local host OLDHOSTNAME Qt: Session management error: Could not open network socket

Output from hostname cat /etc/hostname and cat /etc/hosts all confirm that the hostname is correct. I've also rebooted the system since making the change to confirm everything loaded with the new settings.

I am at a loss, any help is greatly appreciated! Also, could anyone provide some background on what IceTransSocketUNIXConnect is and how it works? Is it anything like Winsock?

Oatlad
  • 111

1 Answers1

7

It appears this error stems from the ~/.ICEauthority file. You can use the command iceauth list list your entries. In my case the old hostname included localhost, replace this with your old hostname.

e.g. iceauth list | grep localhost:

XSMP "" unix/localhost@localdomain:/tmp/.ICE-unix/2640 MIT-MAGIC-COOKIE-1 7035f3aebe650bd72315b76819267a9d
XSMP "" local/localhost@localdomain:@/tmp/.ICE-unix/2640 MIT-MAGIC-COOKIE-1 abe16eba34a1cf69087aff88bdd14a1a
ICE "" local/localhost@localdomain:@/tmp/.ICE-unix/2640 MIT-MAGIC-COOKIE-1 1e69a0d48b1f1375167c79bffbbfa06e
ICE "" unix/localhost@localdomain:/tmp/.ICE-unix/2640 MIT-MAGIC-COOKIE-1 f91ab2525bf0000159161db41df1aa0c

2 options:

  1. Simple - Delete the ~/.ICEauthority file and restart machine or display manager. ~/.ICEauthority will be regenerated with your new hostname.
  2. Advanced - Use iceauth remove to remove the bad entries and then restart your display manager (14.04 default = lightdm). Just copy paste the line from your grep above into the examples below, it removes both XSMP and ICE protocol entries.
    • iceauth -v remove netid=unix/localhost@localdomain:/tmp/.ICE-unix/2640
    • iceauth -v remove netid=local/localhost@localdomain:@/tmp/.ICE-unix/2640
    • iceauth list | grep localhost # Confirm they are removed.
    • sudo restart lightdm # @see this answer for more details or if this doesn't work for you

Further reading from man iceauth:

list

List (print) entries in the authority file. You may specify optional modifiers as below to specify which entries are listed.

list [ protocol_name ] [ protocol_data ] [ netid ] [ authname ]

remove

Remove entries from the authority file.

remove [ protocol_name ] [ protocol_data ] [ netid ] [ authname ]

sources:
https://superuser.com/questions/714015/accidentally-deleted-iceauthority-and-xauthority-files
https://codeyarns.com/2015/03/23/cannot-connect-to-non-local-host-error/
https://linux.die.net/man/1/iceauth
How to restart X Window Server from command line?

Elijah Lynn
  • 3,828