Can't start on Odroid XU4 with user openhab

Hello,

I’ve followed the guide to setup OpenHAB on an Odroid XU4 (Ubuntun 15.04) but it doesn’t work. After some debugging, I realize that I’m able to start it from the CLI under the root user, but when trying to start it with systemd (which operates under user openhab:openhab), it fails. The error I’m getting is this:

root@odroid:~# sudo -u openhab /usr/share/openhab/bin/openhab.sh -o
An exception occurred while writing to the platform log:
java.io.IOException: No space left on device
	at java.io.FileOutputStream.writeBytes(Native Method)
	at java.io.FileOutputStream.write(FileOutputStream.java:326)
	at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)
	at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291)
	at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:295)
	at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141)
	at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229)
	at java.io.BufferedWriter.flush(BufferedWriter.java:254)
	at org.eclipse.core.runtime.internal.adaptor.EclipseLogWriter.log(EclipseLogWriter.java:282)
	at org.eclipse.core.runtime.internal.adaptor.EclipseLogWriter.logged(EclipseLogWriter.java:694)
	at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.safeLogged(ExtendedLogReaderServiceFactory.java:86)
	at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.logPrivileged(ExtendedLogReaderServiceFactory.java:205)
	at org.eclipse.equinox.log.internal.ExtendedLogReaderServiceFactory.log(ExtendedLogReaderServiceFactory.java:178)
	at org.eclipse.equinox.log.internal.ExtendedLogServiceFactory.log(ExtendedLogServiceFactory.java:65)
	at org.eclipse.equinox.log.internal.ExtendedLogServiceImpl.log(ExtendedLogServiceImpl.java:87)
	at org.eclipse.equinox.log.internal.LoggerImpl.log(LoggerImpl.java:54)
	at org.eclipse.core.runtime.internal.adaptor.EclipseLogFactory$1.log(EclipseLogFactory.java:53)
	at org.eclipse.osgi.internal.baseadaptor.BaseStorage.initFileManager(BaseStorage.java:228)
	at org.eclipse.osgi.internal.baseadaptor.BaseStorage.initialize(BaseStorage.java:154)
	at org.eclipse.osgi.baseadaptor.BaseAdaptor.initializeStorage(BaseAdaptor.java:123)
	at org.eclipse.osgi.framework.internal.core.Framework.<init>(Framework.java:192)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:262)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
Logging to the console instead.

!ENTRY org.eclipse.osgi 4 0 2015-12-23 22:12:52.551
!MESSAGE Error reading configuration: Unable to create lock manager.
!STACK 0
java.io.IOException: Unable to create lock manager.
	at org.eclipse.osgi.storagemanager.StorageManager.open(StorageManager.java:699)
	at org.eclipse.osgi.internal.baseadaptor.BaseStorage.initFileManager(BaseStorage.java:220)
	at org.eclipse.osgi.internal.baseadaptor.BaseStorage.initialize(BaseStorage.java:154)
	at org.eclipse.osgi.baseadaptor.BaseAdaptor.initializeStorage(BaseAdaptor.java:123)
	at org.eclipse.osgi.framework.internal.core.Framework.<init>(Framework.java:192)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:262)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
<title>Invalid Configuration Location</title>Locking is not possible in the directory "/var/lib/openhab/workspace/org.eclipse.osgi". A common reason is that the file system or Runtime Environment does not support file locking for that location. Please choose a different location, or disable file locking passing "-Dosgi.locking=none" as a VM argument. 
Unable to create lock manager.

I’ve tried to “chown -R openhab:openhab /var/lib/openhab/workspace/org.eclipse.osgi” but that didn’t help

Any guidance is appreciated, thanks.

sacha

The “No space left on device” error implies that the file partition where /var/log is stored is out of space or perhaps the openhab user doesn’t have permission to write to /var/log.

Perhaps the other errors are related. Is your disk full?

Rich, thanks for your answer, the problem was indeed very dumb… I have a 32Gb card but the default Ubuntu root partition is configured to only use 4Gb. So i used the odroid-utility program to extend it and it started with no problem. Thanks for the guidance Rich.

Cheers,

sacha