| View previous topic :: View next topic |
| Author |
Message |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Mon Jul 13, 2009 2:19 pm Post subject: |
|
|
The timer code for the lock is not win32 specific now, but will only apply if an environment variable is set (it was the easier approach without changing more of the internal api).
ICE_MUTEX_ABORT is the name of the variable, the value can be anything currently, only its existence is checked for. Obviously if the abort is triggered then let me know as it should not happen.
karl. |
|
| Back to top |
|
 |
robertut
Joined: 31 Aug 2007 Posts: 156
|
Posted: Mon Jul 13, 2009 2:43 pm Post subject: |
|
|
| You mention here about a TCP send buffer option (<so-sndbuf>). Is it in kh10? How does it affect streaming from icecast to 1000's of listeners? |
|
| Back to top |
|
 |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Mon Jul 13, 2009 4:00 pm Post subject: |
|
|
It is in kh10. It tells the kernel to use the specified size memory for each outgoing listener connection. Most unix-type systems use TCP window scaling so the send buffer for each listener increases to suit the link to that listener. However a problem did show up for at least certain versions of windows which fixed the buffer to something small no matter what registry options were set, this setting allows you to override that. There may be other cases where scaling is not wanted so this option is generic.
The downside is that because it is fixed, that means all listeners will be allocated this size buffer even if they would never need it. So you could have a lot of memory allocated, and this memory is in the OS not within icecast. As a general measure it will be listeners * buffer size
karl. |
|
| Back to top |
|
 |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Sat Jul 18, 2009 1:51 am Post subject: |
|
|
kh11 is up. It's a bugfix update so if you are using kh10 then you should update.
fix busy looping caused by truncation on 32bit setups.
avoid possible deadlock between file release and open.
relay client handles were not being cleaned up fully.
karl. |
|
| Back to top |
|
 |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Tue Jul 28, 2009 2:49 pm Post subject: |
|
|
kh12 is up. smaller changes this time, cleaning up issues raised from the last couple of releases. Update is recommended
I've also cleaned up some win32 issues, gui closing on escape is no more, icecast as a windows service works better. I've updated the libogg in the build as well.
karl. |
|
| Back to top |
|
 |
robertut
Joined: 31 Aug 2007 Posts: 156
|
Posted: Fri Jul 31, 2009 8:18 pm Post subject: |
|
|
Experiencing locks again with Win32 kh12. Thank God it restarts automatically - what a relief. kh10 worked flawlessly since.
I enabled debug logging on kh12 - I'll send you them when I have something. |
|
| Back to top |
|
 |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Fri Aug 28, 2009 8:33 pm Post subject: |
|
|
kh13 is up. There was a possible crash bug in kh12 left on from some debugging.
The long lock held abort can be enabled by setting and environment variable ICE_MUTEX_ABORT to 1. This should not be needed generally and will make the process do a little more work but if it does hang for a number of seconds then icecast will terminate just let me know what the last few lines in the log are.
There's also a few fixes for certain cases with fallbacks that might of caused problems like fallback loops, I've also changed the timing for client processing which should improve things.
karl. |
|
| Back to top |
|
 |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Mon Sep 07, 2009 3:27 pm Post subject: |
|
|
kh15 is up, I had just uploaded a kh14 when a lock bug report came in, so if you did get a kh14 then update. The changes from kh13 are
. handle restarts of relays better now, especially if you have changed them over reload. They also now take a timeout parameter to limit how long to wait for a connect to succeed (oreviously it was 10 seconds).
. You can use /admin/stats,listclients,killclient with a mount arg that refers to a file, although you may not get as much as a source but it does allow to to see how many listeners are on a fallback file.
. lock bug when retrieving stats, kh13 may also be affected.
. A fallback file now loops again.
. various internal code cleanups.
karl |
|
| Back to top |
|
 |
Y3K-Daniel
Joined: 24 Sep 2007 Posts: 9
|
Posted: Wed Sep 16, 2009 2:23 pm Post subject: |
|
|
Hey Karl,
I am using kh12 currently, and have found that metadata isnt getting through. I have been in the logs and its coming up 401 (authentication required). The config hasnt changed really since I ran an icecast server the same way and it accepted the metadata updates.
I am using Winamp + Shoutcast DSP in my test setup, with kh12. Authentication for source and listeners are passed off to a remote webserver to verify with a database.
Am I missing something, or is it a bug?
Config file:
| Code: |
<icecast>
<server_id>#STATIONNAME# Streaming Server v2.0</server_id>
<location>Worldwide</location>
<admin>staff@#STATIONNAME#</admin>
<limits>
<clients>100</clients>
<sources>2</sources>
<queue-size>524288</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<burst-size>65535</burst-size>
<max-bandwidth>10M</max-bandwidth>
</limits>
<authentication>
<source-password>#SOURCEPASSWORD-UNUSED</source-password>
<relay-password>#RELAYPASSWORD-UNUSED#</relay-password>
<admin-user>#ADMINNAME#</admin-user>
<admin-password>#VERYLONGPASSWORDHERE#</admin-password>
</authentication>
<hostname>#SERVERHOSTNAME#</hostname>
<listen-socket>
<port>8000</port>
<bind-address>#SERVERIP#</bind-address>
<shoutcast-mount>/listen</shoutcast-mount>
</listen-socket>
<mount>
<mount-name>/listen</mount-name>
<max-listeners>100</max-listeners>
<max-bandwidth>10000k</max-bandwidth>
<file-seekable>0</file-seekable>
<stream-name>#STATIONNAME#</stream-name>
<stream-url>#STATIONWEBSITE#</stream-url>
<genre>Various</genre>
<bitrate>128</bitrate>
<burst-size>65536</burst-size>
<fallback-mount>/fallback.mp3</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>1</fallback-when-full>
<intro>/intro.mp3</intro>
<max-listener-duration>3600</max-listener-duration>
<hidden>1</hidden>
<authentication type="url">
<option name="handlers" value="3" />
<option name="stream_auth" value="http://#APISERVERURL#/radio/api/" />
<option name="mount_add" value="http://#APISERVERURL#/radio/api/" />
<option name="mount_remove" value="http://#APISERVERURL#/radio/api/" />
<option name="listener_add" value="http://#APISERVERURL#/radio/api/" />
<option name="listener_remove" value="http://#APISERVERURL#/radio/api/" />
</authentication>
</mount>
<mount>
<mount-name>/fallback.mp3</mount-name>
<file-seekable>0</file-seekable>
<authentication type="url">
<option name="handlers" value="3" />
<option name="listener_add" value="http://#APISERVERURL#/radio/api/" />
<option name="listener_remove" value="http://#APISERVERURL#/radio/api/" />
</authentication>
</mount>
<fileserve>1</fileserve>
<shoutcast-mount>/listen</shoutcast-mount>
<paths>
<basedir>/home/icecast/icecast2</basedir>
<logdir>/home/icecast/icecast2/logs</logdir>
<webroot>/home/icecast/icecast2/web</webroot>
<adminroot>/home/icecast/icecast2/admin</adminroot>
<pidfile>icecast.pid</pidfile>
<alias source="/listen.pls" dest="/listen" />
<alias source="/listen.mp3" dest="/listen" />
<alias source="/" dest="index.html" />
</paths>
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<accesslog_ip>1</accesslog_ip>
<playlistlog>playlist.log</playlistlog>
<loglevel>4</loglevel>
<logsize>10000</logsize>
</logging>
<security>
<chroot>0</chroot>
</security>
</icecast>
|
Log Entry (relating to metadata):
| Code: |
#SOURCEIP# - - [16/Sep/2009:15:01:20 +0100] "GET /admin.cgi ICY/1.0" 401 130 "-" "ShoutcastDSP (Mozilla Compatible)" 0
#SOURCEIP# - - [16/Sep/2009:15:04:53 +0100] "GET /admin.cgi ICY/1.0" 401 130 "-" "ShoutcastDSP (Mozilla Compatible)" 1
#SOURCEIP# - - [16/Sep/2009:15:09:52 +0100] "GET /admin.cgi ICY/1.0" 401 130 "-" "ShoutcastDSP (Mozilla Compatible)" 1
#SOURCEIP# - - [16/Sep/2009:15:15:37 +0100] "GET /admin.cgi ICY/1.0" 401 130 "-" "ShoutcastDSP (Mozilla Compatible)" 1
#SOURCEIP# - - [16/Sep/2009:15:18:49 +0100] "GET /admin.cgi ICY/1.0" 401 130 "-" "ShoutcastDSP (Mozilla Compatible)" 0
|
Some details were masked, but otherwise the config is as used |
|
| Back to top |
|
 |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Wed Sep 16, 2009 8:38 pm Post subject: |
|
|
probably a bug, I've just checked kh15b+unrelated changes (stream auth) with ices0 in icy mode and it's ok, does the shoutcast dsp do anything different?
karl. |
|
| Back to top |
|
 |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Tue Sep 29, 2009 2:51 am Post subject: |
|
|
kh16 is up. If using url auth, another bug was identified in 15b
. You can configure a fallback to file now so that new listeners will start on that file if the stream is not present, if you have a limit-rate specified. If not then the listeners will get a 404.
. intro data can be passed back from listener_add.
karl. |
|
| Back to top |
|
 |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Thu Oct 01, 2009 8:23 pm Post subject: |
|
|
I've uploaded a 16b. 16a included a fix for flash clients, 16b has a fix for memory corruption on a failed relay.
karl. |
|
| Back to top |
|
 |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Thu Oct 08, 2009 2:44 pm Post subject: |
|
|
kh17 is up. No new features, but there are a couple of bug fixes for potential memory corruption in there.
karl. |
|
| Back to top |
|
 |
gouranga
Joined: 17 Oct 2009 Posts: 3
|
Posted: Sat Oct 17, 2009 1:10 pm Post subject: |
|
|
hello, karlH.
compiled sources from svn, started a daemon, but icecast doesn't work — when i open webroot, it loads-loads-loads and opens only white screen.
logs are saying somthing strange is happen:
| Code: |
[2009-10-17 17:02:58] INFO main/main Icecast 2.3.2-kh17 server started
[2009-10-17 17:02:58] WARN main/main YP server handling has been disabled
[2009-10-17 17:02:58] EROR slave/slave_initialize streamlist request disabled, rebuild with libcurl if required
[2009-10-17 17:02:58] INFO slave/slave_startup max file descriptors 1024 (hard limit 1024)
[2009-10-17 17:02:58] INFO connection/connection_thread connection thread started
[2009-10-17 17:02:58] INFO connection/get_ssl_certificate No SSL capability on any configured ports
[2009-10-17 17:02:58] INFO connection/connection_setup_sockets listener socket on port 8000
[2009-10-17 17:02:58] INFO connection/connection_setup_sockets 1 listening sockets setup complete
[2009-10-17 17:03:18] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:18] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:19] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:19] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:20] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:20] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:21] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:21] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:22] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:22] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:23] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:23] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:24] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:24] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:25] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:25] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:26] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:26] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:27] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:27] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:28] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:28] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:29] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:29] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:30] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:30] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:31] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:31] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:32] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:32] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:33] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:33] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:34] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:34] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:35] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:35] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:36] WARN connection/accept_client accept() failed with error 92: Protocol not available
[2009-10-17 17:03:36] WARN connection/accept_client accept() failed with error 92: Protocol not available |
|
|
| Back to top |
|
 |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Sat Oct 17, 2009 3:00 pm Post subject: |
|
|
haven't seen that one before. The only difference I see between the tarball and svn is an extra check, nothing that would explain that error message.
If the tarball is ok then it's probably down to the extra code I have in the net subtree masking another issue like an FD limit failing accept.
karl. |
|
| Back to top |
|
 |
|