Kodi Community Forum

Full Version: XBMC Web Server very unreliable in Linux...
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi, I've just installed xbmc 9.11 under arch linux on an x86_64 system with vdpau. Everything works perfectly, except for the remote admin web server (tried port 8080 and port 9000).

If I go to http://xbmc:8080 from firefox, I get most of the interface; other bits (e.g. random PNGs) seem to just time out and are not returned to the browser. I can see this in firebug - some requests for images just hang. I've tried other browsers (konqueror) with the same result. Occasionally it fails to load the HTML, or the CSS style, so its not just the PNGs that are affected.

Also, the XBMC remote for android works, but tends to timeout a lot, I'm guessing for the same reason (e.g. downloading album art for ~300 albums tends think it is timing out constantly).

This only affects XBMC's web server; an ssh connection to the same machine is unaffected by any delays or timeouts, so it is not a network issue. There are no firewalls between me and it.

I'm wondering if this is some interaction between the libGoAhead web server and linux: before I start diving into the code, has anyone seen this before?
iirc there was lots of problems with the web server not playing nicely with 64bit - may be related and worth a search...
Thanks! I see what you mean - this one http://forum.xbmc.org/showthread.php?tid=58131 sounds like the same thing for the iphone interface - random disconnects.

I see there have been some 64bit fixes for libGoAhead already http://trac.xbmc.org/ticket/4970; praps something has been missed - I'll have look.
FYI, libgoahead is ready to be nuked and replaced soon.
Thats good to know, but I kinda want it to work ASAP, so I'll keep digging for the moment.

Adding tracing shows that although all the HTTP connections are accepted, not all of them are triggered to receive data and simply time out.

I suspect something is wrong with the setup of the FDs array in the select() code, will have a look tomorrow.
... and there's the problem almost instantly: Its trying to resize an fd_set dynamically to the number of fds supplied.

According to the manpage (for glibc), you don't do that; fd_set is a fixed size buffer.