mynttt / UpdateTool

A tool to update the IMDB ratings for Plex libraries that contain movies/series and use the IMDB agent to receive ratings
GNU General Public License v3.0
255 stars 12 forks source link

SQLiteException #9

Closed MarcelCosta79 closed 4 years ago

MarcelCosta79 commented 4 years ago

Hi,

I´m trying to run it but I keep getting the error below. I´m using win 10 pro with docker desktop. Can you help me ? Thank you

[ERROR] - 2020-01-10 22:26:50 @ ImdbDockerImplementation$ImdbBatchJob.run: ======================================== [ERROR] - 2020-01-10 22:26:50 @ ImdbDockerImplementation$ImdbBatchJob.run: org.sqlite.SQLiteException: [SQLITE_IOERR_SHMOPEN] I/O error within xShmMap while trying to open a new shared memory segment (disk I/O error) at org.sqlite.core.DB.newSQLException(DB.java:941) at org.sqlite.core.DB.newSQLException(DB.java:953) at org.sqlite.core.DB.throwex(DB.java:918) at org.sqlite.core.NativeDB.prepare_utf8(Native Method) at org.sqlite.core.NativeDB.prepare(NativeDB.java:134) at org.sqlite.core.DB.prepare(DB.java:257) at org.sqlite.jdbc3.JDBC3Statement.executeQuery(JDBC3Statement.java:73) at updatetool.common.SqliteDatabaseProvider.queryFor(SqliteDatabaseProvider.java:24) at updatetool.common.DatabaseSupport.requestLibraries(DatabaseSupport.java:39) at updatetool.imdb.ImdbDockerImplementation$ImdbBatchJob.run(ImdbDockerImplementation.java:142) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) [ERROR] - 2020-01-10 22:26:50 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================

Full log log.txt

mynttt commented 4 years ago

Sounds like a file permission error. How do you start the docker?

MarcelCosta79 commented 4 years ago

Hi,

Thank you,

Just as another app without elevated privileges.

Another thing that needs mention:

Besides that it's everything normal.

mynttt commented 4 years ago

Hmm then it seems that docker on windows is some kind of mess. It's defenitly an issue with the application not having access to the sqlite database.

It might be easier for you to just run it as a Java application.

You'll need Java 11:

https://adoptopenjdk.net/

Then you can get the jar from the release page and create a bat script that runs it:

set OMDB_API_KEY=abcdefg
set TMDB_API_KEY=abcdefg
set PLEX_DATA_DIR=C:\User\Data\Plex Media Server

java -jar UpdateTool-xxx.jar imdb-docker

The environment variable will handle the spaces on windows. Let me know if that works!

MarcelCosta79 commented 4 years ago

Yep. Docker Desktop is a mess. Thank you for the tip. I'll try the Java 11.

MarcelCosta79 commented 4 years ago

It worked ! Thank you very much !!

But I had to make a Junction link. The Jar file was pointing to "C:\User\Data\Plex Media Server" but my PMS is installed at "C:\Users\marce\AppData\Local\Plex Media Server"

Thank you again !

mynttt commented 4 years ago

Glad it works! You can change the directory by setting PLEX_DATA_DIR to your path so you won't need a junction. I just set that as an example there.

MarcelCosta79 commented 4 years ago

Oh, my God. lol I was so happy and in a hurry that iust read the 2 first lines. I don't have to say that at first I tried to run it with the java -jar UpdateTool-xxx.jar imdb-docker Just after the error that I got the xxx. Thank you, again !

mynttt commented 4 years ago

Haha no worries! It's pretty unintuitive to run it with the environment variables. It's only like that because it makes it easier for me to maintain a docker and because there is no sane way to parse and validate command line arguments properly with Java.