The logfile contains exceptions for errors in unknown/get_words. It appears that there can be a problem if no words are found for a document. This maybe happens when a user enters random document ids via the REST API.
2021-04-20 09:15:59,653 [XNIO-1 task-4] INFO daisyproducer2.words.unknown - Deleted 0 local words that were not in unknown words for book 1
2021-04-20 09:16:19,744 [XNIO-1 task-4] ERROR daisyproducer2.middleware.exception - Exception in :insert-unknown-words caused by: You have an error in your SQL syntax; check the manual that corresponds to your\
MariaDB server version for the right syntax to use near '' at line 2. Call .getCause to see parent exception
java.lang.Exception: Exception in :insert-unknown-words caused by: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at \
line 2. Call .getCause to see parent exception
at conman.core$try_query$fn__22182$fn__22183.invoke(core.clj:35)
at daisyproducer2.db.core$fn__22299$f__22210__auto____22326.invoke(core.clj:21)
at daisyproducer2.words.unknown$get_words.invokeStatic(unknown.clj:130)
at daisyproducer2.words.unknown$get_words.invoke(unknown.clj:127)
at clojure.lang.AFn.applyToHelper(AFn.java:171)
at clojure.lang.AFn.applyTo(AFn.java:144)
at clojure.core$apply.invokeStatic(core.clj:665)
at clojure.core$apply.invoke(core.clj:660)
at iapetos.collector.fn$wrap_instrumentation$fn__19007.doInvoke(fn.clj:42)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:665)
at clojure.core$apply.invoke(core.clj:660)
at iapetos.collector.fn$wrap_instrumentation$fn__19010.doInvoke(fn.clj:44)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:665)
at clojure.core$apply.invoke(core.clj:660)
at iapetos.collector.fn$wrap_instrumentation$fn__19013.doInvoke(fn.clj:46)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:665)
at clojure.core$apply.invoke(core.clj:660)
at iapetos.collector.fn$wrap_instrumentation$fn__19015.doInvoke(fn.clj:48)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:665)
at clojure.core$apply.invoke(core.clj:660)
at iapetos.collector.fn$wrap_instrumentation$fn__19017.doInvoke(fn.clj:50)
at clojure.lang.RestFn.invoke(RestFn.java:482)
at daisyproducer2.routes.services$service_routes$fn__29959.invoke(services.clj:229)
at reitit.ring.coercion$fn__24669$fn__24671$fn__24672.invoke(coercion.cljc:40)
at muuntaja.middleware$wrap_format_request$fn__15844.invoke(middleware.clj:114)
at reitit.ring.middleware.exception$wrap$fn__27119$fn__27120.invoke(exception.clj:49)
at muuntaja.middleware$wrap_format_response$fn__15848.invoke(middleware.clj:132)
at muuntaja.middleware$wrap_format_negotiate$fn__15841.invoke(middleware.clj:96)
at ring.middleware.params$wrap_params$fn__16537.invoke(params.clj:67)
at reitit.ring$ring_handler$fn__24518.invoke(ring.cljc:326)
at clojure.lang.AFn.applyToHelper(AFn.java:154)
at clojure.lang.AFn.applyTo(AFn.java:144)
at clojure.lang.AFunction$1.doInvoke(AFunction.java:31)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.lang.Var.invoke(Var.java:384)
at buddy.auth.middleware$wrap_authentication$fn__18108.invoke(middleware.clj:60)
at buddy.auth.middleware$wrap_authorization$fn__18115.invoke(middleware.clj:114)
at ring.middleware.flash$wrap_flash$fn__15864.invoke(flash.clj:39)
at ring.adapter.undertow.middleware.session$wrap_undertow_session$fn__16293.invoke(session.clj:77)
at ring.middleware.keyword_params$wrap_keyword_params$fn__16365.invoke(keyword_params.clj:53)
at ring.middleware.nested_params$wrap_nested_params$fn__16415.invoke(nested_params.clj:89)
at ring.middleware.multipart_params$wrap_multipart_params$fn__16521.invoke(multipart_params.clj:171)
at ring.middleware.params$wrap_params$fn__16537.invoke(params.clj:67)
at ring.middleware.cookies$wrap_cookies$fn__16110.invoke(cookies.clj:214)
at ring.middleware.absolute_redirects$wrap_absolute_redirects$fn__16661.invoke(absolute_redirects.clj:47)
at ring.middleware.resource$wrap_resource_prefer_resources$fn__16557.invoke(resource.clj:25)
at ring.middleware.content_type$wrap_content_type$fn__16625.invoke(content_type.clj:34)
at ring.middleware.default_charset$wrap_default_charset$fn__16641.invoke(default_charset.clj:31)
at ring.middleware.not_modified$wrap_not_modified$fn__16607.invoke(not_modified.clj:61)
at ring.middleware.x_headers$wrap_x_header$fn__16313.invoke(x_headers.clj:22)
at ring.middleware.x_headers$wrap_x_header$fn__16313.invoke(x_headers.clj:22)
at ring.middleware.x_headers$wrap_x_header$fn__16313.invoke(x_headers.clj:22)
at iapetos.collector.ring$run_instrumented$fn__18950.invoke(ring.clj:135)
at iapetos.collector.ring$safe.invokeStatic(ring.clj:129)
at iapetos.collector.ring$safe.invoke(ring.clj:126)
at iapetos.collector.ring$run_instrumented.invokeStatic(ring.clj:135)
at iapetos.collector.ring$run_instrumented.invoke(ring.clj:131)
at iapetos.collector.ring$wrap_instrumentation$fn__18960.invoke(ring.clj:173)
at iapetos.collector.ring$wrap_metrics_expose$fn__18969.invoke(ring.clj:194)
at daisyproducer2.middleware$wrap_internal_error$fn__19055.invoke(middleware.clj:28)
at ring.adapter.undertow$undertow_handler$fn$reify__31429.handleRequest(undertow.clj:40)
at io.undertow.server.session.SessionAttachmentHandler.handleRequest(SessionAttachmentHandler.java:68)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:387)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:841)
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 2
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
at next.jdbc.result_set$stmt__GT_result_set.invokeStatic(result_set.clj:646)
at next.jdbc.result_set$stmt__GT_result_set.invoke(result_set.clj:641)
at next.jdbc.result_set$fn__20346.invokeStatic(result_set.clj:921)
at next.jdbc.result_set$fn__20346.invoke(result_set.clj:834)
at next.jdbc.protocols$fn__19447$G__19412__19456.invoke(protocols.clj:33)
at next.jdbc$execute_BANG_.invokeStatic(jdbc.clj:241)
at next.jdbc$execute_BANG_.invoke(jdbc.clj:225)
at hugsql.adapter.next_jdbc.HugsqlAdapterNextJdbc.execute(next_jdbc.clj:14)
at hugsql.adapter$fn__21185$G__21169__21190.invoke(adapter.clj:3)
at hugsql.adapter$fn__21185$G__21168__21196.invoke(adapter.clj:3)
at clojure.lang.Var.invoke(Var.java:399)
at hugsql.core$db_fn_STAR_$y__21909.doInvoke(core.clj:458)
at clojure.lang.RestFn.invoke(RestFn.java:445)
at hugsql.core$db_fn_STAR_$y__21909.invoke(core.clj:448)
at conman.core$try_query$fn__22182$fn__22183.invoke(core.clj:33)
... 72 common frames omitted
The logfile contains exceptions for errors in
unknown/get_words
. It appears that there can be a problem if no words are found for a document. This maybe happens when a user enters random document ids via the REST API.