Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JabRef not syncing changes to shared databases (Mysql/MariaDB and Postgresql) #6944

Closed
attractedtofire opened this issue Sep 25, 2020 · 18 comments · Fixed by #7178
Closed

JabRef not syncing changes to shared databases (Mysql/MariaDB and Postgresql) #6944

attractedtofire opened this issue Sep 25, 2020 · 18 comments · Fixed by #7178
Labels
shared-database status: waiting-for-feedback The submitter or other users need to provide more information about the issue

Comments

@attractedtofire
Copy link

JabRef 5.1--ArchLinux--1, Linux 5.8.10-arch1-1 amd64, Java 14.0.2

I have tested the latest development version from http://builds.jabref.org/master/ and the problem persists:
Dev Version tested:
JabRef 5.2--2020-09-24--75b6770, Linux 5.8.10-arch1-1 amd64, Java 15
(The same problem exists with the latest MAC Version)

Databases tested:
PostgreSQL 12 (local)
PostgreSQL instance from elephantsql
MariaDB 10.1.40 (remote)

After successful connection to an empty Database the tables are created as expected but any entries made in JabRef are not being synced. The input of a new entry instead immedeatly results in the errors attached bellow.
Interesstingly when importing an existing library to the shared database the entries are created as expected.

Steps to reproduce the behaviour:

  1. Set up a database and connect to it in JabRef
  2. Add some Entry in JabRef

ps Thank you for all the great work!
pps Sorry if I should have missed something obvious and stupid.

Log File Connection to PostgreSQL server established. Enabling live reloading of /usr/share/java/jabref/resources/main/org/jabref/gui/Base.css Enabling live reloading of /usr/share/java/jabref/resources/main/org/jabref/gui/Dark.css SQL Error: org.postgresql.util.PSQLException: No value specified for parameter 1. at [email protected]/org.postgresql.core.v3.SimpleParameterList.checkAllParametersSet(SimpleParameterList.java:275) at [email protected]/org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:307) at [email protected]/org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:473) at [email protected]/org.postgresql.jdbc.PgStatement.execute(PgStatement.java:393) at [email protected]/org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:164) at [email protected]/org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:130) at [email protected]/org.jabref.logic.shared.DBMSProcessor.insertIntoFieldTable(DBMSProcessor.java:274) at [email protected]/org.jabref.logic.shared.DBMSProcessor.insertEntries(DBMSProcessor.java:155) at [email protected]/org.jabref.logic.shared.DBMSSynchronizer.listen(DBMSSynchronizer.java:85) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at [email protected]/com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:87) at [email protected]/com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:144) at [email protected]/com.google.common.eventbus.Subscriber$1.run(Subscriber.java:72) at [email protected]/com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30) at [email protected]/com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:67) at [email protected]/com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:108) at [email protected]/com.google.common.eventbus.EventBus.post(EventBus.java:212) at [email protected]/org.jabref.model.database.event.CoarseChangeFilter.listen(CoarseChangeFilter.java:29) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:564) at [email protected]/com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:87) at [email protected]/com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:144) at [email protected]/com.google.common.eventbus.Subscriber$1.run(Subscriber.java:72) at [email protected]/com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30) at [email protected]/com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:67) at [email protected]/com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:108) at [email protected]/com.google.common.eventbus.EventBus.post(EventBus.java:212) at [email protected]/org.jabref.model.database.BibDatabase.insertEntries(BibDatabase.java:206) at [email protected]/org.jabref.model.database.BibDatabase.insertEntries(BibDatabase.java:195) at [email protected]/org.jabref.gui.BasePanel.insertEntries(BasePanel.java:254) at [email protected]/org.jabref.gui.BasePanel.insertEntry(BasePanel.java:240) at [email protected]/org.jabref.gui.importer.NewEntryAction.execute(NewEntryAction.java:57) at [email protected]/org.jabref.gui.actions.JabRefAction.lambda$new$2(JabRefAction.java:41) at org.controlsfx.controls/org.controlsfx.control.action.Action.handle(Action.java:419) at org.controlsfx.controls/org.controlsfx.control.action.Action.handle(Action.java:64) at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234) at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at javafx.base/javafx.event.Event.fireEvent(Event.java:198) at javafx.graphics/javafx.scene.Node.fireEvent(Node.java:8885) at javafx.controls/javafx.scene.control.Button.fire(Button.java:203) at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:206) at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274) at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247) at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234) at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.base/javafx.event.Event.fireEvent(Event.java:198) at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3890) at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1885) at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2618) at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:409) at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:299) at java.base/java.security.AccessController.doPrivileged(AccessController.java:391) at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:447) at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:412) at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:446) at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556) at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942) at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277) at java.base/java.lang.Thread.run(Thread.java:832)
@koppor
Copy link
Member

koppor commented Sep 26, 2020

Good to hear that people start using the feature and reporting issues. @m-mauersberger is currently working on the code (refs #6868).

Could you test the lastest development build at https://builds.jabref.org/master/?

@attractedtofire
Copy link
Author

Hello Koppor,
thank you for getting back so quickly!

Sure thing, glad if I can assist:
I just checked with JabRef 5.2--2020-09-26--deb2f20, Linux 5.7.19-1-ck-broadwell amd64, Java 15 (for the time being just against ElphantSQL).
It is still not syncing anything but this time it is throwing a whole bunch of read timeouts (I paste one bellow) and than crashes after trying to sync for about a minute or two. I checked to see if there where any network issues but accessing ElephantSQL through the webinterface and psql didn't seem at all slow. In any case, I will also check the new dev build against a local postgres instance tomorrow.

Error thrown javax.net.ssl|WARNING|21|JabRef CachedThreadPool|2020-09-26 22:52:18.959 CEST|null:-1|handling exception ( "throwable" : { java.net.SocketTimeoutException: Read timed out at java.base/sun.nio.ch.NioSocketImpl.timedRead(Unknown Source) at java.base/sun.nio.ch.NioSocketImpl.implRead(Unknown Source) at java.base/sun.nio.ch.NioSocketImpl.read(Unknown Source) at java.base/sun.nio.ch.NioSocketImpl$1.read(Unknown Source) at java.base/java.net.Socket$SocketInputStream.read(Unknown Source) at java.base/sun.security.ssl.SSLSocketInputRecord.read(Unknown Source) at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(Unknown Source) at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(Unknown Source) at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(Unknown Source) at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(Unknown Source) at [email protected]/org.postgresql.core.VisibleBufferedInputStream.readMore(Unknown Source) at [email protected]/org.postgresql.core.VisibleBufferedInputStream.ensureBytes(Unknown Source) at [email protected]/org.postgresql.core.PGStream.hasMessagePending(Unknown Source) at [email protected]/org.postgresql.core.v3.QueryExecutorImpl.processNotifies(Unknown Source) at [email protected]/org.postgresql.jdbc.PgConnection.getNotifications(Unknown Source) at [email protected]/org.postgresql.jdbc.PgConnection.getNotifications(Unknown Source) at [email protected]/org.jabref.logic.shared.listener.PostgresSQLNotificationListener.run(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source)}

)

@m-mauersberger
Copy link
Contributor

I got a similar socketTimeOut in #6869 but it was not directly related to syncing to PSQL database at all. Synchronization (without SSL) worked as intended.
I suspect it has something to do with SSL socket (see log). Maybe this could also be the reason for your sync fail, @attractedtofire?

@attractedtofire
Copy link
Author

Hi m-mauersberger!

Funny, I don't think I checked the "use SSL" checkbox in the first place. I just tried the dev build again against MySQL (MariaDB 10.1.40) without SSL and got the same error as in my initial issue report (attached bellow).

java.sql.SQLTransientConnectionException: (conn=13281484) Parameter at position 1 is not set at org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.createException(Unknown Source) ~[org.jabref.merged.module:?] at org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.create(Unknown Source) ~[org.jabref.merged.module:?] at org.mariadb.jdbc.ClientSidePreparedStatement.executeInternal(Unknown Source) ~[org.jabref.merged.module:?] at org.mariadb.jdbc.ClientSidePreparedStatement.execute(Unknown Source) ~[org.jabref.merged.module:?] at org.mariadb.jdbc.ClientSidePreparedStatement.executeUpdate(Unknown Source) ~[org.jabref.merged.module:?] at org.jabref.logic.shared.DBMSProcessor.insertIntoFieldTable(Unknown Source) ~[org.jabref:?] at org.jabref.logic.shared.DBMSProcessor.insertEntries(Unknown Source) ~[org.jabref:?] at org.jabref.logic.shared.DBMSSynchronizer.listen(Unknown Source) ~[org.jabref:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?] at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.Subscriber$1.run(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.util.concurrent.DirectExecutor.execute(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.Subscriber.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.EventBus.post(Unknown Source) ~[org.jabref.merged.module:?] at org.jabref.logic.util.CoarseChangeFilter.listen(Unknown Source) ~[org.jabref:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?] at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.Subscriber$1.run(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.util.concurrent.DirectExecutor.execute(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.Subscriber.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.EventBus.post(Unknown Source) ~[org.jabref.merged.module:?] at org.jabref.model.database.BibDatabase.insertEntries(Unknown Source) ~[org.jabref:?] at org.jabref.model.database.BibDatabase.insertEntries(Unknown Source) ~[org.jabref:?] at org.jabref.gui.BasePanel.insertEntries(Unknown Source) ~[org.jabref:?] at org.jabref.gui.BasePanel.insertEntry(Unknown Source) ~[org.jabref:?] at org.jabref.gui.importer.NewEntryAction.execute(Unknown Source) ~[org.jabref:?] at org.jabref.gui.actions.JabRefAction.lambda$new$2(Unknown Source) ~[org.jabref:?] at org.controlsfx.control.action.Action.handle(Unknown Source) ~[org.jabref.merged.module:?] at org.controlsfx.control.action.Action.handle(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventUtil.fireEvent(Unknown Source) ~[org.jabref.merged.module:?] at javafx.event.Event.fireEvent(Unknown Source) ~[org.jabref.merged.module:?] at javafx.scene.Node.fireEvent(Unknown Source) ~[org.jabref.merged.module:?] at javafx.scene.control.Button.fire(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.scene.control.inputmap.InputMap.handle(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventUtil.fireEvent(Unknown Source) ~[org.jabref.merged.module:?] at javafx.event.Event.fireEvent(Unknown Source) ~[org.jabref.merged.module:?] at javafx.scene.Scene$MouseHandler.process(Unknown Source) ~[org.jabref.merged.module:?] at javafx.scene.Scene.processMouseEvent(Unknown Source) ~[org.jabref.merged.module:?] at javafx.scene.Scene$ScenePeerListener.mouseEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source) ~[org.jabref.merged.module:?] at java.security.AccessController.doPrivileged(Unknown Source) ~[?:?] at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.glass.ui.View.handleMouseEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.glass.ui.View.notifyMouse(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) ~[org.jabref.merged.module:?] at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(Unknown Source) ~[org.jabref.merged.module:?] at java.lang.Thread.run(Unknown Source) [?:?]

@attractedtofire
Copy link
Author

Some promised updates:

I checked the latest dev build (JabRef 5.2--2020-09-28--b1d4747, Linux 5.8.12-arch1-1 amd64, Java 15) against a local postgres installation. The situation remains largely the same (see error log below), with the difference that now at least the "ENTRY" table and the "ENTRY_SHARED_ID_seq" do get populated. Nothing in FIELD or METADATA though. Manual sync via "pull changes" doesn't change this either. So one is facing an empty db after reconnect.

Log output org.postgresql.util.PSQLException: No value specified for parameter 1. at org.postgresql.core.v3.SimpleParameterList.checkAllParametersSet(Unknown Source) ~[org.jabref.merged.module:?] at org.postgresql.core.v3.QueryExecutorImpl.execute(Unknown Source) ~[org.jabref.merged.module:?] at org.postgresql.jdbc.PgStatement.executeInternal(Unknown Source) ~[org.jabref.merged.module:?] at org.postgresql.jdbc.PgStatement.execute(Unknown Source) ~[org.jabref.merged.module:?] at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(Unknown Source) ~[org.jabref.merged.module:?] at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(Unknown Source) ~[org.jabref.merged.module:?] at org.jabref.logic.shared.DBMSProcessor.insertIntoFieldTable(Unknown Source) ~[org.jabref:?] at org.jabref.logic.shared.DBMSProcessor.insertEntries(Unknown Source) ~[org.jabref:?] at org.jabref.logic.shared.DBMSSynchronizer.listen(Unknown Source) ~[org.jabref:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?] at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.Subscriber$1.run(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.util.concurrent.DirectExecutor.execute(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.Subscriber.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.EventBus.post(Unknown Source) ~[org.jabref.merged.module:?] at org.jabref.logic.util.CoarseChangeFilter.listen(Unknown Source) ~[org.jabref:?] at jdk.internal.reflect.GeneratedMethodAccessor10.invoke(Unknown Source) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?] at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.Subscriber$1.run(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.util.concurrent.DirectExecutor.execute(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.Subscriber.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Unknown Source) ~[org.jabref.merged.module:?] at com.google.common.eventbus.EventBus.post(Unknown Source) ~[org.jabref.merged.module:?] at org.jabref.model.database.BibDatabase.insertEntries(Unknown Source) ~[org.jabref:?] at org.jabref.model.database.BibDatabase.insertEntries(Unknown Source) ~[org.jabref:?] at org.jabref.gui.BasePanel.insertEntries(Unknown Source) ~[org.jabref:?] at org.jabref.gui.BasePanel.insertEntry(Unknown Source) ~[org.jabref:?] at org.jabref.gui.importer.NewEntryAction.execute(Unknown Source) ~[org.jabref:?] at org.jabref.gui.actions.JabRefAction.lambda$new$2(Unknown Source) ~[org.jabref:?] at org.controlsfx.control.action.Action.handle(Unknown Source) ~[org.jabref.merged.module:?] at org.controlsfx.control.action.Action.handle(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventUtil.fireEvent(Unknown Source) ~[org.jabref.merged.module:?] at javafx.event.Event.fireEvent(Unknown Source) ~[org.jabref.merged.module:?] at javafx.scene.Node.fireEvent(Unknown Source) ~[org.jabref.merged.module:?] at javafx.scene.control.Button.fire(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.scene.control.inputmap.InputMap.handle(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.event.EventUtil.fireEvent(Unknown Source) ~[org.jabref.merged.module:?] at javafx.event.Event.fireEvent(Unknown Source) ~[org.jabref.merged.module:?] at javafx.scene.Scene$MouseHandler.process(Unknown Source) ~[org.jabref.merged.module:?] at javafx.scene.Scene.processMouseEvent(Unknown Source) ~[org.jabref.merged.module:?] at javafx.scene.Scene$ScenePeerListener.mouseEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source) ~[org.jabref.merged.module:?] at java.security.AccessController.doPrivileged(Unknown Source) ~[?:?] at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.glass.ui.View.handleMouseEvent(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.glass.ui.View.notifyMouse(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) ~[org.jabref.merged.module:?] at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(Unknown Source) ~[org.jabref.merged.module:?] at java.lang.Thread.run(Unknown Source) [?:?]

@Siedlerchr
Copy link
Member

Seems there is something missing in the parameter for the postgres statement. Maybe I find time to look into it later

@Siedlerchr
Copy link
Member

I tested locally with Postgres version 10 and it worked fine. Maybe there have been some changes in the later version,

@attractedtofire
Copy link
Author

attractedtofire commented Sep 28, 2020 via email

@Siedlerchr
Copy link
Member

I will try with version 12 or newer later or the next days

@attractedtofire
Copy link
Author

I just tested the b1d4747 build against a local Postgres 10.3 server with the same results as before: it will connect, set up the tables and populate the ENTRY table but not sync anything else and deliver the same error as before.

Don't know if related: I have noticed the db connection resulting in the following entry showing up in the postgresql logs:
FATAL: unsupported frontend protocol 1234.5680: server supports 2.0 to 3.0

I can dedicate some time to this on the weekend and do some more in depth testing and also check the latest build on OS X.

@Siedlerchr
Copy link
Member

I can connect to PostgresSQL 13 .0 fine on OSX and all database tests are working fine for postgres

@Siedlerchr Siedlerchr added the status: waiting-for-feedback The submitter or other users need to provide more information about the issue label Nov 27, 2020
@bazjo
Copy link
Contributor

bazjo commented Dec 3, 2020

I can reproduce this issue on all versions from 5.0-alpha to the current development build across linux, macOS and Windows for both MySQL (MariaDB 10 database) and PostgreSQL (ElephantSQL).

Behaviour is as follows: Connection to database (no SSL and no local library is used) works fine (however #6869 affects me too), upon first connection, all tables are generated. Adding groups works fine. Entries however are not synced to the database. When copying and pasting a newly created entry which is not synced due to this bug, it is however properly synced to the database, this can be used as a workaround.

Combined with #6869 this makes JabRef 5.X hardly usable with a shared database for me for now. Is this feature used so rarely or are other users not experiencing any issues?

Thank you so much for your help!

@Siedlerchr
Copy link
Member

I found the issue for #6869, a fix is on the way

@Siedlerchr
Copy link
Member

@attractedtofire @bazjo @m-mauersberger Can you please test this version? I found the issue
https://builds.jabref.org/pull/7178/merge/

@m-mauersberger
Copy link
Contributor

Loading and updating shared database works with both most of the time:

(1) Windows 10 10.0 amd64
Java 14.0.2

(2) Linux 4.12.14-lp151.28.83-default amd64
Java 15.0.1

Where "most" means about 1 in about 5 directly after startup. In the error case, shared database is immediately disconnected when loading. So pulling changes asks for reconnection. I could not exactly find out under which circumstances this appears.

Another thing is entry count on the left. I think it is not properly updated when creating an entry via "+".

@m-mauersberger
Copy link
Contributor

I found the issue for #6869, a fix is on the way

I experienced for both systems above that the tick on "Remember password" is saved although I have to type it in again. Maybe I have to specify a keystore? But then I can't browse something because the button is greyed out.

When I try to log in to database without password (tick remember is on) an exception window appears.

@Siedlerchr
Copy link
Member

Hm, for me, the password is remembered correctly:
grafik

@Siedlerchr
Copy link
Member

The fix is now merged in master

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
shared-database status: waiting-for-feedback The submitter or other users need to provide more information about the issue
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants