"Thomas B. Rücker"
2015-Feb-24 16:08 UTC
[Icecast] IceCast Server (2.3.2) Limits? Disconnections due to user and memory?
On 02/24/2015 03:30 PM, Dean Sauer wrote:> On Tue, 24 Feb 2015 12:56:11 +0000, Thomas B. R?cker wrote: > >> Have you modified any of the buffer or burst parameters in Icecast? Can >> you provide your icecast.xml (passwords removed) as an attachment? >> > The list seems to dislike xml so hopefully this won't get stripped. >You're posting through the gmane NNTP interface using yenc encoding. That somehow doesn't work at all in this combination. Something along the way just eats everything. Could you please email those files to me directly using my personal email address, as regular mail attachments? Thanks Thomas
"Thomas B. Rücker"
2015-Feb-25 18:47 UTC
[Icecast] IceCast Server (2.3.2) Limits? Disconnections due to user and memory?
On 02/24/2015 04:08 PM, "Thomas B. R?cker" wrote:> On 02/24/2015 03:30 PM, Dean Sauer wrote: >> On Tue, 24 Feb 2015 12:56:11 +0000, Thomas B. R?cker wrote: >> >>> Have you modified any of the buffer or burst parameters in Icecast? Can >>> you provide your icecast.xml (passwords removed) as an attachment? >>> >> The list seems to dislike xml so hopefully this won't get stripped. >> > You're posting through the gmane NNTP interface using yenc encoding. > That somehow doesn't work at all in this combination. Something along > the way just eats everything. > > Could you please email those files to me directly using my personal > email address, as regular mail attachments?I received the files off list, attaching them to this mail. The script is simple and ends with: /usr/bin/mail -s "$SUBJECT" "$TO" < $MESSAGE unset FEED I don't see how that could be a problem unless the mail command would for some reason stall. Neither does 2.3.2 have threadpool support as it was removed way earlier. The config doesn't look suspicious either. The particular values I was interested look to be within bounds. The only problem I spotted was a fallback definition: <fallback-mount>feed9_pri_mark.mp3</fallback-mount> Missing the prefix "/", but that might be due to how the file was "sanitized" from its original form. I'm still suspcious of the script execution. It might help to attach to those additional processes and either strace them or look at them with gdb. Thomas -------------- next part -------------- <icecast> <limits> <clients>400</clients> <sources>420</sources> <threadpool>15</threadpool> <queue-size>524288</queue-size> <client-timeout>30</client-timeout> <header-timeout>15</header-timeout> <source-timeout>60</source-timeout> <!-- If enabled, this will provide a burst of data when a client first connects, thereby significantly reducing the startup time for listeners that do substantial buffering. However, it also significantly increases latency between the source client and listening client. For low-latency setups, you might want to disable this. --> <burst-on-connect>1</burst-on-connect> <!-- same as burst-on-connect, but this allows for being more specific on how much to burst. Most people won't need to change from the default 64k. Applies to all mountpoints --> <burst-size>65535</burst-size> </limits> <authentication> <!-- Sources log in with username 'source' --> <source-password>SOURCEPASS</source-password> <!-- Relays log in username 'relay' --> <relay-password>RELAYPASS</relay-password> <!-- Admin logs in with the username given below --> <admin-user>admin</admin-user> <admin-password>ADMINPASS</admin-password> </authentication> <!-- set the mountpoint for a shoutcast source to use, the default if not specified is /stream but you can change it here if an alternative is wanted or an extension is required <shoutcast-mount>/live.nsv</shoutcast-mount> --> <!-- Uncomment this if you want directory listings --> <!-- <directory> <yp-url-timeout>15</yp-url-timeout> <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url> </directory> --> <!-- This is the hostname other people will use to connect to your server. It affects mainly the urls generated by Icecast for playlists and yp listings. --> <hostname>audio.somedomain.net</hostname> <!-- You may have multiple <listener> elements --> <listen-socket> <port>8000</port> <!-- <bind-address>127.0.0.1</bind-address> --> <!-- <shoutcast-mount>/stream</shoutcast-mount> --> </listen-socket> <!-- <listen-socket> <port>8001</port> </listen-socket> --> <!--<master-server>127.0.0.1</master-server>--> <!--<master-server-port>8001</master-server-port>--> <!--<master-update-interval>120</master-update-interval>--> <!--<master-password>hackme</master-password>--> <!-- setting this makes all relays on-demand unless overridden, this is useful for master relays which do not have <relay> definitions here. The default is 0 --> <!--<relays-on-demand>1</relays-on-demand>--> <!-- <relay> <server>127.0.0.1</server> <port>8001</port> <mount>/example.ogg</mount> <local-mount>/different.ogg</local-mount> <on-demand>0</on-demand> <relay-shoutcast-metadata>0</relay-shoutcast-metadata> </relay> --> <mount> <mount-name>/Feed1.ogg</mount-name> <on-disconnect>/etc/icecast2/feeddown4.sh</on-disconnect> <fallback-mount>/feed_down_silence.ogg</fallback-mount> <fallback-override>1</fallback-override> </mount> <mount> <mount-name>/Feed1</mount-name> <on-disconnect>/etc/icecast2/feeddown4.sh</on-disconnect> <fallback-mount>/feed1_down.mp3</fallback-mount> <fallback-override>1</fallback-override> </mount> <mount> <mount-name>/feed2</mount-name> <!-- <fallback-mount>/feedmove.mp3</fallback-mount> --> <on-disconnect>/etc/icecast2/feeddown4.sh</on-disconnect> <fallback-mount>/feed2_primark.mp3</fallback-mount> <fallback-override>1</fallback-override> </mount> <mount> <mount-name>/feed2.ogg</mount-name> <on-disconnect>/etc/icecast2/feeddown4.sh</on-disconnect> <fallback-mount>feed2_down_silence.ogg</fallback-mount> </mount> <mount> <mount-name>/feed3</mount-name> <on-disconnect>/etc/icecast2/kingkendown.sh</on-disconnect> <fallback-mount>/feed3_down.mp3</fallback-mount> <fallback-override>1</fallback-override> </mount> <mount> <mount-name>/feed4</mount-name> <on-disconnect>/etc/icecast2/kingkendown.sh</on-disconnect> <fallback-mount>/feed4_down.mp3</fallback-mount> <fallback-override>1</fallback-override> </mount> <mount> <mount-name>/feed5</mount-name> <!-- <intro>/Scancaster_Rostraver.mp3</intro> --> <!-- <on-disconnect>/etc/icecast2/feeddown2.sh</on-disconnect> --> <on-disconnect>/etc/icecast2/kingkendown.sh</on-disconnect> <fallback-mount>/feed5_down.mp3</fallback-mount> <fallback-override>1</fallback-override> </mount> <mount> <mount-name>/feed6</mount-name> <on-disconnect>/etc/icecast2/feeddown4.sh</on-disconnect> <fallback-mount>/feed6_down.mp3</fallback-mount> <fallback-override>1</fallback-override> </mount> <mount> <mount-name>/feed7</mount-name> <fallback-mount>/feed7_pri_mark.mp3</fallback-mount> <on-disconnect>/etc/icecast2/feeddown4usc.sh</on-disconnect> <fallback-override>1</fallback-override> <hidden>1</hidden> </mount> <mount> <mount-name>/feed8</mount-name> <on-disconnect>/etc/icecast2/feeddown4.sh</on-disconnect> <fallback-mount>/feed8_down.mp3</fallback-mount> <fallback-override>1</fallback-override> </mount> <mount> <mount-name>/feed9</mount-name> <on-disconnect>/etc/icecast2/feeddown4.sh</on-disconnect> <fallback-mount>feed9_pri_mark.mp3</fallback-mount> <fallback-override>1</fallback-override> </mount> <!-- Only define a <mount> section if you want to use advanced options, like alternative usernames or passwords <mount> <mount-name>/example-complex.ogg</mount-name> <username>othersource</username> <password>hackmemore</password> <max-listeners>1</max-listeners> <dump-file>/tmp/dump-example1.ogg</dump-file> <burst-size>65536</burst-size> <fallback-mount>/example2.ogg</fallback-mount> <fallback-override>1</fallback-override> <fallback-when-full>1</fallback-when-full> <intro>/example_intro.ogg</intro> <hidden>1</hidden> <no-yp>1</no-yp> <authentication type="htpasswd"> <option name="filename" value="myauth"/> <option name="allow_duplicate_users" value="0"/> </authentication> <on-connect>/home/icecast/bin/stream-start</on-connect> <on-disconnect>/home/icecast/bin/stream-stop</on-disconnect> </mount> <mount> <mount-name>/auth_example.ogg</mount-name> <authentication type="url"> <option name="mount_add" value="http://myauthserver.net/notify_mount.php"/> <option name="mount_remove" value="http://myauthserver.net/notify_mount.php"/> <option name="listener_add" value="http://myauthserver.net/notify_listener.php"/> <option name="listener_remove" value="http://myauthserver.net/notify_listener.php"/> </authentication> </mount> --> <fileserve>1</fileserve> <paths> <!-- basedir is only used if chroot is enabled --> <basedir>/usr/share/icecast2</basedir> <!-- Note that if <chroot> is turned on below, these paths must both be relative to the new root, not the original root --> <logdir>/var/log/icecast2</logdir> <webroot>/usr/share/icecast2/web</webroot> <adminroot>/usr/share/icecast2/admin</adminroot> <!-- <pidfile>/usr/share/icecast2/icecast.pid</pidfile> --> <!-- Aliases: treat requests for 'source' path as being for 'dest' path May be made specific to a port or bound address using the "port" and "bind-address" attributes. --> <!-- <alias source="/foo" dest="/bar"/> --> <!-- Aliases: can also be used for simple redirections as well, this example will redirect all requests for http://server:port/ to the status page --> <alias source="/" dest="/status.xsl"/> </paths> <logging> <accesslog>access.log</accesslog> <errorlog>error.log</errorlog> <!-- <playlistlog>playlist.log</playlistlog> --> <loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error --> <logsize>10000</logsize> <!-- Max size of a logfile --> <!-- If logarchive is enabled (1), then when logsize is reached the logfile will be moved to [error|access|playlist].log.DATESTAMP, otherwise it will be moved to [error|access|playlist].log.old. Default is non-archive mode (i.e. overwrite) --> <logarchive>1</logarchive> </logging> <security> <chroot>0</chroot> <!-- <changeowner> <user>nobody</user> <group>nogroup</group> </changeowner> --> </security> </icecast> -------------- next part -------------- A non-text attachment was scrubbed... Name: kingkendown_SANI.sh Type: application/x-shellscript Size: 489 bytes Desc: not available Url : http://lists.xiph.org/pipermail/icecast/attachments/20150225/e23587d2/attachment.bin