Following on from an issue where I believed by RFXCom was causing problems - I ran a thread capture when the system locked up. I found that the root cause of the lockup was a thread coming from the SamsungTV binding.
So - seemly at random, but now (I believe) related to one of my TV's being turned off - the RFXCom binding would appear to stop responding. The root cause of this appears to be a lock on the device discovery functions in OpenHab - which in turn are caused by a thread attempting to handle an exception in the SamsungTV Binding.
The only solution was to restart Openhab (although I'll admit I didn't try reloading the samsungtv binding).
Reproduction is very tricky - the situation is apparently random and might be timing related.
Lots of threads all blocked awaiting a lock on org.eclipse.smarthome.config.discovery.internal.DiscoveryServiceRegistryImpl@1c74af8 - owned by upnp-main-504.
upnp-main-504 - is blocked on java.lang.Object@87d58f owned by ESH-httpClient-samtungtv-3825
ESH-httpClient-samtungtv-3825 is waiting on a countdownlatch which, for some reason, isn't completing.
File holding the thread traces:
shellthread.txt
Stack trace for that thread:
"ESH-httpClient-samtungtv-3825" Id=3825 in WAITING on lock=java.util.concurrent.CountDownLatch$Sync@101ecb1
at [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
at [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:885)
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1039)
at [email protected]/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1345)
at [email protected]/java.util.concurrent.CountDownLatch.await(CountDownLatch.java:232)
at org.eclipse.jetty.io.ManagedSelector.doStop(ManagedSelector.java:143)
at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:93)
- locked java.lang.Object@1e8cfa8
at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:180)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:201)
at org.eclipse.jetty.io.SelectorManager.doStop(SelectorManager.java:281)
at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:93)
- locked java.lang.Object@eae3e5
at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:180)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:201)
at org.eclipse.jetty.client.AbstractConnectorHttpClientTransport.doStop(AbstractConnectorHttpClientTransport.java:70)
at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:93)
- locked java.lang.Object@15a5c6b
at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:180)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:201)
at org.eclipse.jetty.client.HttpClient.doStop(HttpClient.java:268)
at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:93)
- locked java.lang.Object@11fc90b
at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:180)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:201)
at org.eclipse.jetty.websocket.client.WebSocketClient.doStop(WebSocketClient.java:371)
at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:93)
- locked java.lang.Object@87d58f
at org.openhab.binding.samsungtv.internal.protocol.RemoteControllerWebSocket.closeConnection(RemoteControllerWebSocket.java:201)
at org.openhab.binding.samsungtv.internal.protocol.RemoteControllerWebSocket.close(RemoteControllerWebSocket.java:210)
at org.openhab.binding.samsungtv.internal.service.RemoteControllerService.connectionError(RemoteControllerService.java:490)
at org.openhab.binding.samsungtv.internal.protocol.WebSocketRemote.onWebSocketError(WebSocketRemote.java:83)
at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onError(JettyListenerEventDriver.java:133)
at org.eclipse.jetty.websocket.client.WebSocketUpgradeRequest.handleException(WebSocketUpgradeRequest.java:538)
at org.eclipse.jetty.websocket.client.WebSocketUpgradeRequest.onComplete(WebSocketUpgradeRequest.java:519)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:198)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:190)
at org.eclipse.jetty.client.HttpExchange.notifyFailureComplete(HttpExchange.java:269)
at org.eclipse.jetty.client.HttpExchange.abort(HttpExchange.java:240)
at org.eclipse.jetty.client.HttpConversation.abort(HttpConversation.java:149)
at org.eclipse.jetty.client.HttpRequest.abort(HttpRequest.java:768)
at org.eclipse.jetty.client.HttpDestination.abort(HttpDestination.java:453)
at org.eclipse.jetty.client.HttpDestination.failed(HttpDestination.java:234)
at org.eclipse.jetty.client.AbstractConnectionPool$1.failed(AbstractConnectionPool.java:140)
at org.eclipse.jetty.util.Promise$Wrapper.failed(Promise.java:136)
at org.eclipse.jetty.client.HttpClient$1$1.failed(HttpClient.java:612)
at org.eclipse.jetty.client.AbstractConnectorHttpClientTransport.connectFailed(AbstractConnectorHttpClientTransport.java:138)
at org.eclipse.jetty.client.AbstractConnectorHttpClientTransport$ClientSelectorManager.connectionFailed(AbstractConnectorHttpClientTransport.java:188)
at org.eclipse.jetty.io.ManagedSelector$Connect.failed(ManagedSelector.java:812)
at org.eclipse.jetty.io.ManagedSelector.processConnect(ManagedSelector.java:245)
at org.eclipse.jetty.io.ManagedSelector.access$1500(ManagedSelector.java:61)
at org.eclipse.jetty.io.ManagedSelector$SelectorProducer.processSelected(ManagedSelector.java:533)
at org.eclipse.jetty.io.ManagedSelector$SelectorProducer.produce(ManagedSelector.java:395)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produceTask(EatWhatYouKill.java:360)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:184)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:135)
at org.eclipse.jetty.io.ManagedSelector$$Lambda$311/0x5f047628.run(Unknown Source)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918)
at [email protected]/java.lang.Thread.run(Thread.java:834)
@J-N-K : could you have a look ? I think it could be a similar problem you fixed for the Amazon Echo Control binding in your PR #7919 . Looking at the code of the SamsungTV binding, the changes you applied to the Amazon Echo Control binding are not applied to the SamsungTV binding, like checking if the websocket client is started before closing it, or your change about closing the session. Your are the expert ;)
@J-N-K , this bounty was originally tied to the jupnp binding but after @lolodomo identify it's really the Samsung binding causing all the issues - I rolled back to SamsungTV binding v2.4 and everything resolved itself. I'd really like to get the Samsung binding up to par since I have different ages of Samsung TV's which the newer binding v2.5.x addresses these differences but as we know the SamsungTV binding itself causes massive issues after time.
I'd be glad to award you this bounty if you can fix the issues with the SamsungTV binding.
https://www.bountysource.com/issues/80365719-jupnp-failing-causing-devices-to-go-offline
Best, Jay
Please try PR with changes has been merged. Use latest 2.5.7-SNAPSHOT
Please try
It's in. I stopped/uninstalled 2.4 RC1 and dropped in yours. It took about 5 minutes for the status of each TV to come online from the unknown state.
Here's my thing config of the TV's. Some older models using 55000 and newer models using 8002. The true test is to see if it takes down the Sonos after some time.
https://community.openhab.org/t/help-samsung-tv-bindings-with-2016-samsung-tv/67053/58
Thing samsungtv:tv:livingroom "Samsung Living Room" [ hostName="192.168.0.169", port=55000, refreshInterval=1000, macAddress="0c:89:10:1d:81:45" ]
Thing samsungtv:tv:parker "Samsung Parker" [ hostName="192.168.0.142", port=55000, refreshInterval=1000, macAddress="40:16:3b:22:af:96" ]
Thing samsungtv:tv:ryan "Samsung Ryan" [ hostName="192.168.0.184", port=55000, refreshInterval=1000, macAddress="40:16:3b:21:6d:53" ]
Thing samsungtv:tv:basement "Samsung Basement WiFi" [ hostName="192.168.0.180", port=8002, refreshInterval=1000, macAddress="84:c0:ef:82:5a:e4" ]
Thing samsungtv:tv:basementwired "Samsung Basement Wired" [ hostName="192.168.0.128", port=8002, refreshInterval=1000, macAddress="9c:8c:6e:69:b6:fe" ]
Thing samsungtv:tv:bedroom "Samsung Master Bedroom" [ hostName="192.168.0.183", port=55000, refreshInterval=1000, macAddress="54:88:0e:2d:23:30" ]
Thing samsungtv:tv:gym "Samsung Gym" [ hostName="192.168.0.176", port=8002, refreshInterval=1000, macAddress="64:1c:ae:00:24:ee" ]
I'm running OH 2.4 so I don't have some of the new stuff in 2.5.x so this may need to be addressed. Here's the dump after installing it.
--> Caused by: java.lang.ClassNotFoundException: org.eclipse.smarthome.io.net.http.TrustAllTrustMananger <--
2020-06-26 14:29:26.951 [INFO ] [rnal.service.RemoteControllerService] - Using None interface
2020-06-26 14:29:26.974 [INFO ] [rnal.service.RemoteControllerService] - Using WebSocket interface
2020-06-26 14:29:27.801 [INFO ] [rnal.service.RemoteControllerService] - Using SecureWebSocket interface
2020-06-26 14:29:27.979 [INFO ] [rnal.service.RemoteControllerService] - Using None interface
2020-06-26 14:29:28.028 [INFO ] [rnal.service.RemoteControllerService] - Using null interface
2020-06-26 14:29:28.051 [INFO ] [rnal.service.RemoteControllerService] - Using null interface
2020-06-26 14:29:28.086 [INFO ] [rnal.service.RemoteControllerService] - Using null interface
2020-06-26 14:29:28.141 [INFO ] [rnal.service.RemoteControllerService] - Using null interface
2020-06-26 14:29:28.164 [INFO ] [rnal.service.RemoteControllerService] - Using null interface
2020-06-26 14:29:28.180 [INFO ] [rnal.service.RemoteControllerService] - Using null interface
2020-06-26 14:29:28.203 [INFO ] [rnal.service.RemoteControllerService] - Using null interface
2020-06-26 14:29:28.360 [ERROR] [org.openhab.binding.samsungtv ] - bundle org.openhab.binding.samsungtv:2.5.7.202006261730 (329)[org.openhab.binding.samsungtv.internal.SamsungTvTlsTrustManagerProvider(364)] : Error during instantiation of the implementation object
java.lang.NullPointerException: null
at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:271) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:114) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:947) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:919) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:863) [39:org.apache.felix.scr:2.1.2]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) [?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) [?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) [?:?]
at org.apache.felix.scr.impl.manager.SingleRefPair.getServiceObject(SingleRefPair.java:73) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.inject.BindParameters.getServiceObject(BindParameters.java:47) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.inject.methods.BindMethod.getServiceObject(BindMethod.java:662) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.DependencyManager.getServiceObject(DependencyManager.java:2304) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.DependencyManager.doInvokeBindMethod(DependencyManager.java:1801) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.DependencyManager.invokeBindMethod(DependencyManager.java:1784) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.SingleComponentManager.invokeBindMethod(SingleComponentManager.java:409) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:333) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:302) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1137) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:944) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:880) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1168) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125) [39:org.apache.felix.scr:2.1.2]
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) [?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:920) [?:?]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry$1.run(ServiceRegistry.java:805) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry$1.run(ServiceRegistry.java:1) [?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:803) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127) [?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:225) [?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:469) [?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:891) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:877) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:944) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:727) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:661) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:427) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:665) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:339) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:381) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.Activator.access$200(Activator.java:49) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:263) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169) [39:org.apache.felix.scr:2.1.2]
at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:49) [39:org.apache.felix.scr:2.1.2]
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:482) [?:?]
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:415) [?:?]
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) [?:?]
at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444) [?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908) [?:?]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) [?:?]
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) [?:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213) [?:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher$1.run(EquinoxEventPublisher.java:124) [?:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher$1.run(EquinoxEventPublisher.java:1) [?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:122) [?:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112) [?:?]
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:168) [?:?]
at org.eclipse.osgi.container.Module.publishEvent(Module.java:476) [?:?]
at org.eclipse.osgi.container.Module.start(Module.java:467) [?:?]
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) [?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) [10:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) [10:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) [10:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [10:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [10:org.apache.felix.fileinstall:3.6.4]
2020-06-26 14:29:28.241 [ERROR] [org.openhab.binding.samsungtv ] - FrameworkEvent ERROR - org.openhab.binding.samsungtv
org.osgi.framework.ServiceException: Exception in org.apache.felix.scr.impl.manager.SingleComponentManager.getService()
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:222) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) ~[?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) ~[?:?]
at com.eclipsesource.jaxrs.publisher.internal.ResourceTracker.addingService(ResourceTracker.java:39) ~[?:?]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) ~[?:?]
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870) ~[?:?]
at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) ~[?:?]
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229) ~[?:?]
at org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:901) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) ~[?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:920) ~[?:?]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) ~[?:?]
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry$1.run(ServiceRegistry.java:805) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry$1.run(ServiceRegistry.java:1) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:803) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:225) ~[?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:469) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:891) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:877) ~[?:?]
at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:944) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:727) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:661) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:427) ~[?:?]
at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:665) ~[?:?]
at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:339) ~[?:?]
at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:381) ~[?:?]
at org.apache.felix.scr.impl.Activator.access$200(Activator.java:49) ~[?:?]
at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:263) ~[?:?]
at org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196) ~[?:?]
at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169) ~[?:?]
at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:49) ~[?:?]
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:482) ~[?:?]
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:415) ~[?:?]
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) ~[?:?]
at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444) ~[?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908) ~[?:?]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) ~[?:?]
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher$1.run(EquinoxEventPublisher.java:124) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher$1.run(EquinoxEventPublisher.java:1) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:122) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:168) ~[?:?]
at org.eclipse.osgi.container.Module.publishEvent(Module.java:476) ~[?:?]
at org.eclipse.osgi.container.Module.start(Module.java:467) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) ~[?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) ~[?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) ~[?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) ~[?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) ~[?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) ~[?:?]
Caused by: java.lang.NoClassDefFoundError: org/eclipse/smarthome/io/net/http/TrustAllTrustMananger
at java.lang.Class.getDeclaredConstructors0(Native Method) ~[?:?]
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) ~[?:?]
at java.lang.Class.getConstructors(Class.java:1651) ~[?:?]
at org.apache.felix.scr.impl.inject.ComponentConstructor.<init>(ComponentConstructor.java:94) ~[?:?]
at org.apache.felix.scr.impl.inject.ComponentMethodsImpl.initComponentMethods(ComponentMethodsImpl.java:106) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.initDependencyManagers(AbstractComponentManager.java:993) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.collectDependencies(AbstractComponentManager.java:1011) ~[?:?]
at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:899) ~[?:?]
at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:863) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) ~[?:?]
... 60 more
Caused by: java.lang.ClassNotFoundException: org.eclipse.smarthome.io.net.http.TrustAllTrustMananger cannot be found by org.openhab.binding.samsungtv_2.5.7.202006261730
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:433) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395) ~[?:?]
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387) ~[?:?]
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:?]
at java.lang.Class.getDeclaredConstructors0(Native Method) ~[?:?]
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) ~[?:?]
at java.lang.Class.getConstructors(Class.java:1651) ~[?:?]
at org.apache.felix.scr.impl.inject.ComponentConstructor.<init>(ComponentConstructor.java:94) ~[?:?]
at org.apache.felix.scr.impl.inject.ComponentMethodsImpl.initComponentMethods(ComponentMethodsImpl.java:106) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.initDependencyManagers(AbstractComponentManager.java:993) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.collectDependencies(AbstractComponentManager.java:1011) ~[?:?]
at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:899) ~[?:?]
at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:863) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210) ~[?:?]
... 60 more
2020-06-26 14:29:28.703 [WARN ] [org.openhab.binding.samsungtv ] - FrameworkEvent WARNING - org.openhab.binding.samsungtv
org.osgi.framework.ServiceException: org.apache.felix.scr.impl.manager.SingleComponentManager.getService() returned a null service object
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:232) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:508) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461) ~[?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624) ~[?:?]
at org.apache.felix.scr.impl.manager.SingleRefPair.getServiceObject(SingleRefPair.java:73) ~[?:?]
at org.apache.felix.scr.impl.inject.BindParameters.getServiceObject(BindParameters.java:47) ~[?:?]
at org.apache.felix.scr.impl.inject.methods.BindMethod.getServiceObject(BindMethod.java:662) ~[?:?]
at org.apache.felix.scr.impl.manager.DependencyManager.getServiceObject(DependencyManager.java:2304) ~[?:?]
at org.apache.felix.scr.impl.manager.DependencyManager.doInvokeBindMethod(DependencyManager.java:1801) ~[?:?]
at org.apache.felix.scr.impl.manager.DependencyManager.invokeBindMethod(DependencyManager.java:1784) ~[?:?]
at org.apache.felix.scr.impl.manager.SingleComponentManager.invokeBindMethod(SingleComponentManager.java:409) ~[?:?]
at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:333) ~[?:?]
at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.addedService(DependencyManager.java:302) ~[?:?]
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216) ~[?:?]
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1137) ~[?:?]
at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:944) ~[?:?]
at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:880) ~[?:?]
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1168) ~[?:?]
at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:109) ~[?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:920) ~[?:?]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) ~[?:?]
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:862) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry$1.run(ServiceRegistry.java:805) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry$1.run(ServiceRegistry.java:1) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:803) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:127) ~[?:?]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:225) ~[?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:469) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:891) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:877) ~[?:?]
at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:944) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:727) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:661) ~[?:?]
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:427) ~[?:?]
at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:665) ~[?:?]
at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:339) ~[?:?]
at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:381) ~[?:?]
at org.apache.felix.scr.impl.Activator.access$200(Activator.java:49) ~[?:?]
at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:263) ~[?:?]
at org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196) ~[?:?]
at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169) ~[?:?]
at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:49) ~[?:?]
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:482) ~[?:?]
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:415) ~[?:?]
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) ~[?:?]
at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444) ~[?:?]
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908) ~[?:?]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) ~[?:?]
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:213) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher$1.run(EquinoxEventPublisher.java:124) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher$1.run(EquinoxEventPublisher.java:1) ~[?:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:122) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:112) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:168) ~[?:?]
at org.eclipse.osgi.container.Module.publishEvent(Module.java:476) ~[?:?]
at org.eclipse.osgi.container.Module.start(Module.java:467) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) ~[?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) ~[?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) ~[?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) ~[?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) ~[?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) ~[?:?]
2020-06-26 14:29:42.589 [WARN ] [l.protocol.RemoteControllerWebSocket] - WebSocketClient failure: java.lang.InterruptedException
2020-06-26 14:29:42.984 [WARN ] [l.protocol.RemoteControllerWebSocket] - WebSocketClient failure: java.lang.InterruptedException
2020-06-26 14:34:58.155 [INFO ] [rnal.service.RemoteControllerService] - Using None interface
2020-06-26 14:34:58.168 [INFO ] [rnal.service.RemoteControllerService] - Using None interface
2020-06-26 14:34:58.173 [INFO ] [rnal.service.RemoteControllerService] - Using None interface
2020-06-26 14:34:58.180 [INFO ] [rnal.service.RemoteControllerService] - Using None interface
2020-06-26 14:34:58.184 [INFO ] [rnal.service.RemoteControllerService] - Using None interface
2020-06-26 14:34:58.190 [INFO ] [rnal.service.RemoteControllerService] - Using None interface
2020-06-26 14:34:58.195 [INFO ] [rnal.service.RemoteControllerService] - Using None interface
Best, Jay
Thats intesting. Because the class TrustAllTrustManager was already present in ESH days (so 2.4 should have it, too). Please check if list -s-t 0 | grep io.net shows a bundle. Otherwise try installing org.eclipse.smarthome.io.net.http
TrustAllTrustManager was already present
Is PID 118 the correct one or am I missing it because it's NOT ending with .http ?
`openhab> list -s -t 0 | grep io.net
118 β Active β 80 β 0.10.0.oh240 β org.eclipse.smarthome.io.net
203 β Active β 80 β 4.1.48.Final β io.netty.resolver
216 β Active β 80 β 4.1.48.Final β io.netty.handler
217 β Active β 80 β 4.1.48.Final β io.netty.transport
222 β Active β 80 β 4.1.48.Final β io.netty.buffer
225 β Active β 80 β 4.1.48.Final β io.netty.codec
247 β Active β 80 β 4.1.48.Final β io.netty.codec-http
257 β Active β 80 β 4.1.48.Final β io.netty.common
`
Best, Jay
The http extension is missing. Please install that (install org.eclipse.smarthome.io.net.http should do)
http extension is missing
Tried install and feature:install and both didn't work. Maybe you can point me to where I can just download/drop in?
openhab> install org.eclipse.smarthome.io.net.http
Bundle IDs:
Error executing command: Error installing bundles:
Unable to install bundle org.eclipse.smarthome.io.net.http: org.osgi.framework.BundleException: Error reading bundle content.
openhab> feature:install install org.eclipse.smarthome.io.net.http
Error executing command: No matching features for org.eclipse.smarthome.io.net.http/0
Best, Jay
I think the binding your talking about is this one? This one is missing the .net. portion of it.
openhab> list -s | grep io.http
115 β Active β 80 β 0.10.0.oh240 β org.eclipse.smarthome.io.http
Best, Jay
No, thatβs another one. Unfortunately Iβm on a phone right now and browsing code there is not easy. Iβll try to look for the correct feature tomorrow. It could be that you need to install a upnp feature, e.g. openhab-transport-upnp
install a upnp feature
Here's what I have for upnp.
openhab> list -s | grep upnp
214 β Active β 80 β 2.5.2 β org.jupnp
224 β Active β 80 β 0.11.0.oh250M1 β org.eclipse.smarthome.config.discovery.upnp
253 β Active β 80 β 0.11.0.oh250M1 β org.eclipse.smarthome.io.transport.upnp
Best, Jay
My fault. http is only a package in net. The class shpuld be contained in that bundle. Please try re-resolving the samsunttv binding (resolve <bundleid>) and if that doesn't help, Check if classes 118 | grep smarthome contains the TrustAllTrustManager.
I just rolled it back to SamsungTV 2.4 RC1, I'm seeing the Sonos and WeMo devices going offline/online more than normal again because of the SamsungTV binding. When I rolled it back; all my TV's showed their correct status's immediately.
Best, Jay
classes 118 | grep smarthome
It's NOT in the dump below --> TrustAllTrustManager
openhab> classes 118 | grep smarthome
org/eclipse/smarthome/core/library/types/QuantityTypeArithmeticGroupFunction$DimensionalGroupFunction.class | exported: false
org/eclipse/smarthome/core/library/types/QuantityTypeArithmeticGroupFunction$Max.class | exported: false
org/eclipse/smarthome/core/library/types/IncreaseDecreaseType.class | exported: false
org/eclipse/smarthome/core/library/types/PercentType.class | exported: false
org/eclipse/smarthome/core/library/types/NextPreviousType.class | exported: false
org/eclipse/smarthome/core/library/types/ArithmeticGroupFunction$Or.class | exported: false
org/eclipse/smarthome/core/library/types/DateTimeGroupFunction$Earliest.class | exported: false
org/eclipse/smarthome/core/library/types/ArithmeticGroupFunction$Avg.class | exported: false
org/eclipse/smarthome/core/library/types/StringListType.class | exported: false
org/eclipse/smarthome/core/library/types/ArithmeticGroupFunction$Sum.class | exported: false
org/eclipse/smarthome/core/library/types/HSBType.class | exported: false
org/eclipse/smarthome/core/library/types/DecimalType.class | exported: false
org/eclipse/smarthome/core/library/types/DateTimeGroupFunction.class | exported: false
org/eclipse/smarthome/core/library/types/ArithmeticGroupFunction$NOr.class | exported: false
org/eclipse/smarthome/core/library/types/StringType.class | exported: false
org/eclipse/smarthome/core/library/types/OnOffType.class | exported: false
org/eclipse/smarthome/core/library/types/DateTimeGroupFunction$Latest.class | exported: false
org/eclipse/smarthome/core/library/types/OpenClosedType.class | exported: false
org/eclipse/smarthome/core/library/types/StopMoveType.class | exported: false
org/eclipse/smarthome/core/library/types/QuantityTypeArithmeticGroupFunction$Sum.class | exported: false
org/eclipse/smarthome/core/library/types/ArithmeticGroupFunction$And.class | exported: false
org/eclipse/smarthome/core/library/types/ArithmeticGroupFunction$Min.class | exported: false
org/eclipse/smarthome/core/library/types/RewindFastforwardType.class | exported: false
org/eclipse/smarthome/core/library/types/PlayPauseType.class | exported: false
org/eclipse/smarthome/core/library/types/QuantityTypeArithmeticGroupFunction.class | exported: false
org/eclipse/smarthome/core/library/types/QuantityTypeArithmeticGroupFunction$Min.class | exported: false
org/eclipse/smarthome/core/library/types/RawType.class | exported: false
org/eclipse/smarthome/core/library/types/QuantityType.class | exported: false
org/eclipse/smarthome/core/library/types/ArithmeticGroupFunction$NAnd.class | exported: false
org/eclipse/smarthome/core/library/types/ArithmeticGroupFunction$Max.class | exported: false
org/eclipse/smarthome/core/library/types/DateTimeType.class | exported: false
org/eclipse/smarthome/core/library/types/ArithmeticGroupFunction.class | exported: false
org/eclipse/smarthome/core/library/types/ArithmeticGroupFunction$Count.class | exported: false
org/eclipse/smarthome/core/library/types/PointType.class | exported: false
org/eclipse/smarthome/core/library/types/UpDownType.class | exported: false
org/eclipse/smarthome/core/library/types/QuantityTypeArithmeticGroupFunction$Avg.class | exported: false
org/eclipse/smarthome/io/net/exec/ExecUtil.class | exported: true
org/eclipse/smarthome/io/net/http/internal/WebClientFactoryImpl$3.class | exported: false
org/eclipse/smarthome/io/net/http/internal/WebClientFactoryImpl$1.class | exported: false
org/eclipse/smarthome/io/net/http/internal/ExtensibleTrustManager$CommonNameNotFoundException.class | exported: false
org/eclipse/smarthome/io/net/http/internal/WebClientFactoryImpl$2.class | exported: false
org/eclipse/smarthome/io/net/http/internal/TlsCertificateTrustManagerAdapter.class | exported: false
org/eclipse/smarthome/io/net/http/TrustManagerProvider.class | exported: true
org/eclipse/smarthome/io/net/http/HttpClientInitializationException.class | exported: true
org/eclipse/smarthome/io/net/http/TlsTrustManagerProvider.class | exported: true
org/eclipse/smarthome/io/net/http/TlsCertificateProvider.class | exported: true
org/eclipse/smarthome/io/net/http/HttpClientFactory.class | exported: true
org/eclipse/smarthome/io/net/http/internal/ExtensibleTrustManager.class | exported: false
org/eclipse/smarthome/io/net/http/internal/TrustManagerUtil.class | exported: false
org/eclipse/smarthome/io/net/http/HttpRequestBuilder.class | exported: true
org/eclipse/smarthome/io/net/http/TlsProvider.class | exported: true
org/eclipse/smarthome/io/net/http/HttpUtil$ProxyParams.class | exported: true
org/eclipse/smarthome/io/net/http/WebSocketFactory.class | exported: true
org/eclipse/smarthome/io/net/http/HttpUtil.class | exported: true
org/eclipse/smarthome/io/net/http/internal/WebClientFactoryImpl.class | exported: false
openhab>
Best, Jay
You are right. This class exists since ESH 0.11.0, OH 2.4 is based on ESH 0.10.0. So you might run into bigger problems trying to update that bundle only. I'm sorry. Why don't you use 2.5?
My 2.4 is incredibly stable. I'm also running on a Synology HA platform which makes it a little more difficult to upgrade. I've seen so many issues with 2.5.x being posted over the last year which scares me to even try. I started on OH 2.3 two years ago.
I have a very large OH setup which consists of 30+ WeMo's, 40+ HUE Lights, 30+ zWave devices, 15 Echo's, 14 Sonos's, 2 Ecobee's, MQTT tied to a Roomba, 8 Samsung TVs, etc. I have 2500 lines in one master .item file and 28,000 lines in one master .rules file.
Is there anyway to just drop a specific .JAR into my OH 2.4 to get those classes? 85% of my bindings I'm running are dropped in with v2.5.x levels.
Best, Jay
So - to report back from my side - we're about 10 hours in with the new JAR. So far - no lockups. I have two TVs - an older 2010 C650 and a newer NU8000. Both are being detected online/offline. The NU8000 isn't providing any further information - e.g. no channel/source (but I'm not convinced it ever did). I haven't done a proper check on the C650 yet.
@MPH80 is ten hours an improvement? If it is, we should merge that, even if it is not a final fix for everything. It may well be that there is more than one issue that look the same.
@jaywiseman1971 understood. You could try exchanging the bundle, I can look up what the correct one is, bit you may run into difficulties.
Yes, please. I will give it a try.
Best, Jay
update 118 https://dl.bintray.com/openhab/mvn/org/openhab/core/bundles/org.openhab.core.io.net/2.5.0/org.openhab.core.io.net-2.5.0.jar
Youβll probably need to restart after that. But do not clean cache, it would revert the updated bundle.
Dropped in thinking it would go from Installed to Active. I even did a fresh restart of OH but it didn't. I'm still running the SamsungTV 2.4 RC1 version.
openhab> list -s | grep io.net
118 β Active β 80 β 0.10.0.oh240 β org.eclipse.smarthome.io.net
331 β Installed β 80 β 2.5.0 β org.openhab.core.io.net
If I drop in the new Samsung binding above in; will that activate the org.openhab.core.io.net binding?
EDIT:
2020-06-27 19:33:16.754 [WARN ] [org.apache.felix.fileinstall ] - Error while starting bundle: file:/volume1/homes/openhab/addons/org.openhab.core.io.net-2.5.0.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.core.io.net [331]
Unresolved requirement: Import-Package: org.eclipse.smarthome.core.library.types; version="[2.5.0,3.0.0)"
at org.eclipse.osgi.container.Module.start(Module.java:444) ~[?:?]
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:383) ~[?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) [10:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) [10:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startAllBundles(DirectoryWatcher.java:1221) [10:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:515) [10:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [10:org.apache.felix.fileinstall:3.6.4]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [10:org.apache.felix.fileinstall:3.6.4]
Best, Jay
Thatβs what I meant. Youβll draw in a bunch of other dependencies, I guess if you install that bundle another dependency is missing. I donβt think this makes any sense.
And probably it wonβt work to have the 2.4 and 2.5 version co-exist. You would need to stop the 2.4 bundle (and resolve all bundles that depend on it).
@MPH80 is ten hours an improvement? If it is, we should merge that, even if it is not a final fix for everything. It may well be that there is more than one issue that look the same.
Yes - it's massive - and we're almost at 24 hours, which, in the last 2 weeks, was unheard of.
@MPH80, since I assume that the connection is still closed very often (and I only made that clean), I would like to see what happens. Could you set org.openhab.binding.samsungtv.internal.protocol.WebSocketBase to TRACE and send the output? You can send to my email-address instead of pasting it here, it might be a larger log. The interesting part is the one that starts with Closing session Future:
Tried to find a way to email you @J-N-K - must be being stupid as I can't see it. Anyway - have added the trace and turned off/on both TVs several times. Pretty sure it's the NU8000 (as the new one) that's the interesting one. Log attached to post here.
Note: At some point overnight - the bundle was reverted back to the 2.5.6 thanks to that auto-updating service. So I reloaded it back to the 2.5.7 snapshot again at the 11.55 point.
2020-06-28 11:55:52.805 [DEBUG] [l.protocol.RemoteControllerWebSocket] - RemoteControllerWebSocket close
2020-06-28 11:55:52.808 [DEBUG] [l.protocol.RemoteControllerWebSocket] - RemoteControllerWebSocket closeConnection
2020-06-28 11:55:52.812 [DEBUG] [ngtv.internal.protocol.WebSocketBase] - WebSocketRemote connection close requested
2020-06-28 11:55:52.815 [TRACE] [ngtv.internal.protocol.WebSocketBase] - Closing session Future: java.util.concurrent.CompletableFuture@17a3bd8[Not completed]
2020-06-28 11:55:52.818 [DEBUG] [ngtv.internal.protocol.WebSocketBase] - WebSocketArt connection close requested
2020-06-28 11:55:52.822 [TRACE] [ngtv.internal.protocol.WebSocketBase] - Closing session Future: java.util.concurrent.CompletableFuture@1aa0e68[Not completed]
2020-06-28 11:55:52.825 [DEBUG] [ngtv.internal.protocol.WebSocketBase] - WebSocketV2 connection close requested
2020-06-28 11:55:52.828 [TRACE] [ngtv.internal.protocol.WebSocketBase] - Closing session Future: java.util.concurrent.CompletableFuture@5ef1e0[Not completed]
2020-06-28 11:55:52.831 [TRACE] [l.protocol.RemoteControllerWebSocket] - WebSocketClient stopping
That's the intersting part. As you can see, the session Future (that's something that is created when trying to connect the websocket) is still in the state "not completed". It would be "completed" if the connect was successfull. In the released version, these Futures were ignored and thus stayed in memory forever, waiting for their completion. What I have done is storing the Future on connect and check the state when clsoing the socket is requested. If it's not completed, it's cancelled.
Depending on the state it was in, it may lead to out-of-memory errors or maybe exhaustion of the thread pool. Maybe because the amazonechoontrol did use it's own thread pool, it lead to the OOM where here the thread pool is exhausted with blocked threads.
You can uninstall the binding and drop the .jar in the addons folder, then it can't be reverted.
P.S.: There is no special button to email someone. My email address is in the first post of the attached PR.
Just to throw a comment on here about the JuPnP note. I also moved to the 2.4.0-SNAPSHOT Samsung binding due to the thread issues and it did NOT stop my thread exhaustion issues. After about 8 days my Sonos speakers start to fall offline and refuse to come back. I'm a firm believer there is a race condition happening in the thread pool. It looks like the majority of my failures happen when the system loads up. Specifically when I either have a significant burst of item updates or a bunch of complex rules fire at once.
Try 2.4 RC1 Samsung binding. It has kept my system stable. My sonos devices (15) randomly drop off but come back online within less than 5 minutes. I have a rule watching all my Sonos things which alerts me when it happens.
Best, Jay
Happy to test. Got a specific link for the jar file to make sure we're all on the same version?
https://openhab.jfrog.io/openhab/webapp/#/home
Case sensitive on Quick Search --> samsungtv-2.4.0.RC1
You need to put an asterisk (*) in front and behind of the search criteria above. GitHub is stripping my asterisks off.
EDIT: Here's my upnp libraries I'm running also.
openhab> list -s | grep upnp
214 β Active β 80 β 2.5.2 β org.jupnp
224 β Active β 80 β 0.11.0.oh250M1 β org.eclipse.smarthome.config.discovery.upnp
253 β Active β 80 β 0.11.0.oh250M1 β org.eclipse.smarthome.io.transport.upnp
Best, Jay
@MPH80, can we close here?
Yes - been stable since the new jar went in. Thanks @J-N-K for your hard work on this.