svn-1082 on NSLU2

Viewing 10 posts - 1 through 10 (of 36 total)
  • Author
    Posts
  • #290
    fizze
    Participant

    Hey ron, cheers for giving us transcoding thru rsp. πŸ™‚

    Am i right that in

    Make unix-slashes .m3u files work on win32 and vice versa

    I should be able to use native relative-pathed winamp .m3u’s on the slug’s music repository ? πŸ˜‰

    #4671
    rpedde
    Participant

    [quote=”fizze” I should be able to use native relative-pathed winamp .m3u’s on the slug’s music repository ? ;)[/quote]

    That’s the theory, yeah. Does it work?

    #4672
    fizze
    Participant

    havent yet upgraded. but I will do so shortly πŸ™‚

    edit:
    I set process_m3u =1 and the server did come up, but it refuses to show any content.
    My soundbridge reboots gracefully and tries to reconnect then, which is kinda bad to.
    iTunes clients get no data as well, but dont show any error.
    I dont know whats wrong.
    The webinterface seems to work though, although it shows any DB related functions return nothing.

    I gotta dig into this to find out whats happening.

    Could it be that some bogus m3u lists cause it to fail like that ?

    I hope I find the time to investigate this in the next few days. Im kinda busy now.

    edit2:
    well, just as I thought, if I comment out the process_m3u setting it just comes up, but it doesnt stream any content. I could see the database contents in the web interface’s “playlist” view.

    edit3:
    ok, I tried to play with some other other config settings, and also with -d9.
    no info. now even the webinterface refuses to come up.
    There are 3 mt-daapd instances with state “S” and one with state “D”. that one can only be killed by -9’ing it.

    any clues ?

    #4673
    rpedde
    Participant

    @fizze wrote:

    no info. now even the webinterface refuses to come up.
    There are 3 mt-daapd instances with state “S” and one with state “D”. that one can only be killed by -9’ing it.

    kill -9 everything and make sure it’s dead. Start it in the foreground with a -d9 and see what you see there. (/opt/sbin/mt-daapd -c /opt/etc/mt-daapd/mt-daapd.conf -f -d9 -y)

    #4674
    fizze
    Participant

    I killed my DB files (there were like 4 with very temp-ish sounding names), and rerun it with -d9 last night.
    Today its running fine. Weirdest thing.

    BTW is there a way to save one’s smart playlists ?
    like a small DB export/import ?

    edit:
    it ran fine with transcoding deactivated, and no process_m3u.

    Now Im running in foreground with -d9 and stuff, without process_m3u, but with transcoding at least.

    As far as I can tell its working, but its slow as hell.
    Browsing from my Notebook via iTunes took like 10-30 seconds to get the full list, I am now waiting for 5+ mins, and its still not here.
    In putty I can see mt-daapd is happily at work though.
    Seems those selects just take forever … ?

    edit2:
    a snip of the log file:

    #4675
    fizze
    Participant

    On a sidenote, when the server is in this state, it makes a soundbridge reboot upon connection failed, and then disconnect.
    here’s the log from mt-daapd, while this happens:

    SocketDataReady got a packet from 192.168.1.8 to 224.0.0.251 on interface 192.168.1.2/ixp0/2
    Received Query from 192.168.1.8 :5353 to 224.0.0.251 :5353 on 0x0005AF88 with 4 Questions, 0 Answers, 4 Authorities, 0 Additionals
    select(5, 0.075195)
    mDNS_Execute
    select(5, 1963101.492187)
    SocketDataReady got a packet from 192.168.1.8 to 224.0.0.251 on interface 192.168.1.2/ixp0/2
    Received Query from 192.168.1.8 :5353 to 224.0.0.251 :5353 on 0x0005AF88 with 4 Questions, 0 Answers, 4 Authorities, 0 Additionals
    select(5, 0.110351)
    mDNS_Execute
    select(5, 1963101.194335)
    SocketDataReady got a packet from 192.168.1.8 to 224.0.0.251 on interface 192.168.1.2/ixp0/2
    Received Query from 192.168.1.8 :5353 to 224.0.0.251 :5353 on 0x0005AF88 with 4 Questions, 3 Answers, 1 Authority, 0 Additionals
    AddRecordToResponseList: NSLUZZLE.local. (Addr) already in list
    AddRecordToResponseList: Fizze Music (rsp/1.0)._rsp._tcp.local. (SRV) already in list
    AddRecordToResponseList: Fizze Music (rsp/1.0)._rsp._tcp.local. (TXT) already in list
    AddRecordToResponseList: NSLUZZLE.local. (Addr) already in list
    select(5, 0.075195)
    SocketDataReady got a packet from 192.168.1.8 to 224.0.0.251 on interface 192.168.1.2/ixp0/2
    Received Response from 192.168.1.8 addressed to 224.0.0.251 on 0005AF88 TTL 255 with 0 Questions, 11 Answers, 0 Authorities, 0 Additionals
    select(5, 0.073242)
    Thread 3: Entering ws_dispatcher (Connection from 192.168.1.8)
    Thread 3: got request
    Request: GET /rsp/info HTTP/1.0

    Thread 3: Read: User-Agent: Roku SoundBridge/2.5

    Thread 3: Adding header *User-Agent=Roku SoundBridge/2.5*
    Added *User-Agent=Roku SoundBridge/2.5*
    Thread 3: Read: Host: 192.168.1.2:3689

    Thread 3: Adding header *Host=192.168.1.2:3689*
    Added *Host=192.168.1.2:3689*
    Thread 3: Read: Accept: */*

    Thread 3: Adding header *Accept=*/**
    Added *Accept=*/**
    Thread 3: Read: Authorization: Basic cm9rdTpyb2t1

    Thread 3: Adding header *Authorization=Basic cm9rdTpyb2t1*
    Added *Authorization=Basic cm9rdTpyb2t1*
    Thread 3: Read: Pragma: no-cache

    Thread 3: Adding header *Pragma=no-cache*
    Added *Pragma=no-cache*
    Thread 3: Read: accept-encoding: gzip

    Thread 3: Adding header *accept-encoding=gzip*
    Added *accept-encoding=gzip*
    Thread 3: Read: accept-codecs: wma,mpeg,wav,mp4a

    Thread 3: Adding header *accept-codecs=wma,mpeg,wav,mp4a*
    Added *accept-codecs=wma,mpeg,wav,mp4a*
    Thread 3: Read: rsp-version: 0.1

    Thread 3: Adding header *rsp-version=0.1*
    Added *rsp-version=0.1*
    Thread 3: Read: transcode-codecs: wav,mp3

    Thread 3: Adding header *transcode-codecs=wav,mp3*
    Added *transcode-codecs=wav,mp3*
    Thread 3: Read:

    Thread 3: Headers parsed!
    Checking to see if connection matches keep-alive
    Nope!
    Thread 3: Connection type HTTP/1.0

    : Connection: non-persist
    Thread 3: Original URI: /rsp/info
    Thread 3: Translated URI: /rsp/info
    Thread 3: Preparing to find handler
    Thread 3: URI Match!
    Thread 3: Time is 1148733159 seconds after epoch
    Thread 3: Setting time header
    Added *Date=Sat, 27 May 2006 12:32:39 GMT*
    Added *Connection=close*
    Added *Server=mt-daapd/svn-1082*
    Added *Content-Type=text/html*
    Added *Content-Language=en_us*
    Thread 3: Using non-default handler
    in main_auth
    Entering candispatch
    Current lock level: 0
    Dispatching auth for /rsp/info to plugin
    Current lock level: 0
    Dispatching /rsp/info to rsp/1.0
    in main_handler
    Entering candispatch
    Current lock level: 0
    Dispatching /rsp/info to plugin
    Current lock level: 0
    Dispatching /rsp/info to rsp/1.0
    Tokenizing url
    Found 5 elements
    Checking reponse 0
    Found it! Index: 0
    Starting rsp_info
    Gzipping output
    Added *Content-Encoding=gzip*
    Added *Vary=Accept-Encoding*
    Updating Connection from close to Close
    Added *Cache-Control=no-cache*
    Added *Expires=-1*
    Updating Content-Type from text/html to text/xml; charset=utf-8
    Emitting reponse header Expires: -1
    Emitting reponse header Cache-Control: no-cache
    Emitting reponse header Vary: Accept-Encoding
    Emitting reponse header Content-Encoding: gzip
    Emitting reponse header Content-Language: en_us
    Emitting reponse header Content-Type: text/xml; charset=utf-8
    Emitting reponse header Server: mt-daapd/svn-1082
    Emitting reponse header Connection: Close
    Emitting reponse header Date: Sat, 27 May 2006 12:32:39 GMT
    SocketDataReady got a packet from 192.168.1.8 to 224.0.0.251 on interface 192.168.1.2/ixp0/2
    Received Query from 192.168.1.8 :5353 to 224.0.0.251 :5353 on 0x0005AF88 with 4 Questions, 3 Answers, 0 Authorities, 0 Additionals
    AddRecordToResponseList: _daap._tcp.local. (PTR) already in list
    AddRecordToResponseList: _rsp._tcp.local. (PTR) already in list
    AddRecordToResponseList: Fizze Music._daap._tcp.local. (SRV) already in list
    AddRecordToResponseList: Fizze Music._daap._tcp.local. (TXT) already in list
    AddRecordToResponseList: Fizze Music (rsp/1.0)._rsp._tcp.local. (SRV) already in list
    AddRecordToResponseList: Fizze Music (rsp/1.0)._rsp._tcp.local. (TXT) already in list
    AddRecordToResponseList: NSLUZZLE.local. (Addr) already in list
    AddRecordToResponseList: NSLUZZLE.local. (Addr) already in list
    select(5, 0.066406)
    SocketDataReady got a packet from 192.168.1.100 to 224.0.0.251 on interface 192.168.1.2/ixp0/2
    Received Response from 192.168.1.100 addressed to 224.0.0.251 on 0005AF88 TTL 255 with 0 Questions, 3 Answers, 0 Authorities, 0 Additionals
    mDNS_Execute
    select(5, 1963100.728515)
    SocketDataReady got a packet from 192.168.1.8 to 224.0.0.251 on interface 192.168.1.2/ixp0/2
    Received Response from 192.168.1.8 addressed to 224.0.0.251 on 0005AF88 TTL 255 with 0 Questions, 4 Answers, 0 Authorities, 0 Additionals
    select(5, 1963100.609375)
    SocketDataReady got a packet from 192.168.1.8 to 224.0.0.251 on interface 192.168.1.2/ixp0/2
    Received Response from 192.168.1.8 addressed to 224.0.0.251 on 0005AF88 TTL 255 with 0 Questions, 15 Answers, 0 Authorities, 0 Additionals
    select(5, 1963099.936523)
    SocketDataReady got a packet from 192.168.1.8 to 224.0.0.251 on interface 192.168.1.2/ixp0/2
    Received Query from 192.168.1.8 :5353 to 224.0.0.251 :5353 on 0x0005AF88 with 4 Questions, 3 Answers, 0 Authorities, 0 Additionals
    AddRecordToResponseList: _daap._tcp.local. (PTR) already in list
    AddRecordToResponseList: _rsp._tcp.local. (PTR) already in list
    AddRecordToResponseList: Fizze Music._daap._tcp.local. (SRV) already in list
    AddRecordToResponseList: Fizze Music._daap._tcp.local. (TXT) already in list
    AddRecordToResponseList: Fizze Music (rsp/1.0)._rsp._tcp.local. (SRV) already in list
    AddRecordToResponseList: Fizze Music (rsp/1.0)._rsp._tcp.local. (TXT) already in list
    AddRecordToResponseList: NSLUZZLE.local. (Addr) already in list
    AddRecordToResponseList: NSLUZZLE.local. (Addr) already in list
    select(5, 0.127929)
    SocketDataReady got a packet from 192.168.1.100 to 224.0.0.251 on interface 192.168.1.2/ixp0/2
    Received Response from 192.168.1.100 addressed to 224.0.0.251 on 0005AF88 TTL 255 with 0 Questions, 3 Answers, 0 Authorities, 0 Additionals
    mDNS_Execute
    select(5, 1963098.678710)
    SocketDataReady got a packet from 192.168.1.8 to 224.0.0.251

    #4676
    fizze
    Participant

    and this is my current mt-daapd.conf file:

    # $Id: mt-daapd.conf,v 1.3 2005/02/15 03:35:19 rpedde Exp $
    #
    # This is the mt-daapd config file.
    #
    # If you have problems or questions with the format of this file,
    # direct your questions to [email protected].
    #
    # You can also check the website at http://mt-daapd.sourceforge.net,
    # as there is a growing documentation library there, peer-supported
    # forums and possibly more.
    #

    [general]

    #
    # web_root (required)
    #
    # Location of the admin web pages. If you installed from
    # ipk, this is correct
    #

    web_root = /opt/share/mt-daapd/admin-root

    #
    # port (required)
    #
    # What port to listen on. It is possible to use a different
    # port, but this is the default iTunes port
    #

    port = 3689

    #
    # admin_pw (required)
    #
    # This is the password to the administrative pages
    #
    # YOU SHOULD PROBABLY CHANGE THIS
    #

    admin_pw = mt-daapd

    #
    # db_dir (depricated)
    #
    # This is where mt-daapd stores its database of song information.
    #
    # If you installed this from .ipk, this is correct
    #

    #db_dir/opt/var/mt-daapd

    #
    # db_type/db_parms
    #
    # This specifies what kind of database you want, and where
    # it should be kept. Valid db_types depend on what databases are
    # compiled in, but can include “sqlite” and “sqlite3”.
    #
    # db_parms is the parameters for that database backend. For sqlite and
    # sqlite3, these parameters are the path to the database.
    #

    db_type = sqlite
    db_parms = /share/flash/conf/.mt-daapd/

    #
    # mp3_dir (required)
    #
    # Location of the mp3 files to share. This corresponds
    # to a folder called “mp3” in the “DISK 1” share.
    #

    mp3_dir= /share/hdd/data/MUSIC/

    #
    # servername (required)
    #
    # This is both the name of the server as advertised
    # via rendezvous, and the name of the database
    # exported via DAAP
    #

    servername = Fizze Music

    #
    # runas (required)
    #
    # This is the user to drop privs to if running as
    # root. If mt-daapd is not started as root, this
    # configuration option is ignored. Notice that this
    # must be specified whether the server is running
    # as root or not.
    #
    # If you have not messed with permissions from
    # the console, then this should work correctly
    # without any strange chmods or anything.
    #

    runas = guest

    #
    # playlist (optional)
    #
    # This is the location of a playlist file.
    # This is for Apple-style “Smart Playlists”
    # See the mt-daapd.playlist file in the
    # contrib directory for syntax and examples
    #
    # This doesn’t control static playlists… these
    # are controlled with the “process_m3u” directive
    # below.
    #

    playlist = /opt/etc/mt-daapd/mt-daapd.playlist

    #
    # password (optional)
    #
    # This is the password required to listen to MP3 files
    # i.e. the password that iTunes prompts for
    #

    #passwordmp3

    #
    # extensions (optional)
    #
    # These are the file extensions that the daap server will
    # try to index and serve. By default, it only indexes and
    # serves .mp3 files. It can also server .m4a and .m4p files,
    # and just about any other files, really. Unfortunately, while
    # it can *attempt* to serve other files (.ogg?), iTunes won’t
    # play them. Perhaps this would be useful on Linux with
    # Rhythmbox, once it understands daap. (hurry up!)
    #

    extensions = .mp3,.m4a,.wma,.ogg

    #
    # ssc_extensions (optional)
    #
    # List of file extensions belonging to the files daap server
    # performs internal format conversion and present to clients
    # as WAV files. Extensions must also be present in ‘extensions’
    # configuration value, or files are not probed in the first
    # place.
    #

    ssc_codectypes = ogg

    #
    # ssc_prog (optional)
    #
    # Program that is used in server side format conversion.
    # Program must accept following command line syntax:
    # ssc_prog filename offset
    # Parameter filename is the real name of the file that is
    # to be converted and streamed, offset is number of bytes
    # that are skipped from the beginning of the _output_ file
    # before streaming is started. The resulting wav file (or
    # rest of the file after initial seek) is written to the
    # standard output by the ssc_prog program. This is typically
    # a script that is a front end for different conversion tools
    # handling different formats.
    #

    ssc_prog = /opt/sbin/mt-daapd-ssc.sh

    #
    # logfile (optional)
    #
    # This is the file to log to. If this is not configured,
    # then it will log to the syslog.
    #
    # Not that the -d switch will control the log verbosity.
    # By default, it runs at log level 1. Log level 9 will churn
    # out scads of useless debugging information. Values in between
    # will vary the amount of logging you get.
    #

    #logfile /opt/etc/mt-daapd/mt-daapd.log
    #logfile

    #
    # art_filename (optional)
    #
    # There is experimental support thanks to Hiren Joshi
    # ([email protected]) for dynamically adding art to the id3v2
    # header as it is streamed (!!). If you were using a music system
    # like zina or andromeda, for example, with cover art called
    # “_folderOpenImage.jpg”, you could use the parameter
    # art_file _folderOpenImage.jpg and if the file _folderOpenImage.jpg
    # was located in the same folder as the .mp3 file, it would appear
    # in iTunes. Cool, eh?
    #

    #art_filename _folderOpenImage.jpg

    #
    # rescan_interval
    #
    # How often to check the file system to see if any mp3 files
    # have been added or removed.
    #
    # if not specified, the default is 0, which disables background scanning.
    #
    # If background rescanning is disabled, a scan can still be forced from the
    # “status” page of the administrative web interface
    #
    # Setting a rescan_interval lower than the time it takes to rescan
    # won’t hurt anything, it will just waste CPU, and make connect times
    # to the daap server longer.
    #

    # We’ll set it to 10 minutes
    #
    rescan_interval = 160000

    # always_scan
    #
    # The default behavior is not not do background rescans of the
    # filesystem unless there are clients connected. The thought is to
    # allow the drives to spin down unless they are in use. This might be
    # of more importance in IDE drives that aren’t designed to be run
    # 24×7. Forcing a scan through the web interface will always work
    # though, even if no users are connected.

    always_scan = 0

    #
    # process_m3u
    #
    # By default m3u processing is turned off, since most m3u files
    # sitting around in peoples mp3 directories have bad paths, and
    # I hear about it. πŸ™‚
    #
    # If you are sure your m3u files have good paths (i.e. unixly pathed,
    # with relative paths relative to the directory the m3u is in), then
    # you can turn on m3u processing by setting this directive to 1.
    #
    # I’m not sure “unixly” is a word, but you get the idea.
    #

    #process_m3u = 1

    #
    # scan_type
    #
    #
    # This sets how aggressively mp3 files should be scanned to determine
    # file length. There are three values:
    #
    # 0 (Normal)
    # Just scan the first mp3 frame to try and calculate size. This will
    # be accurate for most files, but VBR files without an Xing tag will
    # probably have wildly inaccurate file times. This is the default.
    #
    # 1 (Aggressive)
    # This checks the bitrates of 10 frames in the middle of the song.
    # This will still be inaccurate for VBR files without an Xing tag,
    # but they probably won’t be quite as inaccurate as 0. This takes
    # more time, obviously, although the time hit will only happen the
    # first time you scan a particular file.
    #
    # 2 (Painfully aggressive)
    # This walks through the entire song, counting the number of frames.
    # This should result in accurate song times, but will take the most
    # time. Again, this will only have to be incurred the first time
    # the file is indexed.
    #

    scan_type = 0

    #
    # compress
    #
    # Whether to use gzip content-encoding when transferring playlists etc.
    # This was contributed as a patch by Ciamac Moallemi just prior to the 0.2.1
    # release, and as such, hasn’t gotten as much testing as other features.
    #
    # This feature should substantially speed up transfers of large databases
    # and playlists, at least where bandwidth is limited.
    #
    # It will eventually default to 1, but currently it defaults to 0.
    #
    # DONT EVEN THINK OF ENABLING THIS ON THE SLUG. IT WILL
    # DEGRADE PERFORMANCE MASSIVELY. It might even trigger the
    # OOM killer, so just pretend this option isn’t here.
    #
    # In fact, it’s only here for the sake of completeness.

    # compress 0

    [plugins]
    plugin_dir = /opt/share/mt-daapd/plugins
    plugins = rsp.so-bash-2.05b#

    well, now at least the layout of this thread is thoroughly ruined. πŸ˜‰
    I hope there’s some clues about that.

    #4677
    rpedde
    Participant

    can you make it fail on demand?

    #4678
    fizze
    Participant

    the soundbridge ?
    yes. its reproducable.
    With the above recipe, on my slug.

    like I said, it works with iTunes, but its so darn slow that noone would expect its working.

    Do the above log files look even “normal” ?

    #4679
    rpedde
    Participant

    @fizze wrote:

    Do the above log files look even “normal” ?

    Yeah.

    It really sounds like one of several things. It sounds like you have multiple mt-daapds running (the multiple temp files in the db dir) and it’s slow because of db contention.

    Or, you are cpu pegged on something else (or maybe on a transcode), adn that’s slowing you down. Transcoding will do that if you aren’t using the ivorbis-tools package, or if you are using a home-build alac decoder… not the alac-decoder package in unslung.

Viewing 10 posts - 1 through 10 (of 36 total)
  • The forum ‘Nightlies Feedback’ is closed to new topics and replies.