4.7 Tomcat6 caching issues (login issue)
When logging in a user may be presented with a blank (all white) screen.
So since I upgraded to 4.7 final, dont believe I ever saw the issue with the betas, Ive noticed an issue happen when logging in through a webbrowser, and it appears to be because of cache control issues (however I have yet to proxy the traffic to check the headers). The issue doesnt always happen, and a restart of the tomcat server, nor a restart of the web browser fixes it. Below is an example in from my tomcat access logs from when the issue happened.
So you can see at 10:00:45 I hit the server at /subsonic/ and got a 302 to the login view and completed a valid login at 10:00:56, which caused a 304 (not modified) to be sent back at the request for /subsonic/ which resulted in the blank page. As you can see several refreshes resulted in the same thing until 10:01:58 where a 302 was returned to redirect back to the login (I cleared the cookies from the browers). As you can see this once again resulted in the blank page with the 304 on /subsonic/ until at 10:02:32 I manually told the browser to go to index.view.
So based on the status codes it appears the cache control headers are being set improperly, which results in the browser displaying a blank page (because there was actually nothing returned with /subsonic/ since it was a 302 originally. Ive experienced the issue with multiple firefox versions on both windows and linux, as well as from the android default mobile browser.
I am running subsonic on a linux x86_64 setup, with the war file deployed to tomcat 6.0.32, and built using oracle jdk 1.6.0_35 x86_64 on a separate linux box. I have modified a couple pieces of the code but those changes are isolated to logging, scrobbling, and the scheduling of podcast refresh.
So since I upgraded to 4.7 final, dont believe I ever saw the issue with the betas, Ive noticed an issue happen when logging in through a webbrowser, and it appears to be because of cache control issues (however I have yet to proxy the traffic to check the headers). The issue doesnt always happen, and a restart of the tomcat server, nor a restart of the web browser fixes it. Below is an example in from my tomcat access logs from when the issue happened.
- Code: Select all
[[01/Oct/2012:10:00:45 -0400]] "IPADDRESS" "60443" "GET" "/subsonic/" "-" "302" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0" "-"
[[01/Oct/2012:10:00:45 -0400]] "IPADDRESS" "60443" "GET" "/subsonic/login.view" "-" "200" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0" "2353"
[[01/Oct/2012:10:00:45 -0400]] "IPADDRESS" "60443" "GET" "/subsonic/style/midnight.css" "-" "304" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0" "-"
[[01/Oct/2012:10:00:45 -0400]] "IPADDRESS" "60443" "GET" "/subsonic/icons/subsonic_white.png" "-" "304" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0" "-"
[[01/Oct/2012:10:00:46 -0400]] "IPADDRESS" "60443" "GET" "/subsonic/icons/favicon.ico" "-" "304" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0" "-"
[[01/Oct/2012:10:00:46 -0400]] "IPADDRESS" "60443" "GET" "/subsonic/style/default.css" "-" "304" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0" "-"
[[01/Oct/2012:10:00:56 -0400]] "IPADDRESS" "60443" "POST" "/subsonic/j_acegi_security_check" "-" "302" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0" "-"
[[01/Oct/2012:10:00:56 -0400]] "IPADDRESS" "60443" "GET" "/subsonic/" "-" "304" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0" "-"
[[01/Oct/2012:10:01:03 -0400]] "IPADDRESS" "60443" "GET" "/subsonic/" "-" "304" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0" "-"
[[01/Oct/2012:10:01:45 -0400]] "IPADDRESS" "60443" "GET" "/subsonic/" "-" "304" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0" "-"
[[01/Oct/2012:10:01:48 -0400]] "IPADDRESS" "60443" "GET" "/subsonic/" "-" "304" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0" "-"
[[01/Oct/2012:10:01:58 -0400]] "IPADDRESS" "60443" "GET" "/subsonic/" "-" "302" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0" "-"
[[01/Oct/2012:10:01:58 -0400]] "IPADDRESS" "60443" "GET" "/subsonic/login.view" "-" "200" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0" "2353"
[[01/Oct/2012:10:02:02 -0400]] "IPADDRESS" "60443" "POST" "/subsonic/j_acegi_security_check" "-" "302" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0" "-"
[[01/Oct/2012:10:02:02 -0400]] "IPADDRESS" "60443" "GET" "/subsonic/" "-" "304" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0" "-"
[[01/Oct/2012:10:02:20 -0400]] "IPADDRESS" "60443" "GET" "/subsonic/" "-" "304" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0" "-"
[[01/Oct/2012:10:02:32 -0400]] "IPADDRESS" "60443" "GET" "/subsonic/index.view" "-" "200" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20100101 Firefox/15.0" "1426"
So you can see at 10:00:45 I hit the server at /subsonic/ and got a 302 to the login view and completed a valid login at 10:00:56, which caused a 304 (not modified) to be sent back at the request for /subsonic/ which resulted in the blank page. As you can see several refreshes resulted in the same thing until 10:01:58 where a 302 was returned to redirect back to the login (I cleared the cookies from the browers). As you can see this once again resulted in the blank page with the 304 on /subsonic/ until at 10:02:32 I manually told the browser to go to index.view.
So based on the status codes it appears the cache control headers are being set improperly, which results in the browser displaying a blank page (because there was actually nothing returned with /subsonic/ since it was a 302 originally. Ive experienced the issue with multiple firefox versions on both windows and linux, as well as from the android default mobile browser.
I am running subsonic on a linux x86_64 setup, with the war file deployed to tomcat 6.0.32, and built using oracle jdk 1.6.0_35 x86_64 on a separate linux box. I have modified a couple pieces of the code but those changes are isolated to logging, scrobbling, and the scheduling of podcast refresh.