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

Linux JabRef does not start at all #7367

Closed
ilippert opened this issue Jan 19, 2021 · 22 comments
Closed

Linux JabRef does not start at all #7367

ilippert opened this issue Jan 19, 2021 · 22 comments

Comments

@ilippert
Copy link
Contributor

I am using
jabref-5.3.85-1.x86_64, downloaded morning of 19th Jan GMT with bellsoft-java15.x86_64 on Fedora 33.

JabRef does not start.

Happy to provide details if you tell me which commands to run in the shell ;)

@ilippert
Copy link
Contributor Author

@systemoperator sorry to bother, does the latest master run on your Linux machine?

@Siedlerchr
Copy link
Member

Can you try to start it from the script under runtime/bin/JabRef ?

@ilippert
Copy link
Contributor Author

I get this result

Log File
ERROR StatusLogger Unrecognized format specifier [d]
ERROR StatusLogger Unrecognized conversion specifier [d] starting at position 16 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [thread]
ERROR StatusLogger Unrecognized conversion specifier [thread] starting at position 25 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [level]
ERROR StatusLogger Unrecognized conversion specifier [level] starting at position 35 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [logger]
ERROR StatusLogger Unrecognized conversion specifier [logger] starting at position 47 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [msg]
ERROR StatusLogger Unrecognized conversion specifier [msg] starting at position 54 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [n]
ERROR StatusLogger Unrecognized conversion specifier [n] starting at position 56 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [d]
ERROR StatusLogger Unrecognized conversion specifier [d] starting at position 16 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [thread]
ERROR StatusLogger Unrecognized conversion specifier [thread] starting at position 25 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [level]
ERROR StatusLogger Unrecognized conversion specifier [level] starting at position 35 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [logger]
ERROR StatusLogger Unrecognized conversion specifier [logger] starting at position 47 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [msg]
ERROR StatusLogger Unrecognized conversion specifier [msg] starting at position 54 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [n]
ERROR StatusLogger Unrecognized conversion specifier [n] starting at position 56 in conversion pattern.
%d [%thread] %-5level %logger - %msg%n java.lang.IllegalArgumentException: key
  at com.microsoft.applicationinsights.TelemetryConfiguration.setInstrumentationKey(Unknown Source) ~[org.jabref.merged.module:?]
  at org.jabref.gui.Globals.startTelemetryClient(Unknown Source) ~[org.jabref:?]
  at org.jabref.gui.Globals.startBackgroundTasks(Unknown Source) ~[org.jabref:?]
  at org.jabref.gui.JabRefMain.start(Unknown Source) ~[org.jabref:?]
  at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(Unknown Source) ~[org.jabref.merged.module:?]
  at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(Unknown Source) ~[org.jabref.merged.module:?]
  at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source) ~[org.jabref.merged.module:?]
  at java.security.AccessController.doPrivileged(Unknown Source) ~[?:?]
  at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(Unknown Source) ~[org.jabref.merged.module:?]
  at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(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

Hm, this is odd. Seems like somehow the data from our build info are not passed down... As far as I know, nothing to that has changed. I will try something and prepare a new branch build.

@sambo57u
Copy link

I just tried this on the same configuration and it worked. I put an alias in /etc/bashrc

alias jabref="/opt/jabref/bin/JabRef 2>/dev/null"

after this open a new window and it should work. The logger errors are always there. This is using the rpm version of Jabref
5.3.85

@systemoperator
Copy link
Contributor

@ilippert I can confirm your stated issue with your mentioned master build on Ubuntu 16.04, using OpenJDK 15.

The problem is that Globals.BUILD_INFO.azureInstrumentationKey is empty (""), which throws an exception in com.microsoft.applicationinsights.TelemetryConfiguration.setInstrumentationKey() when called in

telemetryConfiguration.setInstrumentationKey(Globals.BUILD_INFO.azureInstrumentationKey);

because it requires that the key is non-empty and non-null.

Forcing a non-empty value for testing purposes starts the application properly.

@Siedlerchr
Copy link
Member

The build info key should be set by the CI and gradle
Hmm, as far as I know nobody changed it (at least I guess).

@ilippert
Copy link
Contributor Author

Hi @sambo57u with the proposed alias I get this result

Log File
jabref 
%d [%thread] %-5level %logger - %msg%n java.lang.IllegalArgumentException: key
  at com.microsoft.applicationinsights.TelemetryConfiguration.setInstrumentationKey(Unknown Source) ~[org.jabref.merged.module:?]
  at org.jabref.gui.Globals.startTelemetryClient(Unknown Source) ~[org.jabref:?]
  at org.jabref.gui.Globals.startBackgroundTasks(Unknown Source) ~[org.jabref:?]
  at org.jabref.gui.JabRefMain.start(Unknown Source) ~[org.jabref:?]
  at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(Unknown Source) ~[org.jabref.merged.module:?]
  at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(Unknown Source) ~[org.jabref.merged.module:?]
  at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source) ~[org.jabref.merged.module:?]
  at java.security.AccessController.doPrivileged(Unknown Source) ~[?:?]
  at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(Unknown Source) ~[org.jabref.merged.module:?]
  at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(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) [?:?]

@sambo57u
Copy link

Hmmm.....why do you say bellsoft java? jabref has its own java...perhaps some path is set that interferes with it. I only have openjdk java's from Fedora repository. You get a bunch of logger messages but jabref starts.

@ilippert
Copy link
Contributor Author

Hmmm.....why do you say bellsoft java? jabref has its own java...perhaps some path is set that interferes with it. I only have openjdk java's from Fedora repository. You get a bunch of logger messages but jabref starts.

Since #6559 I have been only working with bellsoft.

@Siedlerchr
Copy link
Member

The java version doesn't matter. JabRef ships with a custom runtime. Can you try to add the -d all commandline parameter when starting? Maybye your prefs are corrupt

@ilippert
Copy link
Contributor Author

this gets me

Log File
# alias jabref="/opt/jabref/bin/JabRef -d all 2>/dev/null"
# jabref 
%d [%thread] %-5level %logger - %msg%n java.lang.IllegalArgumentException: key
  at com.microsoft.applicationinsights.TelemetryConfiguration.setInstrumentationKey(Unknown Source) ~[org.jabref.merged.module:?]
  at org.jabref.gui.Globals.startTelemetryClient(Unknown Source) ~[org.jabref:?]
  at org.jabref.gui.Globals.startBackgroundTasks(Unknown Source) ~[org.jabref:?]
  at org.jabref.gui.JabRefMain.start(Unknown Source) ~[org.jabref:?]
  at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(Unknown Source) ~[org.jabref.merged.module:?]
  at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(Unknown Source) ~[org.jabref.merged.module:?]
  at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source) ~[org.jabref.merged.module:?]
  at java.security.AccessController.doPrivileged(Unknown Source) ~[?:?]
  at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(Unknown Source) ~[org.jabref.merged.module:?]
  at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(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) [?:?]

@wujastyk
Copy link

same problem here.

@Siedlerchr
Copy link
Member

Can you test the version from here https://builds.jabref.org/pull/7371/merge/ ?

@wujastyk
Copy link

wujastyk commented Jan 20, 2021

On linux mint 20.1 Cinnamon 4.8.

Installed from that deb and got the same-looking startup errors:

/opt/jabref/bin$ ./JabRef 
ERROR StatusLogger Unrecognized format specifier [d]
ERROR StatusLogger Unrecognized conversion specifier [d] starting at position 16 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [thread]
ERROR StatusLogger Unrecognized conversion specifier [thread] starting at position 25 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [level]
ERROR StatusLogger Unrecognized conversion specifier [level] starting at position 35 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [logger]
ERROR StatusLogger Unrecognized conversion specifier [logger] starting at position 47 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [msg]
ERROR StatusLogger Unrecognized conversion specifier [msg] starting at position 54 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [n]
ERROR StatusLogger Unrecognized conversion specifier [n] starting at position 56 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [d]
ERROR StatusLogger Unrecognized conversion specifier [d] starting at position 16 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [thread]
ERROR StatusLogger Unrecognized conversion specifier [thread] starting at position 25 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [level]
ERROR StatusLogger Unrecognized conversion specifier [level] starting at position 35 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [logger]
ERROR StatusLogger Unrecognized conversion specifier [logger] starting at position 47 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [msg]
ERROR StatusLogger Unrecognized conversion specifier [msg] starting at position 54 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [n]
ERROR StatusLogger Unrecognized conversion specifier [n] starting at position 56 in conversion pattern.
%d [%thread] %-5level %logger - %msg%n java.lang.IllegalArgumentException: key
	at com.microsoft.applicationinsights.TelemetryConfiguration.setInstrumentationKey(Unknown Source) ~[org.jabref.merged.module:?]
	at org.jabref.gui.Globals.startTelemetryClient(Unknown Source) ~[org.jabref:?]
	at org.jabref.gui.Globals.startBackgroundTasks(Unknown Source) ~[org.jabref:?]
	at org.jabref.gui.JabRefMain.start(Unknown Source) ~[org.jabref:?]
	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(Unknown Source) ~[org.jabref.merged.module:?]
	at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(Unknown Source) ~[org.jabref.merged.module:?]
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source) ~[org.jabref.merged.module:?]
	at java.security.AccessController.doPrivileged(Unknown Source) ~[?:?]
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(Unknown Source) ~[org.jabref.merged.module:?]
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(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) [?:?]

@koppor
Copy link
Member

koppor commented Jan 20, 2021

It could be too late here, but I hink, the solution is simple. I do not find the setting AzureInstrumentationKey (read by gradle), APPLICATION_INSIGHTS_IKEY (read by the code), or APPINSIGHTS_INSTRUMENTATIONKEY (read by the code) in our build secrets (https://github.com/JabRef/jabref/settings/secrets/actions accessible for maintainers only).

The workround is to set the environment variable APPINSIGHTS_INSTRUMENTATIONKEY to x (or any other string).

@koppor koppor mentioned this issue Jan 20, 2021
5 tasks
@sambo57u
Copy link

This is very puzzling. Why is mine working. I am on Fedora 33 x86_64 too and have done nothing special.

@ilippert
Copy link
Contributor Author

Can you test the version from here https://builds.jabref.org/pull/7371/merge/ ?

The link directed me to the master.

it still gives me the result

Log File
Paste an excerpt of your log file here
#  jabref %d [%thread] %-5level %logger - %msg%n java.lang.IllegalArgumentException: key at com.microsoft.applicationinsights.TelemetryConfiguration.setInstrumentationKey(Unknown Source) ~[org.jabref.merged.module:?] at org.jabref.gui.Globals.startTelemetryClient(Unknown Source) ~[org.jabref:?] at org.jabref.gui.Globals.startBackgroundTasks(Unknown Source) ~[org.jabref:?] at org.jabref.gui.JabRefMain.start(Unknown Source) ~[org.jabref:?] at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source) ~[org.jabref.merged.module:?] at java.security.AccessController.doPrivileged(Unknown Source) ~[?:?] at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(Unknown Source) ~[org.jabref.merged.module:?] at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(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

Can you please try again with the latest master? Newest build contains a workaround

@ilippert
Copy link
Contributor Author

JabRef 5.3--2021-01-21--1be95fc
Linux 5.10.7-200.fc33.x86_64 amd64
Java 15.0.1
JavaFX 15.0.1+1

works!
thanks!

@wujastyk
Copy link

JabRef 5.3--2021-01-21--94f4c1e
Linux 5.4.0-62-generic amd64
Java 15.0.1
JavaFX 15.0.1+1

Also good. Thank you!

@koppor
Copy link
Member

koppor commented Jan 22, 2021

Thank you all for the patience 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants