Segmentation Fault on freshly upgraded Debian Squeeze x86

Steamcast is a stand alone server that combines the features of SHOUTcast and Icecast2 and more to make one mega awesome server.
Post Reply
Posts: 11
Joined: Tue Feb 19, 2008 5:04 am

Segmentation Fault on freshly upgraded Debian Squeeze x86

Post by 2kj » Mon Jun 27, 2011 1:54 pm


i'm getting a segfault. Now since the upgrade from etchnhalf, where steamcast was running fine, to lenny and then squeeze last thursday im getting segfault every approx 1-2 days . system is 32 bit - x86 mode.
Linux xxxx 2.6.32-5-686 #1 SMP Wed May 18 07:08:50 UTC 2011 i686 GNU/Linux

segfaults logged were:

Jun 25 04:30:07 loftxxxx kernel: [126716.192650] steamcast[7970]: segfault at 80cb000 ip b77b3b16 sp b571abc8 error 4 in[b773f000+140000]

Jun 26 18:39:40 loftxxxx kernel: [264053.301342] steamcast[576]: segfault at 80cb000 ip b777cb16 sp b56e3c18 error 4 in[b7708000+140000]

help would be very appreciated since im no linux pro :)
im sure something can be done here. maybe another libc für steamcast?

nothing special in the logfile. it happened once when the backup stream was active, and once when backup and main stream were active.
the status.xml requests are wanted and did on debian etchnhalf not affect stability of steamcast, so i guess its not that..
the restart of steamcast is done through a batch script. thats why it loads again on 18:39:41

<06/26/[email protected]:39:23> [dest] <xx.xx.xx.xx> [200] (OK) "Request: GET /admin/status.xml" {UA: Mozilla}
<06/26/[email protected]:39:29> [dest] <xx.xx.xx.xx> [200] (OK) "Request: GET /admin/status.xml" {UA: Mozilla}
<06/26/[email protected]:39:34> [dest] <xx.xx.xx.xx> [200] (OK) "Request: GET /admin/status.xml" {UA: Mozilla}
<06/26/[email protected]:39:40> [dest] <xx.xx.xx.xx> [200] (OK) "Request: GET /admin/status.xml" {UA: Mozilla}
<06/26/[email protected]:39:41> [serv] Configuration loaded from ./steamcast.conf
<06/26/[email protected]:39:41> [serv] Mime types file loaded
<06/26/[email protected]:39:41> [serv] WARNING: could not be loaded, no vips will be loaded
<06/26/[email protected]:39:41> [serv] Ban file loaded
<06/26/[email protected]:39:41> [serv] PID: 20266
<06/26/[email protected]:39:41> [serv] Listening to ANY:8500 for incoming client connections...
<06/26/[email protected]:39:41> [serv] Listening to ANY:8501 for incoming source connections...
<06/26/[email protected]:39:41> [serv] Starting Thread pool of 5 threads...
<06/26/[email protected]:39:41> [serv] Listening to 8500 for incoming stat connections...

config file... we are using this configuration since 3 years and i guess its not the config, but for completness of this report, here its:

Code: Select all

; Steamcast Configuration File
; ================================
; This is the default Steamcast server configuration file, feel free to use
; it as a template for your server's configuration.  All lines beginning with ;
; or blank are ignored by the server's configuration parser.

; Server Configuration
; ====================

; PortBase [*8000]: The port that Steamcast will listen for connections on, generally it is
; acceptable to just leave this at the default, change it if you use port
; 8000 and/or 8001 for some other server.  Ports < 1024 are reserved, so try to
; stay above that.

; MaxUser: The maximum amount of streaming clients Steamcast should
; handle, this is a global setting for all multimedia connections.  Set this
; to a smart number.  Setting this too high could cause your network connection
; to be flooded and cause real problems for all end users.  In 0.9.7 this configuration
; option became optional.  Set this to set hard limits on max listener counts, otherwise
; cumulative SourceUserMax will be used to determine the overall UserMax.

; MaxBandwidth: This is the maximum amount of out-going bandwidth allowed by Steamcast in units
; of kilo-bits per second.  This is a soft limit so it is possible for the server to exceed this
; limit due to the average bandwidth system some enforcement latency may occur as well.  A setting
; of zero disables this feature.
; MaxBandwidth=0

; IPMaxUser [*0]: The maximum amount of streaming clients Steamcast should
; handle per IP, this is a global setting for all multimedia connections.
; A setting of 0 disables this feature.
; IPMaxUser=0

; LogFile [None|*steamcast.log]: The location you would like Steamcast to store
; it's log file, setting this to 'None' or blank disables this feature.  You can use use variable
; templates to control the name of the log in real time.  View the Readme for a full list of 
; variables available.  Ex: %m-%d-%Y-steamcast.log to have steamcast create a different log
; every day.

; MimeFile [None|*mime.types]: The location of your mime types file.  The mime types file is critical
; in the implementation and usage of the on-demand capabilities of the server.  This file also
; enables steamcast's auto extension feature so that the server will assign the correct extension
; to your mount points based on the audio format/codec in use.

; BanFile [None|*steamcast.ban]: Use this variable to specify the location of your ban file.  The ban
; file contains information about pre-existing bans.  If the ban file does not exist, steamcast will
; attempt to create it.  A setting of None disables saving or loading of ban information.

; VipFile [None|*]: The file used to load pre-existing vip information.  VIP's are IPs
; and users designated as having a higher privilege level then average users.  A setting of None
; disables saving or loading of ban information.

; ScreenLog [*Yes|No]: Setting this to Yes will allow steamcast to output log information
; the the screen in CLI environments.

; RealtimeLog [*Yes|No]: Setting this to Yes will allow steamcast to output Realtime statistical
; information to the screen in CLI environments.

; YPLog [*Yes|No]: Enable the logging of YP Touches.  This setting has no effect on
; YP Errors, or YP Add or YP Removes.  It will only hide logging of Successful touches
; when set to No.

; PidFile [None|*]: The file location you would like Steamcast to store
; it's PID or Process ID, setting this to 'None' or blank disables this feature.
; Regardless of this setting, Process ID's will be stored in the Log on each startup.

; NameLookups [Yes|*No]: Setting NameLookup to Yes will have Steamcast
; do a reverse dns lookup on each connection made to the server.  High Traffic servers
; should leave this setting disabled until I can come up with a better threading method.

; ShowLastSongs [*20]: This setting tells steamcast how many stream related meta updates
; to store in history.  This capability was added for compatibility with reporting agencies.
; A Setting of 1 through 50 is acceptable.

; ClientTimeout [*30]: Number of seconds a listener/viewer should stay connected while no source
; exists for thier mount.

; User Configuration
; ==================

; AdminUser & Admin Pass: This is the credentials that allow full control of the server remotely
; so be very careful in determining what to put here.  Essentially with these settings
; a user would be able to connect to the server using a CNTRL application and use
; the server as if they are sitting in front of it.  Please make sure that admin passwords are
; different from mount passwords in SHOUTcast compatibility mode.  Encoders passwords take precedence
; in the event they are, this is for compatibility and security reasons.


; Source Configuration
; ====================

; Source Configuration
; ====================
; Each source that you wish to allow on the server needs to be configured
; here first.  The parser will read strait down the file so if you have
; multiple source mounts and you declare a new mount before finishing
; configuration of another, then those configurations after the new
; declaration will go to the new mount.

; SourceMount: This is the mount you would like to create, if you set
; this to /ghey then you would be able to access this mount by
; going to http://localhost:8000/ghey It is critical that you
; make sure to include the slash at the beginning.

; SourceUser: The last SourceMount declared will require this Username
; in order to become a source for this mount.  Note: if you are running
; this mount in shoutcast compatibility mode, this is not required.  However
; it's best to set this anyhow as it allows your encoder users to administrate
; their mounts from a CNTRL app or web panel.

; SourcePass: This is the last Source Mount's password, this is required
; for all connecting encoders.  Mounts without passwords are invalid.

; SourceUserMax [*5]: This particular mount's UserMax, if all of your source
; UserMaxes combined exceed the global UserMax then the UserMax takes presedence.

; SourceRelay: This particular mount will pull data from the location specified below.
; If you publish both servers on and wish that they cluster at that
; yp server then enter your relay url without http:// or trailing path or slashes
; like the example below.  It is now permissable to make a list out of this variable
; to have in effect fallback masters in the event one is unavailable.

; SourceDisconnectWait: [*10]: Allows you to control the wait time in seconds between reconnect
; attempts if a relay fails.  Values from 1 and up are acceptable.
; SourceDisconnectWait=10 

; SourceDirectory: This mount will be an on-demand mount for steamcast.  Any directory location
; is acceptable here.  This aspect of Steamcast still needs alot of work.  So stay tuned.
; SourceDirectory=./content

; SourceGateway: The location of a file you want to be played before the stream begins for each
; listener.  Use %s and Steamcast will only look for files with a matching extension.  Files must be
; the same in everyway with the stream currently playing.
; SourceGateway=/intro.%s

; SourceBackup: This is the mount you would like listeners directed to in the
; event that this source becomes unavailable.  These two mounts must be completely
; identical bitstreams in order for this feature to work properly.
; SourceBackup=/live_back

; SourceBitrateLimit: Set this to have Steamcast choke sources that exceed a
; certain average data rate.  This value is based on actual data transfer and not any particular
; format headers.  This is a great way to control users in community or hosting
; environments.  Default is no limits.  Steamcast waits 20 seconds into a connect before
; limiting, the choke takes affect after a source goes 10% over the limit.
; SourceAvgBitrateLimit=128

; SourceIsSC [*Yes|No]: Setting this to Yes will allow source applications
; which do not have a username capability to use the last source
; declared anyway.

; SourceNameFormat: Provides a new Stream name either derived from the source or completely
; replacing the sources option.  This title is used in client media players and publishing
; outlets.  You can use %s anywhere in the title to have the encoder's option included into
; the final stream name.
; SourceNameFormat=%s powered by Steamcast

; SourceIsDefault [*Yes|No]: Setting this to Yes will make this particular
; mount available globally.  There can be only one global mount.  This
; is also the only mount that will be able to list at

; SourceIP: Setting this to a dotted IP address will make this particular
; mount available at the root of steamcast (much like SHOUTcast) for the IP
; specified here.  Note: You must own the IP you place here.  Inaccurate
; settings will have no effect.  This setting essentially will allow you to
; list multiple source points in the SHOUTcast directory.  It is not neccessary
; to set this setting if you only own one IP.  Setting this for any Source will
; disable the SourceIsDefault flag on any mount.
; SourceIP=

; SourceAuth: [Yes|*No]:  Allows you to setup HTTP Basic Authorization on this
; mount point.  All Authentication is currently file based.  Please see steamauth.txt
; SourceAuth overrides the public bit and will force all SourceAuth'd streams to be
; private.
; SourceAuth=No

; SourceAuthMax: [*0]: Allows you to set the maximum amount of connections per authenticated
; user.  A setting of 0 is interpreted as unlimited.
; SourceAuthMax=0

; SourceListenerTimer: [*0]: Allows you to specify the amount of time a client can stay connected
; in minutes.  A value of 0 disables this feature and allows clients to stay connected for
; an unlimited amount of time.
; SourceListenerTimer=0

; SourcePublic: [*Default|Always|Never]: Allows you to specify whether to override the source's
; public bit setting.  When set to Always a source mount will list on directory services regardless of
; the encoder's specified preference.  When set to Never the source mount will refuse to list on
; directory services.  The default of... Default (heh) sets the source to let the encoder decide
; listing preference.
; SourcePublic=No

; SourcePublicRelays: [*Yes|No]: Whether servers which relay steamcast should list on directory services.
; SourcePublicRelays=Yes

; SourceRawKey: Set this variable to the key you would like passed in a parameter string to access
; the raw data stream in HTTP form.  This is great for things such as Flash.  If you use the example
; below then access to the raw data stream (unprotected by user-agent filters) can be obtained by passing
; http://localhost:8000/mountname.mp3?rawdata to the player, as always substitute the address with your
; specific implementation.  Leaving this option blank or commented disables this capability.
; SourceRawKey=rawdata

; SourceBuffUtil [*100]: This value allows you to control the start position
; of connecting clients within the buffer.  0 would effectively set a new connecting
; client to the write point of the buffer giving a more real-time like experience
; although due to the way the internet really works it can never be truely real-time.
; Setting this to 100 would start them all the way at the back of the buffer which
; gives most clients no buffer wait times.  It is highly recommended that you not mess
; with this parameter except in instances where the bitrate of the stream is extremely
; low and you require an interactive experience from the users connected to the server.
; (i.e. A talk show or other low bitrate interactive live program)  Most other broadcasts
; SHOULD NOT CHANGE THIS SETTING!!!  Doing so will make the connecting users feel like
; they are on dialup in 1996 listening to Real Player. :)
; SourceBuffUtil=100



; Directory Configuration
; =======================

; Advanced Configuration
; ======================
; Do not mess with these configuration values unless you know what you are
; doing, typically these are settings which should not need adjusting.  But
; are here for those users who feel they need more control over how the 
; server behaves.

; ServIP [*Any]: This option allows you to control which interface or IP Steamcast
; should bind to.  Setting this option will limit which IP clients can connect through.
; ANY (case sensitive) will allow steamcast to bind to all and any ip interfaces available.

; SrcIP [*Any]: SrcIP is the IP that Steamcast will listen for source connections.  For
; instance setting this option to will limit SHOUTcast source connection attempts
; to only from the the machine steamcast resides on.  ANY (case sensitive) will allow
; steamcast to bind to all and any ip interfaces available.

; ThreadPool [*5]: Set this to control the amount of available threads for incoming clients.
; Generally you should not have to change this setting.  Setting anything below 2 is not allowed,
; due to severe loss of performance.  Setting this too high will mean more memory and overhead
; will be needed to load the server, be sensible if you must change this number.  While you are allowed
; to set a number as high as 100 anything over 10 is generally considered excessive.
; ThreadPool=5

; MetaInterval [*8192]: Set this to control the meta data interval in bytes for audio types that 
; utilize the Icy Meta Data protocol.  This is a server wide option.  Technical notes: Excessive CPU
; and unlistenable streams may result if you set this value too low.  Steamcast will go no lower then
; 1024bytes.
; MetaInterval=8192

; if I could smile I would.
thanks in advance

Posts: 3
Joined: Tue Sep 13, 2011 12:51 pm

Re: Segmentation Fault on freshly upgraded Debian Squeeze x8

Post by rfrayer » Tue Sep 13, 2011 1:03 pm

you need to cd into the diraectory that steamcast is in and run ./steamcast &
if you run /path/to/directory/steamcast & it will seg fault every time

Post Reply