Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
Icecast-Server
Icecast-Server
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 94
    • Issues 94
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 1
    • Merge Requests 1
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • External Wiki
    • External Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Xiph.Org
  • Icecast-ServerIcecast-Server
  • Issues
  • #709

Closed
Open
Opened Sep 13, 2005 by Gitlab Bot@GitlabBotDeveloper

icecast with +- 1100 users eats 1 gig memory and crashes ...

Icecast 2.2.0 on Linux Fedora Core 1 (running on a dell 2650) uses about 1 giga of memory when 1100 users are connected and eventually crashes (icecast process stops) without meaningfull info in log or coredump files ...

The icecast front-end servers (to which users can connect) get their 44 mp3 sources from an icecast relay server (to which encoders or other servers can connect) using the master relay function. Additionally the front-ends use also the icecast fileserving. I will paste both the front-end and relay configuration files :

Front-end configuration file :

<icecast>

<limits>
<clients>5000</clients>
<sources>75</sources>
<threadpool>5</threadpool>
<queue-size>102400</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
</limits>

<authentication>
<source-password>foo</source-password>
<relay-password>foo</relay-password>
<admin-user>joe</admin-user>
<admin-password>foo</admin-password>
</authentication>

<hostname>fe1.foo.bar</hostname>

<listen-socket>
<port>8000</port>
<bind-address>A.B.29.12</bind-address>
</listen-socket>

<listen-socket>
<port>8000</port>
<bind-address>C.D.1.12</bind-address>
</listen-socket>

<master-server>A.B.29.51</master-server>
<master-server-port>8000</master-server-port>
<master-update-interval>120</master-update-interval>
<master-password>foo</master-password>

<fileserve>1</fileserve>

<paths>
<basedir>/usr/share/icecast</basedir>
<logdir>/var/log/icecast</logdir>
<webroot>/streampower/customers</webroot>
<adminroot>/usr/share/icecast/admin</adminroot>
<alias source="/radio1-mid" dest="/radio1-mid.mp3"/>
<alias source="/radio1-low" dest="/radio1-low.mp3"/>
<alias source="/radio1-high" dest="/radio1-high.mp3"/>
<alias source="/ra2vlb-mid" dest="/ra2vlb-mid.mp3"/>
<alias source="/ra2vlb-low" dest="/ra2vlb-low.mp3"/>
<alias source="/ra2vlb-high" dest="/ra2vlb-high.mp3"/>
<alias source="/ra2ant-mid" dest="/ra2ant-mid.mp3"/>
<alias source="/ra2ant-low" dest="/ra2ant-low.mp3"/>
<alias source="/ra2ant-high" dest="/ra2ant-high.mp3"/>
<alias source="/ra2lim-mid" dest="/ra2lim-mid.mp3"/>
<alias source="/ra2lim-low" dest="/ra2lim-low.mp3"/>
<alias source="/ra2lim-high" dest="/ra2lim-high.mp3"/>
<alias source="/ra2ovl-mid" dest="/ra2ovl-mid.mp3"/>
<alias source="/ra2ovl-low" dest="/ra2ovl-low.mp3"/>
<alias source="/ra2ovl-high" dest="/ra2ovl-high.mp3"/>
<alias source="/ra2wvl-mid" dest="/ra2wvl-mid.mp3"/>
<alias source="/ra2wvl-low" dest="/ra2wvl-low.mp3"/>
<alias source="/ra2wvl-high" dest="/ra2wvl-high.mp3"/>
<alias source="/klara-mid" dest="/klara-mid.mp3"/>
<alias source="/klara-low" dest="/klara-low.mp3"/>
<alias source="/klara-high" dest="/klara-high.mp3"/>
<alias source="/klaracontinuo-mid" dest="/klaracontinuo-mid.mp3"/>
<alias source="/klaracontinuo-low" dest="/klaracontinuo-low.mp3"/>
<alias source="/klaracontinuo-high" dest="/klaracontinuo-high.mp3"/>
<alias source="/stubru-mid" dest="/stubru-mid.mp3"/>
<alias source="/stubru-low" dest="/stubru-low.mp3"/>
<alias source="/stubru-high" dest="/stubru-high.mp3"/>
<alias source="/donna-mid" dest="/donna-mid.mp3"/>
<alias source="/donna-low" dest="/donna-low.mp3"/>
<alias source="/donna-high" dest="/donna-high.mp3"/>
<alias source="/donnahitbits-mid" dest="/donnahitbits-mid.mp3"/>
<alias source="/donnahitbits-low" dest="/donnahitbits-low.mp3"/>
<alias source="/donnahitbits-high" dest="/donnahitbits-high.mp3"/>
<alias source="/sporza-mid" dest="/sporza-mid.mp3"/>
<alias source="/sporza-low" dest="/sporza-low.mp3"/>
<alias source="/sporza-high" dest="/sporza-high.mp3"/>
<alias source="/rvi-mid" dest="/rvi-mid.mp3"/>
<alias source="/rvi-low" dest="/rvi-low.mp3"/>
<alias source="/rvi-high" dest="/rvi-high.mp3"/>
<alias source="/reserve-mid" dest="/reserve-mid.mp3"/>
<alias source="/reserve-low" dest="/reserve-low.mp3"/>
<alias source="/reserve-high" dest="/reserve-high.mp3"/>
</paths>

<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<loglevel>1</loglevel>
</logging>

<security>
<chroot>0</chroot>
</security>

</icecast>

Relay configuration file :

<icecast>
    <limits>
        <clients>1000</clients>
        <sources>100</sources>
        <threadpool>5</threadpool>
        <queue-size>102400</queue-size>
        <client-timeout>30</client-timeout>
        <header-timeout>15</header-timeout>
        <source-timeout>10</source-timeout>
    </limits>

    <authentication>
        <source-password>foo</source-password>
        <relay-password>foo</relay-password>
        <admin-user>joe</admin-user>
        <admin-password>foo</admin-password>
    </authentication>

    <hostname>relay.foo.bar</hostname>

    <listen-socket>
        <port>8000</port>
        <bind-address>A.B.29.51</bind-address>
    </listen-socket>

    <listen-socket>
        <port>8000</port>
        <bind-address>W.X.14.223</bind-address>
    </listen-socket>

    <listen-socket>
        <port>8000</port>
        <bind-address>Y.Z.112.16</bind-address>
    </listen-socket>

<!-- Radio 1 -->

    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/radio1-mid.mp3</mount>
        <local-mount>/radio1-mid.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/radio1-low.mp3</mount>
        <local-mount>/radio1-low.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/radio1-high.mp3</mount>
        <local-mount>/radio1-high.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>

<!-- Radio 2 Vlaams Brabant -->

    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/ra2vlb-mid.mp3</mount>
        <local-mount>/ra2vlb-mid.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/ra2vlb-low.mp3</mount>
        <local-mount>/ra2vlb-low.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/ra2vlb-high.mp3</mount>
        <local-mount>/ra2vlb-high.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>

<!-- Radio 2 Antwerpen -->

    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/ra2ant-mid.mp3</mount>
        <local-mount>/ra2ant-mid.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
                                                                                                                        
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/ra2ant-low.mp3</mount>
        <local-mount>/ra2ant-low.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/ra2ant-high.mp3</mount>
        <local-mount>/ra2ant-high.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>

<!-- Radio 2 Limburg -->

    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/ra2lim-mid.mp3</mount>
        <local-mount>/ra2lim-mid.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/ra2lim-low.mp3</mount>
        <local-mount>/ra2lim-low.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/ra2lim-high.mp3</mount>
        <local-mount>/ra2lim-high.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>

<!-- Radio 2 Oost Vlaanderen -->
    
     <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/ra2ovl-mid.mp3</mount>
        <local-mount>/ra2ovl-mid.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/ra2ovl-low.mp3</mount>
        <local-mount>/ra2ovl-low.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/ra2ovl-high.mp3</mount>
        <local-mount>/ra2ovl-high.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>

<!-- Radio 2 West Vlaanderen -->

    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/ra2wvl-mid.mp3</mount>
        <local-mount>/ra2wvl-mid.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/ra2wvl-low.mp3</mount>
        <local-mount>/ra2wvl-low.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/ra2wvl-high.mp3</mount>
        <local-mount>/ra2wvl-high.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>

<!-- Klara -->

    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/klara-mid.mp3</mount>
        <local-mount>/klara-mid.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/klara-low.mp3</mount>
        <local-mount>/klara-low.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/klara-high.mp3</mount>
        <local-mount>/klara-high.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>

<!-- Klara Continuo -->

    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/klaracontinuo-mid.mp3</mount>
        <local-mount>/klaracontinuo-mid.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/klaracontinuo-low.mp3</mount>
        <local-mount>/klaracontinuo-low.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/klaracontinuo-high.mp3</mount>
        <local-mount>/klaracontinuo-high.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>

<!-- Studio Brussel -->

    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/stubru-mid.mp3</mount>
        <local-mount>/stubru-mid.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/stubru-low.mp3</mount>
        <local-mount>/stubru-low.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/stubru-high.mp3</mount>
        <local-mount>/stubru-high.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>

<!-- Donna -->

    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/donna-mid.mp3</mount>
        <local-mount>/donna-mid.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/donna-low.mp3</mount>
        <local-mount>/donna-low.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/donna-high.mp3</mount>
        <local-mount>/donna-high.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>

<!-- Donna Hit Bits -->
    
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/donnahitbits-mid.mp3</mount>
        <local-mount>/donnahitbits-mid.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/donnahitbits-low.mp3</mount>
        <local-mount>/donnahitbits-low.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/donnahitbits-high.mp3</mount>
        <local-mount>/donnahitbits-high.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>

<!-- Sporza -->

    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/sporza-mid.mp3</mount>
        <local-mount>/sporza-mid.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/sporza-low.mp3</mount>
        <local-mount>/sporza-low.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/sporza-high.mp3</mount>
        <local-mount>/sporza-high.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>

<!-- Radio Vlaanderen Internationaal -->
    
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/rvi-mid.mp3</mount>
        <local-mount>/rvi-mid.mp3</local-mount>
        <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/rvi-low.mp3</mount>
        <local-mount>/rvi-low.mp3</local-mount>
        <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/rvi-high.mp3</mount>
        <local-mount>/rvi-high.mp3</local-mount>
        <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
    </relay>

<!-- Reserve -->

<relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/reserve-mid.mp3</mount>
        <local-mount>/reserve-mid.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/reserve-low.mp3</mount>
        <local-mount>/reserve-low.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>E.F.10.110</server>
        <port>8000</port>
        <mount>/reserve-high.mp3</mount>
        <local-mount>/reserve-high.mp3</local-mount>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>

<!-- Extra -->
                                                                                                         
    <relay>
        <server>G.H.88.79</server>
        <port>80</port>
        <mount>/high.ogg</mount>
        <local-mount>/urgent-high.ogg</local-mount>
	<hidden>1</hidden>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>
    <relay>
        <server>G.H.88.79</server>
        <port>80</port>
        <mount>/low.ogg</mount>
        <local-mount>/urgent-low.ogg</local-mount>
	<hidden>1</hidden>
        <relay-shoutcast-metadata>1</relay-shoutcast-metadata>
    </relay>

    <fileserve>0</fileserve>

    <paths>
        <basedir>/usr/share/icecast</basedir>
        <logdir>/var/log/icecast</logdir>
        <webroot>/usr/share/icecast/web</webroot>
        <adminroot>/usr/share/icecast/admin</adminroot>
    </paths>

    <logging>
        <accesslog>access.log</accesslog>
        <errorlog>error.log</errorlog>
      	<loglevel>1</loglevel>
    </logging>

    <security>
        <chroot>0</chroot>
    </security>
</icecast>

Could the crash be caused by a memory leak ?

Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: xiph/icecast-server#709