[solved]: Synology Permissins on Cover Art downloading /java

Need help? Post your questions here.

[solved]: Synology Permissins on Cover Art downloading /java

Unread postby Matt Zornig » 04 Mar 2017, 14:20

Code: Select all
=========================================================================================
VERSION: MADSONIC 6.2 | BUILD: 9080.619dd31.20161222.0327
REST: MADSONIC REST API v2.5.0, SUBSONIC REST API v1.14.0
OS: Linux 3.10.77 #8451 SMP Wed Jan 4 00:31:32 CST 2017 x86_64 GNU/Linux
SERVER: jetty/8.y.z-SNAPSHOT, java 1.8.0_121, Linux 3.10.77 (amd64)
HOST: Synology NAS 1815+ (DSM 6.0.2-8451 Update 9) | CPU: INTEL Atom C2538| ARCH: X64 | MEMORY: 6GB | HDD: 36TB, RAID6
BROWSER: FF 51.x
CLIENT: see browser
JAVA: ORACLE JDK 1.8.121
logged in as admin
========================================================================================


When trying to change a cover art, it gives the error:

java.io.FileNotFoundException: /volume1/Music/S/Sven Väth/1998 - Fusion [CDA]/cover.png (Permission denied)


java_perission-denied-on-cover-art-downloading.png
error occours, when no/wrong permissions for the madsonic server are given to you media library-folders. This could be for some early or beta packages of madsonic for your DS


Log:
Code: Select all
[2017-03-04 13:51:11,139] WARN CoverArtService - Failed to save cover art for album 453490
java.io.FileNotFoundException: /volume1/Music/S/Sven Väth/1998 - Fusion [CDA]/cover.png (Permission denied)
        at java.io.FileOutputStream.open0(Native Method)
        at java.io.FileOutputStream.open(FileOutputStream.java:270)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
        at org.madsonic.ajax.CoverArtService.saveCoverArt(CoverArtService.java:132)
        at org.madsonic.ajax.CoverArtService.setCoverArtImage(CoverArtService.java:82)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.directwebremoting.impl.CreatorModule$1.doFilter(CreatorModule.java:172)
        at org.directwebremoting.impl.CreatorModule.executeMethod(CreatorModule.java:184)
        at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:353)
        at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:306)
        at org.directwebremoting.dwrp.BaseCallHandler.handle(BaseCallHandler.java:110)
        at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:211)
        at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:185)
        at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:144)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1507)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
        at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1495)
        at org.madsonic.filter.RequestEncodingFilter.doFilter(RequestEncodingFilter.java:43)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1495)
        at org.madsonic.filter.ParameterDecodingFilter.doFilter(ParameterDecodingFilter.java:54)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1495)
        at org.madsonic.filter.BootstrapVerificationFilter.doFilter(BootstrapVerificationFilter.java:58)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1487)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:427)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
        at org.eclipse.jetty.server.Server.handle(Server.java:370)
        at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
        at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:984)
        at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1045)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:861)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:236)
        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Thread.java:745)


To solve this, you need to grant the madsonic user (which runs the madsonic package on your synology diskstation server) the permissions to write to your media/music folders which you have configured madsonic server should use for indexing your media/music.

On your DS:
synology-control-panel-shared-folders.png
go to control-panel and edit the shared-folder, which contains your media/music-library configured in Madsonic Server->Settings->Media folders
synology-control-panel-shared-folders.png (39.29 KiB) Viewed 287 times


synology-control-panel-shared-folders-permission-madsonic-user.png
change the permission for the madsonic user as in the screenshot



Now the Madsonic server can download cover art and store it into the same folder, as the music/media is.
User avatar
Matt Zornig
Contributor
Contributor
 
Posts: 121
Joined: 14 Feb 2017, 12:03
Has thanked: 21 times
Been thanked: 14 times

Return to Support 6.x

Who is online

Users browsing this forum: No registered users and 1 guest

cron