I noticed that a request keeps getting sent from the android app to the server over and over again until the server stops responding.
This is especially the case if your server is running slow because of the SAMBA issue when you serve your music from a NAS.
I intercepted the request by putting in a ProxyPass directive inside my apache instance:
ProxyPass "/subsonic/" "http://localhost:4040/subsonic/"
ProxyPassReverse "/subsonic/" "http://localhost:4040/subsonic/"
and then looking at my apache logs:
less /var/log/apache2/access.log
This is what the request shows:
GET /subsonic/rest/getRandomSongs.view?u=admin&p=enc:686169673234&v=1.2.0&c=android&size=100
This request takes 65 seconds to come back on my Ubuntu instance with this db size:
4,088 artists
3,609 albums
27,020 songs
134.36 GB (~ 2,087 hours)
And these are the frequency of request coming in from the Android app.
[26/Jul/2010:11:36:15 -0400]
[26/Jul/2010:11:36:28 -0400]
[26/Jul/2010:11:36:40 -0400]
[26/Jul/2010:11:36:53 -0400]
[26/Jul/2010:11:37:05 -0400]
The app effectively does a DDOS attack on my server and brings the whole machine to a crawl.
This is with one android app accessing subsonic, if you increase the number of clients, the frequency you see above doubles and the server goes down in a minute.
I emailed the developer a few days back, I did not get a response.
Here is my original email:
-----Original Message-----
From: Gulesserian, Ted
Sent: Monday, July 26, 2010 7:26 PM
To:
sindre@activeobjects.no
Subject: Subsonic Music Streamer
Hello, your latest app keeps making an http request to the server for random songs and effectively causin a denial of service attack. I have to keep restarting the server. The timeout period should be configurable for those of us that don't have beefy machines.
Otherwise I love the app.
Thanks, Ted