Docker openhab/openhab:2.5.12-snapshot-alpine faults

Just installed the docker openhab/openhab:2.5.12-snapshot-alpine. After standard setup I added binding-zwave => Inbox => + => Z-Wave Binding…

Then the container faults with this msg:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00000000000036f6, pid=29, tid=0x00007f6449d82b20
#
# JRE version: OpenJDK Runtime Environment (8.0_252-b09) (build 1.8.0_252-b09)
# Java VM: OpenJDK 64-Bit Server VM (25.252-b09 mixed mode linux-amd64 compressed oops)
# Derivative: IcedTea 3.16.0
# Distribution: Custom build (Mon Aug 10 05:36:24 UTC 2020)
# Problematic frame:
# C  0x00000000000036f6
#
# Core dump written. Default location: /openhab/userdata/core or core.29
#
# An error report file with more information is saved as:
# /openhab/userdata/hs_err_pid29.log
[thread 140068731947808 also had an error]
#
# If you would like to submit a bug report, please include
# instructions on how to reproduce the bug and visit:
#   https://icedtea.classpath.org/bugzilla
#

Restarting the container, I am able to continue to Z-Wave Serial Controller. But the form dialog misses the ‘normal’ form items like device/port, I just see name, thing ID and location.

Platform information: Linux *** 5.4.0-58-generic #64-Ubuntu SMP Wed Dec 9 08:16:25 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux 8GB RAM

Here the most relevant extract from the log:

 Stack    : [0x00007f8ba601d000,0x00007f8ba611dae0],  sp=0x00007f8ba61196c8,  free space=1009k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  0x00000000000036f6

Java frames: (J=co    mpiled Java code, j=interpreted, Vv=VM code)
j  gnu.io.RXTXCommDriver.testRead(Ljava/lang/String;I)Z+0
j  gnu.io.RXTXCommDriver.registerValidPorts([Ljava/lang/String;[Ljava/lang/String;IZ)V+249
j  gnu.io.RXTXCommDriver.registerScannedPorts(I)V+1544
j  gnu.io.RXTXCommDriver.initialize()V+35
j  gnu.io.CommPortIdentifier.getPortIdentifiers()Ljava/util/Enumeration;+53
j  gnu.io.NativeResource.testNativeCode()V+0
j  gnu.io.NativeResource.inJarLoad(Ljava/lang/String;)V+37
j  gnu.io.NativeResource.loadLib(Ljava/lang/String;)V+60
j  gnu.io.NativeResource.load(Ljava/lang/String;)V+138
j  gnu.io.SerialManager.<init>()V+23
j  gnu.io.SerialManager.getInstance()Lgnu/io/SerialManager;+10
j  gnu.io.RXTXCommDriver.<clinit>()V+39
v  ~StubRoutines::call_stub
J 1725  java.lang.Class.forName0(Ljava/lang/String;ZLjava/lang/ClassLoader;Ljava/lang/Class;)Ljava/lang/Class; (0 bytes) @ 0x00
007f8bb94d5c9a [0x00007f8bb94d5c20+0x7a]
J 5196 C1 java.lang.Class.forName(Ljava/lang/String;)Ljava/lang/Class; (15 bytes) @ 0x00    007f8bb92bc98c [0x00007f8bb92bc7e0+0x1a
    c]
j  gnu.io.CommPortIdentifier.<clinit>()V+12
v  ~StubRoutines::call_stub
j  org.eclipse.smarthome.io.transport.serial.internal.SerialPortUtil.getPortIdentifiersUsingScan()Ljava/util/stream/Stream;+32
j  org.eclipse.smarthome.io.transport.serial.internal.RxTxPortProvider.getSerialPortIdentifiers()Ljava/util/stream/Stream;+0
j  org.eclipse.smarthome.io.transport.serial.internal.SerialPortManagerImpl.lambda$0(Lorg/eclipse/smarthome/io/transport/serial
/SerialPortProvider;)Ljava/util/stream/Stream;+1
j  org.eclipse.smarthome.io.transport.serial.internal.SerialPortManagerImpl$$Lambda$418.apply(Ljava/lang/Object;)Ljava/lang/Obj
ect;+8
j  java.util.stream.ReferencePipeline$7$1.accept(Ljava/lang/Object;)V+8
J 9152 C1 java.util.HashMap$KeySpliterator.forEachRemaining(Ljava/util/function/Consumer;)V (186 bytes) @ 0x00007f8bb9402a04 [0
x00007f8bb9402620+0x3e4]
J 2991 C1 java.util.stream.AbstractPipeline.copyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V (53 bytes) @ 0x00007f8bb9
9364ec [0x00007f8bb9936000+0x4ec]
J 2989 C1 java.util.stream.AbstractPipeline.wrapAndCopyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)Ljava/util/stream/Si
nk; (18 bytes) @ 0x00007f8bb9931c94 [0x00007f8bb9931a60+0x234]
J 7733 C1 java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterato
r;)Ljava/lang/Object; (7 bytes) @ 0x00007f8bb9726df4 [0x00007f8bb9726d80+0x74]
J 2980 C1 java.util.stream.AbstractPipeline.evaluate(Ljava/util/stream/TerminalOp;)Ljava/lang/Object; (94 bytes) @ 0x00007f8bb9
926c1c [0x00007f8bb9926740+0x4dc]
J 7734 C1 java.util.stream.ReferencePipeline.forEach(Ljava/util/function/Consumer;)V (11 bytes) @ 0x00007f8bb9726884 [0x00007f8
bb97267a0+0xe4]
j  org.eclipse.smarthome.config.serial.internal.SerialConfigOptionProvider.getParameterOptions(Ljava/net/URI;Ljava/lang/String;
Ljava/lang/String;Ljava/util/Locale;)Ljava/util/Collection;+34
j  org.eclipse.smarthome.config.core.ConfigDescriptionRegistry.fillFromProviders(Ljava/net/URI;Lorg/eclipse/smarthome/config/co
re/ConfigDescriptionParameter;Ljava/util/Locale;Ljava/util/List;)Z+41
j  org.eclipse.smarthome.config.core.ConfigDescriptionRegistry.getConfigOptions(Ljava/net/URI;Ljava/util/Set;Lorg/eclipse/smart
home/config/core/ConfigDescriptionParameter;Ljava/util/Locale;)Lorg/eclipse/smarthome/config/core/ConfigDescriptionParameter;+2
8
j  org.eclipse.smarthome.config.core.ConfigDescriptionRegistry.getConfigDescription(Ljava/net/URI;Ljava/util/Locale;)Lorg/eclip
se/smarthome/config/core/ConfigDescription;+156
j  org.eclipse.smarthome.io.rest.core.internal.thing.ThingTypeResource.convertToThingTypeDTO(Lorg/eclipse/smarthome/core/thing/
type/ThingType;Ljava/util/Locale;)Lorg/eclipse/smarthome/core/thing/dto/ThingTypeDTO;+16
j  org.eclipse.smarthome.io.rest.core.internal.thing.ThingTypeResource.getByUID(Ljava/lang/String;Ljava/lang/String;)Ljavax/ws/
rs/core/Response;+38
v  ~StubRoutines::call_stub
J 6329  sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang
/Object; (0 bytes) @ 0x00007f8bba140397 [0x00007f8bba140320+0x77]
J 6328 C1 sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (104 bytes) @ 0x
00007f8bba142f4c [0x00007f8bba141da0+0x11ac]
J 2343 C1 sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (10 bytes) @
 0x00007f8bb96aef04 [0x00007f8bb96aee00+0x104]
J 2334 C1 java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object; (62 bytes) @ 0x00007f8bb96b0
e0c [0x00007f8bb96b0a20+0x3ec]
j  org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(Ljava/lang/Object;Ljava/lang/refl
ect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+3
j  org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run()Ljava/lang/Object;+38
j  org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(Lorg/glassfish/jersey/server/Containe
rRequest;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+66
j  org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(Ljava/lang/Obj
ect;Lorg/glassfish/jersey/server/ContainerRequest;)Ljavax/ws/rs/core/Response;+9
j  org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(Ljava/lang/Object;Lorg/glassfish/je
rsey/server/ContainerRequest;)Ljavax/ws/rs/core/Response;+5
j  org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(Lorg/glassfish/jersey/server/internal/process/RequestProcessi
ngContext;Ljava/lang/Object;)Ljavax/ws/rs/core/Response;+28
j  org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(Lorg/glassfish/jersey/server/internal/process/RequestProcessin
gContext;)Lorg/glassfish/jersey/server/ContainerResponse;+97
j  org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(Ljava/lang/Object;)Ljava/lang/Object;+5
j  org.glassfish.jersey.server.ServerRuntime$2.run()V+89
j  org.glassfish.jersey.internal.Errors$1.call()Ljava/lang/Void;+4
j  org.glassfish.jersey.internal.Errors$1.call()Ljava/lang/Object;+1
J 8460 C1 org.glassfish.jersey.internal.Errors.process(Ljava/util/concurrent/Callable;Z)Ljava/lang/Object; (112 bytes) @ 0x0000
7f8bb9957e1c [0x00007f8bb9957a60+0x3bc]
J 8459 C1 org.glassfish.jersey.internal.Errors.process(Lorg/glassfish/jersey/internal/util/Producer;Z)Ljava/lang/Object; (19 by
tes) @ 0x00007f8bb9794144 [0x00007f8bb9794100+0x44]
j  org.glassfish.jersey.internal.Errors.process(Ljava/lang/Runnable;)V+9
j  org.glassfish.jersey.process.internal.RequestScope.runInScope(Lorg/glassfish/jersey/process/internal/RequestScope$Instance;L
java/lang/Runnable;)V+14
j  org.glassfish.jersey.server.ServerRuntime.process(Lorg/glassfish/jersey/server/ContainerRequest;)V+181
j  org.glassfish.jersey.server.ApplicationHandler.handle(Lorg/glassfish/jersey/server/ContainerRequest;)V+13
j  org.glassfish.jersey.servlet.WebComponent.serviceImpl(Ljava/net/URI;Ljava/net/URI;Ljavax/servlet/http/HttpServletRequest;Lja
vax/servlet/http/HttpServletResponse;)Lorg/glassfish/jersey/servlet/internal/ResponseWriter;+81
j  org.glassfish.jersey.servlet.WebComponent.service(Ljava/net/URI;Ljava/net/URI;Ljavax/servlet/http/HttpServletRequest;Ljavax/
servlet/http/HttpServletResponse;)Lorg/glassfish/jersey/internal/util/collection/Value;+6
j  org.glassfish.jersey.servlet.ServletContainer.service(Ljava/net/URI;Ljava/net/URI;Ljavax/servlet/http/HttpServletRequest;Lja
vax/servlet/http/HttpServletResponse;)Lorg/glassfish/jersey/internal/util/collection/Value;+9
j  org.glassfish.jersey.servlet.ServletContainer.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServlet
Response;)V+183
j  org.glassfish.jersey.servlet.ServletContainer.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+39
j  com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/Servl
etResponse;)V+13
j  org.eclipse.jetty.servlet.ServletHolder.handle(Lorg/eclipse/jetty/server/Request;Ljavax/servlet/ServletRequest;Ljavax/servle
t/ServletResponse;)V+129
j  org.eclipse.jetty.servlet.ServletHandler.doHandle(Ljava/lang/String;Lorg/eclipse/jetty/server/Request;Ljavax/servlet/http/Ht
tpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+209
j  org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(Ljava/lang/String;Lorg/eclipse/jetty/server/Requ
est;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+97
J 13337 C1 org.eclipse.jetty.server.handler.ScopedHandler.handle(Ljava/lang/String;Lorg/eclipse/jetty/server/Request;Ljavax/ser
vlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V (36 bytes) @ 0x00007f8bb99d7fac [0x00007f8bb99d7c60+0x3
4c]
j  org.eclipse.jetty.security.SecurityHandler.handle(Ljava/lang/String;Lorg/eclipse/jetty/server/Request;Ljavax/servlet/http/Ht
tpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+553
j  org.eclipse.jetty.server.handler.HandlerWrapper.handle(Ljava/lang/String;Lorg/eclipse/jetty/server/Request;Ljavax/servlet/ht
tp/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+18
j  org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(Ljava/lang/String;Lorg/eclipse/jetty/server/Request;Ljavax/servlet
/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+46
j  org.eclipse.jetty.server.session.SessionHandler.doHandle(Ljava/lang/String;Lorg/eclipse/jetty/server/Request;Ljavax/servlet/
http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+6
j  org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(Ljava/lang/String;Lorg/eclipse/jetty/server/Request;Ljavax/servlet
/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+27
j  org.eclipse.jetty.server.handler.ContextHandler.doHandle(Ljava/lang/String;Lorg/eclipse/jetty/server/Request;Ljavax/servlet/
http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+141
j  org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(Ljava/lang/String;Lorg/eclipse/jetty/server/Request;Lja
vax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+50
j  org.eclipse.jetty.server.handler.ScopedHandler.nextScope(Ljava/lang/String;Lorg/eclipse/jetty/server/Request;Ljavax/servlet/
http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+38
j  org.eclipse.jetty.servlet.ServletHandler.doScope(Ljava/lang/String;Lorg/eclipse/jetty/server/Request;Ljavax/servlet/http/Htt
pServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+188
j  org.eclipse.jetty.server.session.SessionHandler.doScope(Ljava/lang/String;Lorg/eclipse/jetty/server/Request;Ljavax/servlet/h
ttp/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+191
j  org.eclipse.jetty.server.handler.ScopedHandler.nextScope(Ljava/lang/String;Lorg/eclipse/jetty/server/Request;Ljavax/servlet/
http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+16
j  org.eclipse.jetty.server.handler.ContextHandler.doScope(Ljava/lang/String;Lorg/eclipse/jetty/server/Request;Ljavax/servlet/h
ttp/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+426
J 13337 C1 org.eclipse.jetty.server.handler.ScopedHandler.handle(Ljava/lang/String;Lorg/eclipse/jetty/server/Request;Ljavax/ser
vlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V (36 bytes) @ 0x00007f8bb99d7ef4 [0x00007f8bb99d7c60+0x2
94]
j  org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(Ljava/lang/String;Lorg/eclipse/jetty/server/Req
uest;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+116
j  org.eclipse.jetty.server.handler.HandlerWrapper.handle(Ljava/lang/String;Lorg/eclipse/jetty/server/Request;Ljavax/servlet/ht
tp/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+18
j  org.eclipse.jetty.server.Server.handle(Lorg/eclipse/jetty/server/HttpChannel;)V+141
j  org.eclipse.jetty.server.HttpChannel.handle()Z+332
j  org.eclipse.jetty.server.HttpConnection.onFillable()V+137
j  org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded()V+4
j  org.eclipse.jetty.io.FillInterest.fillable()Z+57
j  org.eclipse.jetty.io.ChannelEndPoint$2.run()V+7
j  org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(Ljava/lang/Runnable;)V+1
j  org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(Z)Z+507
j  org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(Z)V+134
j  org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run()V+2
j  org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run()V+203
j  org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(Ljava/lang/Runnable;)V+1
j  org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run()V+355
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub

I am happy to provide /openhab/userdata/hs_err_pid29.log if this is helpful.

BTW: This works flawlessly with docker openhab:openhab running 2.5.11

I do know the Debian container is recommended. Early in my testing I had issues with the alpine container and moved to Debian. The Alpine container does not use Zulu Java. I know that is a performance issue for arm processors.

Using the debian base I could not reproduce the issue - so far its working flawlessly.

The alpine container uses musl instead of glibc. So any add-on using a native library will fail unless it also provides a musl library. AFAIK none have been recompiled including the library for serial communications.

1 Like

Perhaps it is time to retire the alpine containers?