<html><body><div style="color:#000; background-color:#fff; font-family:lucida console, sans-serif;font-size:13px"><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">Package: nx-libs</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">Version: 3.5.0.30</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">Distro: Gentoo ~amd64, fully updated.</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">x2goclient: 4.0.3.2</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">x2server: 4.0.1.19</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">nx-libs (package nx in gentoo): 3.5.0.30</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">fontsproto: 2.1.3</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">libXfont: 1.5.1</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">xorg-server: 1.17.1</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">All font packages for xorg-x11 are installed and fonts.dir and fonts.alias files are correctly present and readable.</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">Detailed troubleshooting:  https://forums.gentoo.org/viewtopic-p-7755384.html</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style=""><br class="" style=""></div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">The client connects and the server spawns the nxagent but then the session is unexpectedly terminated. Looking at the server side log, we see:</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style=""><br class="" style=""></div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">Info: Using shared memory parameters 1/1/0/0K. </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">Info: Using alpha channel in render extension. </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">Info: Not using local device configuration changes. </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">keyboard file created </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">Error: Aborting session with 'Could not open default font 'fixed''. </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">Session: Aborting session at 'Tue May 26 23:22:22 2015'. </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">Session: Session aborted at 'Tue May 26 23:22:22 2015'. </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style=""><br class="" style=""></div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">I ran the nxagent through strace -ff -tt -v and its clear that it loads all fonts (at least it finds all font.alias and reads them fine) correctly. None of the children it spawns run into any issues with missing files or folders. The snippet below (you can read longer strace on gentoo forum post):</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style=""><br class="" style=""></div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">22:11:10.608011 open("/usr/share/fonts/100dpi/fonts.alias", O_RDONLY) = 4 </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">22:11:10.608108 fstat(4, {st_mode=S_IFREG|0644, st_size=3154, ...}) = 0 </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">22:11:10.608217 fstat(4, {st_mode=S_IFREG|0644, st_size=3154, ...}) = 0 </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">22:11:10.608308 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f29ca5a9000 </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">22:11:10.608398 read(4, "lucidasans-bolditalic-8 -b&h-luc"..., 4096) = 3154 </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">22:11:10.608496 brk(0x1f01000)          = 0x1f01000 </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">22:11:10.608688 read(4, "", 4096)       = 0 </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">22:11:10.608781 close(4)                = 0 </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">22:11:10.608868 munmap(0x7f29ca5a9000, 4096) = 0 </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">22:11:10.609148 write(2, "Error: Aborting session with '", 30Error: Aborting session with ') = 30 </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">22:11:10.609277 write(2, "Could not open default font 'fix"..., 35Could not open default font 'fixed') = 35 </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">22:11:10.609395 write(2, "'.\n", 3'. </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">)     = 3 </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style=""><br class="" style=""></div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">Looking at the code, the origin of the error is:</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style=""><br class="" style=""></div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">        InitFonts(); </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">        if (loadableFonts) { </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">            SetFontPath(0, 0, (unsigned char *)defaultFontPath, &error); </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">        } else { </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">            if (SetDefaultFontPath(defaultFontPath) != Success) </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">                ErrorF("failed to set default font path '%s'", </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">                        defaultFontPath); </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">        } </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">        if (!SetDefaultFont(defaultTextFont)) </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">            FatalError("could not open default font '%s'", defaultTextFont); </div><div id="yui_3_16_0_1_1433102414740_21422" class="" style=""><br class="" style=""></div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">SetDefaultFont() is failing. Looking at that function (text below from IRC channel):</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style=""><br class="" style=""></div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:57] <devsk> SetDefaultFont(char *defaultfontname)</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:57] <devsk> {</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:57] <devsk>     int         err;</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:57] <devsk>     FontPtr     pf;</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:57] <devsk>     XID         fid;</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:57] <devsk>     fid = FakeClientID(0);</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:57] <devsk>     err = OpenFont(serverClient, fid, FontLoadAll | FontOpenSync,</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:57] <devsk>                    (unsigned) strlen(defaultfontname), defaultfontname);</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:57] <devsk>     if (err != Success)</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:57] <devsk>         return FALSE;</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:57] <devsk>     pf = (FontPtr) LookupIDByType(fid, RT_FONT);</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:57] <devsk>     if (pf == (FontPtr) NULL)</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:57] <devsk>         return FALSE;</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:57] <devsk>     defaultFont = pf;</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:57] <devsk>     return TRUE;</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:57] <devsk> I have a feeling that LookupIDByType() is the one failing</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:58] <devsk> OpenFont() has error paths for malloc failures and none of those looked like plausible</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:58] <devsk> LookupIDByType() was obsoleted quite a while ago in xorg code</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:59] <devsk> nx-X11 of course is hanging onto old code</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[19:59] <devsk> is it possible that there is some interaction there with newer libXfont which is making that function fail now</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[20:00] <devsk> unfortunately for me, its not possible to go back to libXfont-1.4. There is a bunch of crap which needs to be downgraded as well. And dependency hell breaks loose if I try that</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">[20:00] <devsk> above snippet is in ./programs/Xserver/dix/dixfonts.c</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style=""><br class="" style=""></div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">I did this experiment for localhost connection to avoid differences in client and server packages (which is not the case anyway because for me both client and remote server are Gentoo ~amd64 updated systems).</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style=""><br class="" style=""></div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">Anybody got any ideas of why this is happening? Is it really about the newer fontsproto and libXfont not being compatible with nx-libs?</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style=""><br class="" style=""></div><div id="yui_3_16_0_1_1433102414740_21422" class="" style="">Thanks,</div><div id="yui_3_16_0_1_1433102414740_21422" dir="ltr" class="" style="">devsk</div><div id="yui_3_16_0_1_1433102414740_21422" class="" style=""><br class="" style=""></div></div></body></html>