[Support] binhex - Airsonic


Recommended Posts

I've been setting up and playing with my Airsonic container over the past week or two and suddenly I started running into a problem over the past couple days where, when playing back music in Chrome browser, it stops at the end of every song. I have to select or skip to the next song in the queue and then it will play that song, until the end of that one and it stops playing again. Rinse and repeat.

 

It seems like it is similar to what is seen in this Subsonic bug thread, but all my files are just regular mp3s, no FLAC or anything else really exotic or otherwise. But after reading that, I noticed that for almost every song the time in the player would show as 1 second longer than the length listed in the playlist. I tried going in to the settings and under "Players" select the "web" player and unchecked all the "Active Transcoding" boxes to make sure it wasn't a transcoding issue (I assume unchecking those disables transcoding). 

 

I don't see anything in the /config/airsonic.log file, just the file playback info messages. No errors or even warnings when this happens. 

 

I found out I can just open up Airsonic in Microsoft Edge browser instead and it seems to work fine there, so the problem looks to be specific to Chrome.

 

I've tried restarting Chrome and also restarting the container. Anyone seen this before or any ideas?

Link to comment
I've been setting up and playing with my Airsonic container over the past week or two and suddenly I started running into a problem over the past couple days where, when playing back music in Chrome browser, it stops at the end of every song. I have to select or skip to the next song in the queue and then it will play that song, until the end of that one and it stops playing again. Rinse and repeat.
 
It seems like it is similar to what is seen in this Subsonic bug thread, but all my files are just regular mp3s, no FLAC or anything else really exotic or otherwise. But after reading that, I noticed that for almost every song the time in the player would show as 1 second longer than the length listed in the playlist. I tried going in to the settings and under "Players" select the "web" player and unchecked all the "Active Transcoding" boxes to make sure it wasn't a transcoding issue (I assume unchecking those disables transcoding). 
 
I don't see anything in the /config/airsonic.log file, just the file playback info messages. No errors or even warnings when this happens. 
 
I found out I can just open up Airsonic in Microsoft Edge browser instead and it seems to work fine there, so the problem looks to be specific to Chrome.
 
I've tried restarting Chrome and also restarting the container. Anyone seen this before or any ideas?
Never seen that, but tbh 99% of the time I'm using dsub android app, maybe try clearing the cookie for the site and ensure its not a chrome extension blocking something, temporarily disable all extensions maybe

Sent from my SM-G935F using Tapatalk

Link to comment
On 2/10/2018 at 4:06 AM, binhex said:

Never seen that, but tbh 99% of the time I'm using dsub android app, maybe try clearing the cookie for the site and ensure its not a chrome extension blocking something, temporarily disable all extensions maybe

Sent from my SM-G935F using Tapatalk
 

 

Yeah I just got Airsonic going really to use as my phone music sync app via DSub, but it is nice to have music playing on my system while I'm working on stuff too occasionally.

 

I did try clearing the cookies for the site on Chrome, but haven't gone nuclear yet on cache and such. I don't think it is a Chrome extension as I haven't changed those and it was just working a couple days ago.

 

Honestly I'm kind of digging having it running on Edge instead as notifications actually work on there so I see a Windows notification pop up when it changes songs and such. Google has seen fit to block Chrome notifications from working on local websites (technically non-trusted sites, but that includes stuff running on my unraid server).

 

If it gets too frustrating for me I can open an issue on the Airsonic github. Thanks!

Link to comment
  • 2 months later...
1 hour ago, shadoweave said:

Thanks a lot for this! I'm getting an issue where it says no transcoder appears to be installed. Is there anyway to install ffmpeg for this docker container?

 

ffmpeg is included already, where are you seeing that message, post a screenshot.

Link to comment
1 minute ago, IamSpartacus said:

Thanks @binhex!

 

Is there a known issue with Airsonic and Chrome?  If i login to Chrome and click on any settings pages it boots me back to the login page.  Works fine in IE though.

 

ive not seen that, and i use chrome exclusively, try clearing down all cookies for the site.

Link to comment

Can anyone speak to (this goes for Airsonic and Libresonic) where user created/imported playlists get stored?  I have users with lots of playlists that I want to import over.  They are not stored in the playlists directory under appdata as anything that is stored in there shows up for all users.  I just tested importing one user playlist and it too does not show up in the playlists folder in appdata.  So are these just stored in the database somewhere?  I'm just asking because having to manually export and import every single playlist will SUCK.

Link to comment
  • 4 months later...

Hey! I'm having a bit of trouble with the transcoder on here.  I'm reverse proxying through the linuxserver letsencrypt container and everytime I play a flac song, it will play about 45 sec and then skip to the next song.  If I play via dsub, I don't have issues as it doesn't need to transcode, but on Firefox it does.  The log is showing:

java.io.IOException: Cannot run program "/config/transcode/ffmpeg": error=13, Permission denied

I took a look at the permissions in appdata and it shows: 

# ls -al /mnt/user/appdata/binhex-airsonic/transcode
total 0
drwxrwxrwx 1 nobody users  12 Sep 11 17:08 ./
drwxrwxr-x 1 nobody users 294 Sep 20 03:27 ../
---------- 1 root   root    0 Sep 11 17:08 ffmpeg

So the first thing I tried is matching up the owner to nobody:users and the issue persists.  I then matched the proxy requirements from airsonic, but again same error.  I then tried matching the ffmpeg owner statements from airsonic to:

 

lrwxrwxrwx 1 user user   15 mai    4 19:57 ffmpeg -> /usr/bin/ffmpeg

However, changing ownership of ffmpeg to anything other than 000 causes playback to cease completely.  

 

Am I missing something easy?

 

 

 

Link to comment
40 minutes ago, noja said:

Hey! I'm having a bit of trouble with the transcoder on here.  I'm reverse proxying through the linuxserver letsencrypt container and everytime I play a flac song, it will play about 45 sec and then skip to the next song.  If I play via dsub, I don't have issues as it doesn't need to transcode, but on Firefox it does.  The log is showing:


java.io.IOException: Cannot run program "/config/transcode/ffmpeg": error=13, Permission denied

I took a look at the permissions in appdata and it shows: 


# ls -al /mnt/user/appdata/binhex-airsonic/transcode
total 0
drwxrwxrwx 1 nobody users  12 Sep 11 17:08 ./
drwxrwxr-x 1 nobody users 294 Sep 20 03:27 ../
---------- 1 root   root    0 Sep 11 17:08 ffmpeg

So the first thing I tried is matching up the owner to nobody:users and the issue persists.  I then matched the proxy requirements from airsonic, but again same error.  I then tried matching the ffmpeg owner statements from airsonic to:

 


lrwxrwxrwx 1 user user   15 mai    4 19:57 ffmpeg -> /usr/bin/ffmpeg

However, changing ownership of ffmpeg to anything other than 000 causes playback to cease completely.  

 

Am I missing something easy?

 

 

 

ok so permissions should look like this (assuming you are running the container as user 'nobody' group 'users':-

 

lrwxrwxrwx  1 nobody users  15 Sep 20 17:21 ffmpeg -> /usr/bin/ffmpeg

 

the easiest way to get this straight is to perform the following:-

 

1. stop container

2. delete /config/transcode folder

3. start container to auto re-create folder and symlink.

4. check permissions now look more like what ive posted above.

5. test

 

 

  • Like 1
Link to comment
6 minutes ago, binhex said:

the easiest way to get this straight is to perform the following:-

 

1. stop container

2. delete /config/transcode folder

3. start container to auto re-create folder and symlink.

4. check permissions now look more like what ive posted above.

5. test

@binhex you nailed it.  Thanks for the assist! That problem is solved. 

  • Like 1
Link to comment
  • 6 months later...

Getting the following in my log after updating my server to RC6.  Container won't run.

 

2019-03-27 11:18:49,500 DEBG 'start-script' stdout output:
2019-03-27 11:18:49.497 INFO --- org.airsonic.player.Application : Starting Application v10.2.1-RELEASE on 3b708f822700 with PID 56 (/opt/airsonic/airsonic.war started by nobody in /)

2019-03-27 11:18:49,500 DEBG 'start-script' stdout output:
2019-03-27 11:18:49.500 INFO --- org.airsonic.player.Application : The following profiles are active: legacy

2019-03-27 11:18:51,586 DEBG 'start-script' stdout output:
2019-03-27 11:18:51.585 INFO --- o.a.p.service.SettingsService : Java: 1.8.0_201, OS: Linux

2019-03-27 11:18:51,814 DEBG 'start-script' stdout output:
2019-03-27 11:18:51.814 INFO --- org.airsonic.player.Application : Detected Tomcat web server

2019-03-27 11:18:56,570 DEBG 'start-script' stdout output:
2019-03-27 11:18:56.570 ERROR --- o.a.p.spring.SpringLiquibase : ===============================================


2019-03-27 11:18:56,571 DEBG 'start-script' stdout output:
2019-03-27 11:18:56.570 ERROR --- o.a.p.spring.SpringLiquibase : An exception occurred during database migration


2019-03-27 11:18:56,571 DEBG 'start-script' stdout output:
2019-03-27 11:18:56.571 ERROR --- o.a.p.spring.SpringLiquibase : A rollback file has been generated at /config/rollback.sql


2019-03-27 11:18:56,571 DEBG 'start-script' stdout output:
2019-03-27 11:18:56.571 ERROR --- o.a.p.spring.SpringLiquibase : Execute it within your database to rollback any changes


2019-03-27 11:18:56,576 DEBG 'start-script' stdout output:
2019-03-27 11:18:56.575 ERROR --- o.a.p.spring.SpringLiquibase : The exception is as follows



liquibase.exception.DatabaseException: java.sql.SQLException: error in script file line: 1562 java.io.IOException: org.hsqldb.HsqlException: Value too long

at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:393) ~[liquibase-core-3.5.1.jar!/:na]
at org.airsonic.player.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:26) ~[classes!/:10.2.1-RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1689) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1627) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:297) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:583) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:364) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1269) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:551) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) [spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) [spring-context-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) [spring-context-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:124) [spring-boot-1.5.18.RELEASE.jar!/:1.5.18.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.18.RELEASE.jar!/:1.5.18.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.18.RELEASE.jar!/:1.5.18.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.18.RELEASE.jar!/:1.5.18.RELEASE]
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:134) [spring-boot-1.5.18.RELEASE.jar!/:1.5.18.RELEASE]
at org.airsonic.player.Application.main(Application.java:229) [classes!/:10.2.1-RELEASE]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_201]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_201]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_201]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_201]
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [airsonic.war:10.2.1-RELEASE]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [airsonic.war:10.2.1-RELEASE]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [airsonic.war:10.2.1-RELEASE]
at org.springframework.boot.loader.WarLauncher.main(WarLauncher.java:59) [airsonic.war:10.2.1-RELEASE]
Caused by: java.sql.SQLException: error in script file line: 1562 java.io.IOException: org.hsqldb.HsqlException: Value too long

at org.hsqldb.jdbc.Util.sqlException(Unknown Source) ~[hsqldb-1.8.0.7.jar!/:private-2006/09/24-10:30:15]
at org.hsqldb.jdbc.jdbcConnection.<init>(Unknown Source) ~[hsqldb-1.8.0.7.jar!/:private-2006/09/24-10:30:15]
at org.hsqldb.jdbcDriver.getConnection(Unknown Source) ~[hsqldb-1.8.0.7.jar!/:private-2006/09/24-10:30:15]
at org.hsqldb.jdbcDriver.connect(Unknown Source) ~[hsqldb-1.8.0.7.jar!/:private-2006/09/24-10:30:15]
at java.sql.DriverManager.getConnection(DriverManager.java:664) ~[na:1.8.0_201]
at java.sql.DriverManager.getConnection(DriverManager.java:208) ~[na:1.8.0_201]
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:153) ~[spring-jdbc-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:144) ~[spring-jdbc-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:196) ~[spring-jdbc-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:159) ~[spring-jdbc-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:388) ~[liquibase-core-3.5.1.jar!/:na]
... 41 common frames omitted


2019-03-27 11:18:56,576 DEBG 'start-script' stdout output:
2019-03-27 11:18:56.576 ERROR --- o.a.p.spring.SpringLiquibase : ===============================================


2019-03-27 11:18:56,577 DEBG 'start-script' stdout output:
2019-03-27 11:18:56.577 WARN --- ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'playerSettingsController': Unsatisfied dependency expressed through field 'playerService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [applicationContext-db.xml]: Invocation of init method failed; nested exception is liquibase.exception.DatabaseException: java.sql.SQLException: error in script file line: 1562 java.io.IOException: org.hsqldb.HsqlException: Value too long


2019-03-27 11:18:56,600 DEBG 'start-script' stdout output:
2019-03-27 11:18:56.599 ERROR --- o.s.boot.SpringApplication : Application startup failed


org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'playerSettingsController': Unsatisfied dependency expressed through field 'playerService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [applicationContext-db.xml]: Invocation of init method failed; nested exception is liquibase.exception.DatabaseException: java.sql.SQLException: error in script file line: 1562 java.io.IOException: org.hsqldb.HsqlException: Value too long

at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:586) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:364) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1269) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:551) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) ~[spring-context-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) ~[spring-context-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:124) ~[spring-boot-1.5.18.RELEASE.jar!/:1.5.18.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) ~[spring-boot-1.5.18.RELEASE.jar!/:1.5.18.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) ~[spring-boot-1.5.18.RELEASE.jar!/:1.5.18.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) ~[spring-boot-1.5.18.RELEASE.jar!/:1.5.18.RELEASE]
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:134) [spring-boot-1.5.18.RELEASE.jar!/:1.5.18.RELEASE]
at org.airsonic.player.Application.main(Application.java:229) [classes!/:10.2.1-RELEASE]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_201]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_201]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_201]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_201]
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [airsonic.war:10.2.1-RELEASE]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [airsonic.war:10.2.1-RELEASE]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [airsonic.war:10.2.1-RELEASE]
at org.springframework.boot.loader.WarLauncher.main(WarLauncher.java:59) [airsonic.war:10.2.1-RELEASE]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [applicationContext-db.xml]: Invocation of init method failed; nested exception is liquibase.exception.DatabaseException: java.sql.SQLException: error in script file line: 1562 java.io.IOException: org.hsqldb.HsqlException: Value too long

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1631) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:297) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1136) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1064) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:583) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
... 26 common frames omitted
Caused by: liquibase.exception.DatabaseException: java.sql.SQLException: error in script file line: 1562 java.io.IOException: org.hsqldb.HsqlException: Value too long

at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:393) ~[liquibase-core-3.5.1.jar!/:na]
at org.airsonic.player.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:26) ~[classes!/:10.2.1-RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1689) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1627) ~[spring-beans-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
... 38 common frames omitted
Caused by: java.sql.SQLException: error in script file line: 1562 java.io.IOException: org.hsqldb.HsqlException: Value too long

at org.hsqldb.jdbc.Util.sqlException(Unknown Source) ~[hsqldb-1.8.0.7.jar!/:private-2006/09/24-10:30:15]
at org.hsqldb.jdbc.jdbcConnection.<init>(Unknown Source) ~[hsqldb-1.8.0.7.jar!/:private-2006/09/24-10:30:15]
at org.hsqldb.jdbcDriver.getConnection(Unknown Source) ~[hsqldb-1.8.0.7.jar!/:private-2006/09/24-10:30:15]
at org.hsqldb.jdbcDriver.connect(Unknown Source) ~[hsqldb-1.8.0.7.jar!/:private-2006/09/24-10:30:15]
at java.sql.DriverManager.getConnection(DriverManager.java:664) ~[na:1.8.0_201]
at java.sql.DriverManager.getConnection(DriverManager.java:208) ~[na:1.8.0_201]
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:153) ~[spring-jdbc-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:144) ~[spring-jdbc-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:196) ~[spring-jdbc-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:159) ~[spring-jdbc-4.3.21.RELEASE.jar!/:4.3.21.RELEASE]
at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:388) ~[liquibase-core-3.5.1.jar!/:na]
... 41 common frames omitted


2019-03-27 11:18:56,652 DEBG fd 8 closed, stopped monitoring <POutputDispatcher at 22427497026984 for <Subprocess at 22427497027488 with name start-script in state RUNNING> (stdout)>
2019-03-27 11:18:56,652 DEBG fd 10 closed, stopped monitoring <POutputDispatcher at 22427497025688 for <Subprocess at 22427497027488 with name start-script in state RUNNING> (stderr)>
2019-03-27 11:18:56,652 INFO exited: start-script (exit status 1; not expected)
2019-03-27 11:18:56,653 DEBG received SIGCLD indicating a child quit

 

Link to comment

@IamSpartacus looking at the output i would suspect a corrupt database, you have two options:-

 

1. stop the container and delete the corrupt database and then restore the database from backup and start.

or

2. stop the container and delete the corrupt database, then start again and re-scan media.

Link to comment
  • 1 month later...

My airsonic is running out of memory and I cant for the life of me figure out where to see the config and bump the max memory. 

 

I would wipe the docker and re-setup but I dont want to lose all my subscribed podcasts.  is there a way to save just the subscriptions?  or even better where do I increase the memory?

 

forgot to add 7TB

 

heres my log output:

 

ErrorWarningSystemArrayLogin


Created by...
___. .__ .__
\_ |__ |__| ____ | |__ ____ ___ ___
| __ \| |/ \| | \_/ __ \\ \/ /
| \_\ \ | | \ Y \ ___/ > <
|___ /__|___| /___| /\___ >__/\_ \
\/ \/ \/ \/ \/
https://hub.docker.com/u/binhex/

2019-07-04 10:36:20.602831 [info] System information Linux 76a953df9b91 4.19.56-Unraid #1 SMP Tue Jun 25 10:19:34 PDT 2019 x86_64 GNU/Linux
2019-07-04 10:36:20.652850 [info] PUID defined as '99'
2019-07-04 10:36:20.766157 [info] PGID defined as '100'
2019-07-04 10:36:20.823659 [info] UMASK defined as '000'
2019-07-04 10:36:20.845711 [info] Permissions already set for volume mappings
2019-07-04 10:36:20.867103 [warn] CONTEXT_PATH not defined (via -e CONTEXT_PATH), assuming site runs from '/'
2019-07-04 10:36:20.891572 [info] Starting Supervisor...
2019-07-04 10:36:21,396 INFO Included extra file "/etc/supervisor/conf.d/airsonic.conf" during parsing
2019-07-04 10:36:21,396 INFO Set uid to user 0 succeeded
2019-07-04 10:36:21,400 INFO supervisord started with pid 6
2019-07-04 10:36:22,402 INFO spawned: 'start-script' with pid 51
2019-07-04 10:36:22,402 INFO reaped unknown pid 7
2019-07-04 10:36:22,416 DEBG 'start-script' stderr output:
ln: failed to create symbolic link '/config/transcode/ffmpeg': File exists

2019-07-04 10:36:22,416 INFO success: start-script entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2019-07-04 10:36:24,095 DEBG 'start-script' stdout output:
_ _
/\ (_) (_)
/ \ _ _ __ ___ ___ _ __ _ ___
/ /\ \ | | '__|/ __|/ _ \| '_ \| |/ __|
/ ____ \| | | \__ \ (_) | | | | | (__
/_/ \_\_|_| |___/\___/|_| |_|_|\___|

10.3.1-RELEASE




2019-07-04 10:36:24,576 DEBG 'start-script' stdout output:
2019-07-04 10:36:24.571 INFO --- org.airsonic.player.Application : Starting Application v10.3.1-RELEASE on 76a953df9b91 with PID 56 (/opt/airsonic/airsonic.war started by nobody in /)

2019-07-04 10:36:24,577 DEBG 'start-script' stdout output:
2019-07-04 10:36:24.577 INFO --- org.airsonic.player.Application : The following profiles are active: legacy

2019-07-04 10:36:27,110 DEBG 'start-script' stdout output:
2019-07-04 10:36:27.110 INFO --- o.a.p.service.SettingsService : Java: 1.8.0_211, OS: Linux

2019-07-04 10:36:27,352 DEBG 'start-script' stdout output:
2019-07-04 10:36:27.352 INFO --- org.airsonic.player.Application : Detected Tomcat web server

2019-07-04 10:38:01,167 DEBG 'start-script' stdout output:
2019-07-04 10:38:01.166 ERROR --- o.a.p.spring.SpringLiquibase : ===============================================

2019-07-04 10:38:01,167 DEBG 'start-script' stdout output:
2019-07-04 10:38:01.167 ERROR --- o.a.p.spring.SpringLiquibase : An exception occurred during database migration
2019-07-04 10:38:01.167 ERROR --- o.a.p.spring.SpringLiquibase : A rollback file has been generated at /config/rollback.sql
2019-07-04 10:38:01.167 ERROR --- o.a.p.spring.SpringLiquibase : Execute it within your database to rollback any changes

2019-07-04 10:38:01,172 DEBG 'start-script' stdout output:
2019-07-04 10:38:01.171 ERROR --- o.a.p.spring.SpringLiquibase : The exception is as follows


liquibase.exception.DatabaseException: java.sql.SQLException: Out of Memory
at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:307) ~[liquibase-core-3.6.3.jar!/:na]
at org.airsonic.player.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:26) ~[classes!/:10.3.1-RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1688) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1626) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:297) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1139) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1067) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:583) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:364) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1268) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:551) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:764) [spring-beans-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) [spring-context-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) [spring-context-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:124) [spring-boot-1.5.20.RELEASE.jar!/:1.5.20.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.20.RELEASE.jar!/:1.5.20.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.20.RELEASE.jar!/:1.5.20.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.20.RELEASE.jar!/:1.5.20.RELEASE]
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:134) [spring-boot-1.5.20.RELEASE.jar!/:1.5.20.RELEASE]
at org.airsonic.player.Application.main(Application.java:229) [classes!/:10.3.1-RELEASE]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_211]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_211]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_211]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_211]
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [airsonic.war:10.3.1-RELEASE]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [airsonic.war:10.3.1-RELEASE]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [airsonic.war:10.3.1-RELEASE]
at org.springframework.boot.loader.WarLauncher.main(WarLauncher.java:59) [airsonic.war:10.3.1-RELEASE]
Caused by: java.sql.SQLException: Out of Memory
at org.hsqldb.jdbc.Util.sqlException(Unknown Source) ~[hsqldb-1.8.0.7.jar!/:private-2006/09/24-10:30:15]
at org.hsqldb.jdbc.jdbcConnection.<init>(Unknown Source) ~[hsqldb-1.8.0.7.jar!/:private-2006/09/24-10:30:15]
at org.hsqldb.jdbcDriver.getConnection(Unknown Source) ~[hsqldb-1.8.0.7.jar!/:private-2006/09/24-10:30:15]
at org.hsqldb.jdbcDriver.connect(Unknown Source) ~[hsqldb-1.8.0.7.jar!/:private-2006/09/24-10:30:15]
at java.sql.DriverManager.getConnection(DriverManager.java:664) ~[na:1.8.0_211]
at java.sql.DriverManager.getConnection(DriverManager.java:208) ~[na:1.8.0_211]
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:153) ~[spring-jdbc-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:144) ~[spring-jdbc-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:196) ~[spring-jdbc-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:159) ~[spring-jdbc-4.3.23.RELEASE.jar!/:4.3.23.RELEASE]
at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:302) ~[liquibase-core-3.6.3.jar!/:na]
... 41 common frames omitted


2019-07-04 10:38:01,172 DEBG 'start-script' stdout output:
2019-07-04 10:38:01.172 ERROR --- o.a.p.spring.SpringLiquibase : ===============================================

2019-07-04 10:38:01,172 DEBG 'start-script' stdout output:
2019-07-04 10:38:01.172 WARN --- ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'subsonicRESTController': Unsatisfied dependency expressed through field 'playerService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [applicationContext-db.xml]: Invocation of init method failed; nested exception is liquibase.exception.DatabaseException: java.sql.SQLException: Out of Memory
 

Edited by jonnypajamas
Link to comment
Odd thing is that I'm running the same docker on my backup server and don't get the error.  only difference is the one with the error is the one I subscribe to podcasts on.  somehow that is pushing me over.
Ok I've now implemented a way of changing the max memory for Java so you now need to pull down the latest image and then add in an env var with name MAX_MEMORY and value as the amount of memory you want to allow, try 4096 as a starting point.

Sent from my EML-L29 using Tapatalk

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.