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

[SamsungTV] Samsung TV Binding can cause thread lockups. #7978

Closed
MPH80 opened this issue Jun 22, 2020 · 33 comments
Closed

[SamsungTV] Samsung TV Binding can cause thread lockups. #7978

MPH80 opened this issue Jun 22, 2020 · 33 comments
Labels
bug An unexpected problem or unintended behavior of an add-on

Comments

@MPH80
Copy link

MPH80 commented Jun 22, 2020

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.

Current Behavior

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.

Possible Solution

The only solution was to restart Openhab (although I'll admit I didn't try reloading the samsungtv binding).

Steps to Reproduce (for Bugs)

Reproduction is very tricky - the situation is apparently random and might be timing related.

Your Environment

  • Version used: OpenHab 2.5.4 and 2.5.5
  • Environment name and version: RPi 3B running latest version of Raspbian

##Thread traces:
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 java.base@11.0.7/jdk.internal.misc.Unsafe.park(Native Method)
    at java.base@11.0.7/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
    at java.base@11.0.7/java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:885)
    at java.base@11.0.7/java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1039)
    at java.base@11.0.7/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1345)
    at java.base@11.0.7/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 java.base@11.0.7/java.lang.Thread.run(Thread.java:834)

@MPH80 MPH80 added the bug An unexpected problem or unintended behavior of an add-on label Jun 22, 2020
@lolodomo
Copy link
Contributor

lolodomo commented Jun 26, 2020

@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 ;)

@jaywiseman1971
Copy link

@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

@J-N-K
Copy link
Member

J-N-K commented Jun 26, 2020

Please try PR with changes has been merged. Use latest 2.5.7-SNAPSHOT

@jaywiseman1971
Copy link

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

@J-N-K
Copy link
Member

J-N-K commented Jun 26, 2020

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

@jaywiseman1971
Copy link

jaywiseman1971 commented Jun 26, 2020

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

@J-N-K
Copy link
Member

J-N-K commented Jun 26, 2020

The http extension is missing. Please install that (install org.eclipse.smarthome.io.net.http should do)

@jaywiseman1971
Copy link

jaywiseman1971 commented Jun 26, 2020

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

@jaywiseman1971
Copy link

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

@J-N-K
Copy link
Member

J-N-K commented Jun 26, 2020

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

@jaywiseman1971
Copy link

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

@J-N-K
Copy link
Member

J-N-K commented Jun 27, 2020

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.

@jaywiseman1971
Copy link

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

@jaywiseman1971
Copy link

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

@J-N-K
Copy link
Member

J-N-K commented Jun 27, 2020

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?

@jaywiseman1971
Copy link

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

@MPH80
Copy link
Author

MPH80 commented Jun 27, 2020

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.

@J-N-K
Copy link
Member

J-N-K commented Jun 27, 2020

@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.

@J-N-K
Copy link
Member

J-N-K commented Jun 27, 2020

@jaywiseman1971 understood. You could try exchanging the bundle, I can look up what the correct one is, bit you may run into difficulties.

@jaywiseman1971
Copy link

Yes, please. I will give it a try.

Best, Jay

@J-N-K
Copy link
Member

J-N-K commented Jun 27, 2020

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.

@jaywiseman1971
Copy link

jaywiseman1971 commented Jun 28, 2020

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

@J-N-K
Copy link
Member

J-N-K commented Jun 28, 2020

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
Copy link
Author

MPH80 commented Jun 28, 2020

@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.

@J-N-K
Copy link
Member

J-N-K commented Jun 28, 2020

@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:

@MPH80
Copy link
Author

MPH80 commented Jun 28, 2020

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.

openhab.log

@J-N-K
Copy link
Member

J-N-K commented Jun 28, 2020

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.

@morph166955
Copy link
Contributor

morph166955 commented Jun 28, 2020

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.

@jaywiseman1971
Copy link

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

@morph166955
Copy link
Contributor

Happy to test. Got a specific link for the jar file to make sure we're all on the same version?

@jaywiseman1971
Copy link

jaywiseman1971 commented Jun 29, 2020

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

@J-N-K
Copy link
Member

J-N-K commented Jul 1, 2020

@MPH80, can we close here?

@MPH80
Copy link
Author

MPH80 commented Jul 1, 2020

Yes - been stable since the new jar went in. Thanks @J-N-K for your hard work on this.

@MPH80 MPH80 closed this as completed Jul 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug An unexpected problem or unintended behavior of an add-on
Projects
None yet
Development

No branches or pull requests

5 participants