Setting up multiple instances of Firefly on Linkstation NAS

FireFly Media Server (formerly mt-daapd) Firefly Media Server Forums Firefly Media Server Setup Issues Setting up multiple instances of Firefly on Linkstation NAS

Viewing 12 posts - 1 through 12 (of 12 total)
  • Author
    Posts
  • #508
    risimmonsuk
    Participant

    I’m running the latest nightly build (1340) on a Buffalo Linkstation, and I’d like to run multiple instances.

    I’ve seen a few comments that this should be possible.

    I’ve got multiple mt-daapd.conf scripts, each of which refers to a different db_params directory, they have port numbers 1 apart and each has a different server name.

    I can start each one individually fine with the relevant -c option. iTunes and my Soundbridge see this 1 instance, and it seems to contain all the files i’d expect.

    However, if I start a second instance with the different conf file, it doesn’t appear to start correctly. I can see it’s web page using the different port number, however it doesn’t report any uptime or songs or clients, and the configuration page is blank. Also iTunes/Soundbridge don’t see the library. looking at the log file with -d9 I see;


    2006-08-14 21:49:44 (00004000): Starting with debuglevel 9
    2006-08-14 21:49:44 (00004000): Attempting to load plugin /usr/local/share/mt-daapd/plugins/rsp.so
    2006-08-14 21:49:44 (00004000): Loaded plugin /usr/local/share/mt-daapd/plugins/rsp.so (rsp/svn-1340)
    2006-08-14 21:49:44 (00004000): New transcode codec list:
    2006-08-14 21:49:44 (00004000): Attempting to load plugin /usr/local/share/mt-daapd/plugins/ssc-script.so
    2006-08-14 21:49:44 (00004000): Loaded plugin /usr/local/share/mt-daapd/plugins/ssc-script.so (ssc-script/svn-1340)
    2006-08-14 21:49:44 (00004000): New transcode codec list: ogg,flac,alac
    2006-08-14 21:49:44 (00004000): Starting rendezvous daemon
    2006-08-14 21:49:44 (00004000): get_ifi_info
    2006-08-14 21:49:44 (00004000): intf name=lo AF=2, flags=00000002
    2006-08-14 21:49:44 (00004000): intf name=eth0 AF=2, flags=00000002
    2006-08-14 21:49:44 (00004000): SetupInterfaceList
    2006-08-14 21:49:44 (00004000): bind: Address already in use
    2006-08-14 21:49:44 (00004000): SetupOneInterface: eth0 192.160.0.2 failed to register 125
    2006-08-14 21:49:44 (00004000): bind: Address already in use
    2006-08-14 21:49:44 (00004000): SetupOneInterface: lo 127.0.0.1 failed to register 125
    2006-08-14 21:49:44 (00004000): select(1, 0.000976)
    2006-08-14 21:49:44 (00004000): Starting signal handler
    2006-08-14 21:49:44 (00004000): mDNS_Execute
    2006-08-14 21:49:44 (00004000): select(1, 1966079.977539)
    2006-08-14 21:49:44 (00004002): Signal handler started
    2006-08-14 21:49:45 (00004000): Opening database
    2006-08-14 21:49:45 (00004000): Executing: select value from config where term='version'
    2006-08-14 21:49:45 (00004000): Results: 0
    2006-08-14 21:49:45 (00004000): Initializing database
    2006-08-14 21:49:45 (00004000): Executing: select count(*) FROM songs
    2006-08-14 21:49:45 (00004000): Executing: select value from config where term='rescan'
    2006-08-14 21:49:45 (00004000): Executing: vacuum
    2006-08-14 21:50:22 (00004000): Rows: 0
    2006-08-14 21:50:22 (00004000): Executing: create index idx_path on songs(path,idx)
    2006-08-14 21:50:22 (00004000): Query: create index idx_path on songs(path,idx)
    2006-08-14 21:50:22 (00004000): Error: index idx_path already exists
    2006-08-14 21:50:22 (00004000): Executing: create index idx_songid on playlistitems(songid)
    2006-08-14 21:50:22 (00004000): Query: create index idx_songid on playlistitems(songid)
    2006-08-14 21:50:22 (00004000): Error: index idx_songid already exists
    2006-08-14 21:50:22 (00004000): Executing: create index idx_playlistid on playlistitems(playlistid,songid)
    2006-08-14 21:50:22 (00004000): Query: create index idx_playlistid on playlistitems(playlistid,songid)
    2006-08-14 21:50:22 (00004000): Error: index idx_playlistid already exists
    2006-08-14 21:50:22 (00004000): Starting web server from /usr/local/share/mt-daapd/admin-root on port 3689
    2006-08-14 21:50:22 (00004000): Listening on port 3689
    2006-08-14 21:50:22 (00004000): Starting server thread
    2006-08-14 21:50:22 (00004000): Registering rendezvous names

    This suggests to me that the problem is that I can’t have 2 instances from the same IP address. Is this correct? If so, is it possible to run 2 instances at all? The original library continues to run fine while whichever one starts second always fails.

    #5925
    Anonymous
    Inactive

    You can assign more than one ip address to your NIC so it might be worth going down that route.

    #5926
    rpedde
    Participant

    @risimmonsuk wrote:

    This suggests to me that the problem is that I can’t have 2 instances from the same IP address. Is this correct? If so, is it possible to run 2 instances at all? The original library continues to run fine while whichever one starts second always fails.

    Nope, will work fine. make sure you have different paths (db_parms), different ports (port), and different server names (servername). You can use the same admin_root, though.

    You’ll need (obviously) two different config files, and you’ll need to run the second with a -c parameter pointing to the second config file.

    If you can’t get it to go, post your two config files.

    — Ron

    #5927
    risimmonsuk
    Participant

    @rpedde wrote:

    Nope, will work fine. make sure you have different paths (db_parms), different ports (port), and different server names (servername). You can use the same admin_root, though.
    — Ron

    I believe I’ve got all this. I’ll post the config files when I get home tonight.

    One thought though – the server names both start with Firefly and have spaces in them – could there be an issue with this? (eg. Firefly Albums and Firefly Comedy)

    #5928
    risimmonsuk
    Participant

    Ok – I still can’t get this to work. 2 Config files below (comments and whitespace removed for the purpose of the post).

    I start mt-daapd with the following command line;

    /usr/local/sbin/mt-daapd -c /usr/local/etc/mt-daapd.comedy.conf
    followed by
    /usr/local/sbin/mt-daapd -c /usr/local/etc/mt-daapd.classical.conf

    The first library (whichever I start first) works fine. The second one has the following behaviour;
    – web interface loads
    – web interface shows bonjour service is running (I don’t believe it)
    – web interface shows the media server is running
    – uptime blank
    – songs blank
    – clients blank
    – configuration page blank
    – iTunes doesn’t see second server
    Can anybody tell me what I’m doing wrong?

    Thanks!

    /usr/local/etc/mt-daapd.comedy.conf



    [general]

    web_root = /usr/local/share/mt-daapd/admin-root
    port = 3691
    admin_pw = mt-daapd
    db_type = sqlite
    db_parms = /usr/local/var/cache/mt-daapd/comedy
    mp3_dir = /mnt/hda/richardshare/Music/Comedy
    servername = Comedy
    runas = nobody
    playlist = /usr/local/etc/mt-daapd.playlist
    #password = mp3
    extensions = .mp3,.m4a,.m4p,.wma
    ssc_codectypes = ogg,flac,alac
    ssc_prog = /usr/local/bin/mt-daapd-ssc.sh
    #logfile = /var/log/mt-daapd.log
    #art_filename = _folderOpenImage.jpg
    rescan_interval = 300
    # always_scan = 0
    # process_m3u = 0
    scan_type = 2
    #compress = 0

    [plugins]
    plugin_dir = /usr/local/share/mt-daapd/plugins
    plugins = rsp.so,ssc-script.so

    /usr/local/etc/mt-daapd.classical.conf




    [general]

    web_root = /usr/local/share/mt-daapd/admin-root
    port = 3690
    admin_pw = mt-daapd
    db_type = sqlite
    db_parms = /usr/local/var/cache/mt-daapd/classical
    mp3_dir = /mnt/hda/richardshare/Music/Classical
    servername = Classical
    runas = nobody
    playlist = /usr/local/etc/mt-daapd.playlist
    #password = mp3
    extensions = .mp3,.m4a,.m4p,.wma
    ssc_codectypes = ogg,flac,alac
    ssc_prog = /usr/local/bin/mt-daapd-ssc.sh
    #logfile = /var/log/mt-daapd.log
    #art_filename = _folderOpenImage.jpg
    rescan_interval = 300
    # always_scan = 0
    # process_m3u = 0
    scan_type = 2
    #compress = 0

    [plugins]
    plugin_dir = /usr/local/share/mt-daapd/plugins
    plugins = rsp.so,ssc-script.so
    #5929
    rpedde
    Participant

    @risimmonsuk wrote:

    Ok – I still can’t get this to work. 2 Config files below (comments and whitespace removed for the purpose of the post).

    This looks good. Did you try running each of them with -d9 -f? That might show enough debugging into to see what’s up.

    Meanwhile, I’ll see if I can get it to do the same thing on my linkstation.

    — Ron

    #5930
    risimmonsuk
    Participant

    @rpedde wrote:

    @risimmonsuk wrote:

    Did you try running each of them with -d9 -f? That might show enough debugging into to see what’s up.
    — Ron

    I got some logs from running with -d9. Is there somewhere I can send them – they’re a couple of hundred kB each. I can’t spot anything obvious in them, but I don’t know what I’m looking for!

    #5931
    risimmonsuk
    Participant

    I still can’t get multiple instances to work. The second instance appears to die somewhere inside the rendezvous initialisation and never return. The second instance I start gets this far…


    2006-08-21 19:03:50 (00004000): Starting with debuglevel 9
    2006-08-21 19:03:50 (00004000): Attempting to load plugin /usr/local/share/mt-daapd/plugins/rsp.so
    2006-08-21 19:03:50 (00004000): Loaded plugin /usr/local/share/mt-daapd/plugins/rsp.so (rsp/svn-1348)
    2006-08-21 19:03:50 (00004000): New transcode codec list:
    2006-08-21 19:03:50 (00004000): Attempting to load plugin /usr/local/share/mt-daapd/plugins/ssc-script.so
    2006-08-21 19:03:50 (00004000): Loaded plugin /usr/local/share/mt-daapd/plugins/ssc-script.so (ssc-script/svn-1348)
    2006-08-21 19:03:50 (00004000): New transcode codec list: ogg,flac,alac
    2006-08-21 19:03:50 (00004000): Starting rendezvous daemon
    2006-08-21 19:03:50 (00004000): Starting signal handler
    2006-08-21 19:03:50 (00004000): get_ifi_info
    2006-08-21 19:03:50 (00004000): intf name=lo AF=2, flags=00000002
    2006-08-21 19:03:50 (00004000): intf name=eth0 AF=2, flags=00000002
    2006-08-21 19:03:50 (00004000): SetupInterfaceList
    2006-08-21 19:03:50 (00004000): bind: Address already in use
    2006-08-21 19:03:50 (00004000): SetupOneInterface: eth0 192.160.0.2 failed to register 125
    2006-08-21 19:03:50 (00004000): bind: Address already in use
    2006-08-21 19:03:50 (00004000): SetupOneInterface: lo 127.0.0.1 failed to register 125
    2006-08-21 19:03:50 (00004000): select(1, 0.000976)
    2006-08-21 19:03:50 (00004000): Opening database
    2006-08-21 19:03:50 (00004002): Signal handler started
    2006-08-21 19:03:50 (00004000): mDNS_Execute
    2006-08-21 19:03:50 (00004000): select(1, 1966079.964843)
    2006-08-21 19:03:50 (00004000): Executing: select value from config where term='version'
    2006-08-21 19:03:50 (00004000): Results: 0
    2006-08-21 19:03:50 (00004000): Initializing database
    2006-08-21 19:03:50 (00004000): Executing: select count(*) FROM songs
    2006-08-21 19:03:50 (00004000): Executing: select value from config where term='rescan'
    2006-08-21 19:03:50 (00004000): Executing: vacuum
    2006-08-21 19:03:51 (00004000): Rows: 0
    2006-08-21 19:03:51 (00004000): Executing: create index idx_path on songs(path,idx)
    2006-08-21 19:03:51 (00004000): Query: create index idx_path on songs(path,idx)
    2006-08-21 19:03:51 (00004000): Error: index idx_path already exists
    2006-08-21 19:03:51 (00004000): Executing: create index idx_songid on playlistitems(songid)
    2006-08-21 19:03:51 (00004000): Query: create index idx_songid on playlistitems(songid)
    2006-08-21 19:03:51 (00004000): Error: index idx_songid already exists
    2006-08-21 19:03:51 (00004000): Executing: create index idx_playlistid on playlistitems(playlistid,songid)
    2006-08-21 19:03:51 (00004000): Query: create index idx_playlistid on playlistitems(playlistid,songid)
    2006-08-21 19:03:51 (00004000): Error: index idx_playlistid already exists
    2006-08-21 19:03:51 (00004000): Starting web server from /usr/local/share/mt-daapd/admin-root on port 3691
    2006-08-21 19:03:51 (00004000): Listening on port 3691
    2006-08-21 19:03:51 (00004000): Starting server thread
    2006-08-21 19:03:51 (00004000): Registering rendezvous names

    And then that’s it. Nothing more (unless I connect to the web interface, which gives additional messages, but never anything from the rendezvous thread).

    If I start the same instance as the only instance I get the following log;


    2006-08-21 19:29:07 (00004000): Starting with debuglevel 9
    2006-08-21 19:29:07 (00004000): Attempting to load plugin /usr/local/share/mt-daapd/plugins/rsp.so
    2006-08-21 19:29:07 (00004000): Loaded plugin /usr/local/share/mt-daapd/plugins/rsp.so (rsp/svn-1348)
    2006-08-21 19:29:07 (00004000): New transcode codec list:
    2006-08-21 19:29:07 (00004000): Attempting to load plugin /usr/local/share/mt-daapd/plugins/ssc-script.so
    2006-08-21 19:29:07 (00004000): Loaded plugin /usr/local/share/mt-daapd/plugins/ssc-script.so (ssc-script/svn-1348)
    2006-08-21 19:29:07 (00004000): New transcode codec list: ogg,flac,alac
    2006-08-21 19:29:07 (00004000): Starting rendezvous daemon
    2006-08-21 19:29:07 (00004000): Starting signal handler
    2006-08-21 19:29:07 (00004000): get_ifi_info
    2006-08-21 19:29:07 (00004000): intf name=lo AF=2, flags=00000002
    2006-08-21 19:29:07 (00004000): intf name=eth0 AF=2, flags=00000002
    2006-08-21 19:29:07 (00004000): SetupInterfaceList
    2006-08-21 19:29:07 (00004000): mDNS_RegisterInterface: InterfaceID 1000AD78 192.160.0.2 not represented in list; marking active and retriggering queries
    2006-08-21 19:29:07 (00004000): Adding 1000AD88 NAS250GB.local. (Addr) to active record list
    2006-08-21 19:29:07 (00004000): Adding 1000B034 2.0.160.192.in-addr.arpa. (PTR) to active record list
    2006-08-21 19:29:07 (00004000): Not creating HINFO record: platform support layer provided no information
    2006-08-21 19:29:07 (00004000): SetupOneInterface: eth0 192.160.0.2 Registered
    2006-08-21 19:29:07 (00004000): select(7, 0.000976)
    2006-08-21 19:29:07 (00004000): Opening database
    2006-08-21 19:29:07 (00004000): Executing: select value from config where term='version'
    2006-08-21 19:29:07 (00004000): Results: 0
    2006-08-21 19:29:07 (00004000): Initializing database
    2006-08-21 19:29:07 (00004000): Executing: select count(*) FROM songs
    2006-08-21 19:29:07 (00004000): Executing: select value from config where term='rescan'
    2006-08-21 19:29:07 (00004000): Executing: vacuum
    2006-08-21 19:29:07 (00004000): mDNS_Execute
    2006-08-21 19:29:07 (00004000): select(7, 0.063476)
    2006-08-21 19:29:07 (00004002): Signal handler started
    2006-08-21 19:29:07 (00004000): mDNS_Execute
    2006-08-21 19:29:07 (00004000): SendQueries: Put Question NAS250GB.local. (Addr) probecount 2
    2006-08-21 19:29:07 (00004000): SendQueries: Sending 1 Question 0 Answers 1 Update on 1000AD78
    2006-08-21 19:29:07 (00004000): select(7, 0.094726)
    2006-08-21 19:29:07 (00004000): SocketDataReady got a packet from 192.160.0.2 to 224.0.0.251 on interface 192.160.0.2/eth0/2
    2006-08-21 19:29:07 (00004000): Received Query from 192.160.0.2 :5353 to 224.0.0.251 :5353 on 0x1000AD78 with 1 Question, 0 Answers, 1 Authority, 0 Additionals
    2006-08-21 19:29:07 (00004000): select(7, 0.089843)
    2006-08-21 19:29:07 (00004000): mDNS_Execute
    2006-08-21 19:29:07 (00004000): select(7, 0.149414)
    2006-08-21 19:29:07 (00004000): mDNS_Execute
    2006-08-21 19:29:07 (00004000): SendQueries: Put Question NAS250GB.local. (Addr) probecount 1
    2006-08-21 19:29:07 (00004000): SendQueries: Sending 1 Question 0 Answers 1 Update on 1000AD78
    2006-08-21 19:29:07 (00004000): select(7, 0.098632)
    2006-08-21 19:29:07 (00004000): SocketDataReady got a packet from 192.160.0.2 to 224.0.0.251 on interface 192.160.0.2/eth0/2
    2006-08-21 19:29:07 (00004000): Received Query from 192.160.0.2 :5353 to 224.0.0.251 :5353 on 0x1000AD78 with 1 Question, 0 Answers, 1 Authority, 0 Additionals
    2006-08-21 19:29:07 (00004000): select(7, 0.097656)
    2006-08-21 19:29:07 (00004000): Rows: 0
    2006-08-21 19:29:07 (00004000): Executing: create index idx_path on songs(path,idx)
    2006-08-21 19:29:07 (00004000): Query: create index idx_path on songs(path,idx)
    2006-08-21 19:29:07 (00004000): Error: index idx_path already exists
    2006-08-21 19:29:07 (00004000): Executing: create index idx_songid on playlistitems(songid)
    2006-08-21 19:29:07 (00004000): Query: create index idx_songid on playlistitems(songid)
    2006-08-21 19:29:07 (00004000): Error: index idx_songid already exists
    2006-08-21 19:29:07 (00004000): Executing: create index idx_playlistid on playlistitems(playlistid,songid)
    2006-08-21 19:29:07 (00004000): Query: create index idx_playlistid on playlistitems(playlistid,songid)
    2006-08-21 19:29:07 (00004000): Error: index idx_playlistid already exists
    2006-08-21 19:29:07 (00004000): Starting web server from /usr/local/share/mt-daapd/admin-root on port 3691
    2006-08-21 19:29:07 (00004000): Listening on port 3691
    2006-08-21 19:29:07 (00004000): Starting server thread
    2006-08-21 19:29:07 (00004000): Registering rendezvous names
    2006-08-21 19:29:07 (00004000): Processing rendezvous message
    2006-08-21 19:29:07 (00004000): Registering Comedy._daap._tcp (3691)
    2006-08-21 19:29:07 (00004000): Adding 1000CD70 Comedy._daap._tcp.local. (SRV) to active record list
    2006-08-21 19:29:07 (00004000): Adding 1000D01C Comedy._daap._tcp.local. (TXT) to active record list
    2006-08-21 19:29:07 (00004000): Adding 1000C818 _services._dns-sd._udp.local. (PTR) to active record list
    2006-08-21 19:29:07 (00004000): Adding 1000CAC4 _daap._tcp.local. (PTR) to active record list
    2006-08-21 19:29:07 (00004000): Registered service 0, name 'Comedy', type '_daap._tcp', domain 'local.', port 3691
    2006-08-21 19:29:07 (00004000): select(7, 0.018554)
    2006-08-21 19:29:07 (00004000): Processing rendezvous message
    2006-08-21 19:29:07 (00004000): Registering Comedy._http._tcp (3691)
    2006-08-21 19:29:07 (00004000): Adding 1000D948 Comedy._http._tcp.local. (SRV) to active record list
    2006-08-21 19:29:07 (00004000): Adding 1000DBF4 Comedy._http._tcp.local. (TXT) to active record list
    2006-08-21 19:29:07 (00004000): Adding 1000D3F0 _services._dns-sd._udp.local. (PTR) to active record list
    2006-08-21 19:29:07 (00004000): Adding 1000D69C _http._tcp.local. (PTR) to active record list
    2006-08-21 19:29:07 (00004000): Registered service 1, name 'Comedy', type '_http._tcp', domain 'local.', port 3691
    2006-08-21 19:29:07 (00004000): select(7, 0.013671)
    2006-08-21 19:29:07 (00004000): Checking ssc-script/svn-1348
    2006-08-21 19:29:07 (00004000): Checking rsp/svn-1348
    2006-08-21 19:29:07 (00004000): Registering _rsp._tcp
    2006-08-21 19:29:07 (00004000): Processing rendezvous message
    2006-08-21 19:29:07 (00004000): Registering Comedy._rsp._tcp (3691)
    2006-08-21 19:29:07 (00004000): Adding 1000E520 Comedy._rsp._tcp.local. (SRV) to active record list
    2006-08-21 19:29:07 (00004000): Adding 1000E7CC Comedy._rsp._tcp.local. (TXT) to active record list
    2006-08-21 19:29:07 (00004000): Adding 1000DFC8 _services._dns-sd._udp.local. (PTR) to active record list
    2006-08-21 19:29:07 (00004000): Adding 1000E274 _rsp._tcp.local. (PTR) to active record list
    2006-08-21 19:29:07 (00004000): Registered service 2, name 'Comedy', type '_rsp._tcp', domain 'local.', port 3691
    2006-08-21 19:29:07 (00004000): select(7, 0.004882)
    2006-08-21 19:29:07 (00004000): Executing: select count(*) FROM songs
    2006-08-21 19:29:07 (00004000): mDNS_Execute
    2006-08-21 19:29:07 (00004000): select(7, 0.150390)
    2006-08-21 19:29:07 (00004000): Serving 113 songs. Startup complete in 0 seconds
    2006-08-21 19:29:07 (00004000): Rescanning database

    etc.

    Can anybody help point me at further ways I can debug this – should I add more debug to the code? Anybody got any ideas?
    [/quote]

    #5932
    risimmonsuk
    Participant

    Ah – sorted it! Need to compile firefly with Howl, whatever that is… Seems to work now

    #5933
    risimmonsuk
    Participant

    @risimmonsuk wrote:

    Ah – sorted it! Need to compile firefly with Howl, whatever that is… Seems to work now

    Ok – maybe i spoke too soon. Can get multiple instances, but now iTunes and my soundbridge don’t see them, even if there’s only 1 running.

    Seems to be that howl isn’t running properly. In the log I see;


    2006-08-21 22:24:40 (00004000): Starting rendezvous daemon
    2006-08-21 22:24:40 (00004000): Starting signal handler
    2006-08-21 22:24:40 (00004000): Starting rendezvous services
    2006-08-21 22:24:40 (00004000): Error initializing howl
    2006-08-21 22:24:40 (00004000): Opening database
    2006-08-21 22:24:40 (00004002): Signal handler started
    2006-08-21 22:24:40 (00004000): Executing: select value from config where term='version'
    2006-08-21 22:24:40 (00004000): Results: 0
    2006-08-21 22:24:40 (00004000): Initializing database
    2006-08-21 22:24:40 (00004000): Executing: select count(*) FROM songs
    2006-08-21 22:24:40 (00004000): Executing: select value from config where term='rescan'
    2006-08-21 22:24:40 (00004000): Executing: vacuum
    2006-08-21 22:24:40 (00004000): Rows: 0

    Any ideas?

    #5934
    rpedde
    Participant

    @risimmonsuk wrote:

    2006-08-21 22:24:40 (00004000): Error initializing howl

    Howl is actually another daemon, and that error almost always means that the howl daemon (mDNSreponser) isn’t running.

    If you start the howl daemon, it should fire right up.

    — Ron

    #5935
    risimmonsuk
    Participant

    @rpedde wrote:

    @risimmonsuk wrote:

    2006-08-21 22:24:40 (00004000): Error initializing howl

    Howl is actually another daemon, and that error almost always means that the howl daemon (mDNSreponser) isn’t running.

    If you start the howl daemon, it should fire right up.

    — Ron

    Brilliant! Thanks Ron – just tried that and it works. I’m now finally able to get 2 instances sitting happily side by side 🙂

Viewing 12 posts - 1 through 12 (of 12 total)
  • The forum ‘Setup Issues’ is closed to new topics and replies.