Ergebnis 51 bis 60 von 78
Thema: OpenWebif blockiert Tuner
-
03.11.2016, 19:16 #51
- Registriert seit
- 15.06.2013
- Beiträge
- 2.359
- Thanks (gegeben)
- 287
- Thanks (bekommen)
- 1399
- Total Downloaded
- 1,32 MB
- Total Downloaded
- 1,32 MB
Box 1:hd51Box 2:vuduo4kseBox 3:und noch 20-30 andereDas klingt sehr nach unserem Problem:
#8871 (twisted.web cannot detect client termination on OS-X)
– Twisted
Steht zwar, dass das Linux nicht betrifft, aber vielleicht liegt es auch an der Architektur. Leider noch kein Fix.
Edit: Und das würde das bestätigen was Arn354 schrieb. Mit altem Twisted ging es und dem neuen nicht mehr.hd51, vuduo4se,....
-
Advertising
-
03.11.2016, 19:29 #52
- Registriert seit
- 13.08.2013
- Ort
- Midgard
- Beiträge
- 2.863
- Thanks (gegeben)
- 585
- Thanks (bekommen)
- 1589
- Total Downloaded
- 745,74 MB
- Total Downloaded
- 745,74 MB
Box 1:Vu+ Ultimo 4k 4x DVB-S2 FBC / 2x DVB-C OpenATV 6.2Box 2:Gigablue Quad4k 2xDVB-S2 OpenATV 6.2Box 3:AX Quadbox 2400HDBox 4:diverseBox 5:DVBViewerDerselbe Fehler wurde schon am 26.03.2014 in HDMU beobachtet, also jetzt hört endlich auf von wegen alter Twisted.
Schau doch mal in
stream.py
Da sehe ich:
request.notifyFinish().addCallback(self.close, None)
request.notifyFinish().addErrback(self.close, None)
Also nur self.close, was ja anscheinend nicht reicht.
Kann man aus der Erkenntnis plus
reviewed by: xmartinez/jan * Flumotion/flumotion@2a6b048 * GitHub
oder
When to not just use socket.close() << Python recipes << ActiveState Code
nicht was machen?Receiver/TV:- Vu+ Ultimo 4k 4xDVB-S2 FBC / 2x-C / 5.5TB / OpenATV 6.4@LG 65" OLED
- Gigablue Quad 4k 2xDVB-S2 / 2x-C / 1.8TB GB / OpenATV 6.4@Samsung 37" LED
- diverse weitere
- S2-Twin-Tuner PCIe@Samsung SyncMaster T240HD (PC)
- TechniSat SkyStar HD 2 (2.PC)
Internet: Unitymedia 2play 400 + Telekom VDSL100 / Linksys WRT1900ACS / IPv4 (UM) + IPv6 (Hurricane Electric+UM+Telekom)
-
03.11.2016, 19:38 #53
- Registriert seit
- 13.08.2013
- Ort
- Midgard
- Beiträge
- 2.863
- Thanks (gegeben)
- 585
- Thanks (bekommen)
- 1589
- Total Downloaded
- 745,74 MB
- Total Downloaded
- 745,74 MB
Box 1:Vu+ Ultimo 4k 4x DVB-S2 FBC / 2x DVB-C OpenATV 6.2Box 2:Gigablue Quad4k 2xDVB-S2 OpenATV 6.2Box 3:AX Quadbox 2400HDBox 4:diverseBox 5:DVBViewerDas hier war eine Änderung in stream.py, die zumindest einen Crash/Hänger in E2 verhindert hat:
Code:def requestWrite(self, notused1 = None, notused2 = None): converter_args = [] self.converter = Streaming(converter_args) - self.converter.source = self - self.request.write(self.converter.getText()) + if self.converter: + self.converter.source = self + try: + self.request.write(self.converter.getText()) + except: + return class StreamController(resource.Resource): def __init__(self, session, path = ""):
Receiver/TV:- Vu+ Ultimo 4k 4xDVB-S2 FBC / 2x-C / 5.5TB / OpenATV 6.4@LG 65" OLED
- Gigablue Quad 4k 2xDVB-S2 / 2x-C / 1.8TB GB / OpenATV 6.4@Samsung 37" LED
- diverse weitere
- S2-Twin-Tuner PCIe@Samsung SyncMaster T240HD (PC)
- TechniSat SkyStar HD 2 (2.PC)
Internet: Unitymedia 2play 400 + Telekom VDSL100 / Linksys WRT1900ACS / IPv4 (UM) + IPv6 (Hurricane Electric+UM+Telekom)
-
03.11.2016, 20:02 #54
- Registriert seit
- 15.06.2013
- Beiträge
- 2.359
- Thanks (gegeben)
- 287
- Thanks (bekommen)
- 1399
- Total Downloaded
- 1,32 MB
- Total Downloaded
- 1,32 MB
Box 1:hd51Box 2:vuduo4kseBox 3:und noch 20-30 andereIch hab es aber gerade ausprobiert. Auf meinem Ubuntu mit Twisted 13.x bekomme ich eine Exception, wenn der Webbrowser die Verbindung beendet:
Code:Python 2.7.6 (default, Jun 22 2015, 17:58:13) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from twisted.web.resource import Resource >>> from twisted.web import server >>> from twisted.internet import reactor >>> from twisted.python.util import println >>> >>> class ExampleResource(Resource): ... isLeaf = True ... def render_GET(self, request): ... request.write(b"hello world") ... d = request.notifyFinish() ... d.addCallback(lambda _: println("finished normally")) ... d.addErrback(println, "error") ... return server.NOT_DONE_YET ... >>> resource = ExampleResource() >>> if __name__ == '__main__': ... reactor.listenTCP(11111, server.Site(ExampleResource())) ... reactor.run() ... <<class 'twisted.internet.tcp.Port'> of twisted.web.server.Site on 11111> [Failure instance: Traceback (failure with no frames): <class 'twisted.internet.error.ConnectionDone'>: Connection was closed cleanly. ] error
Code:Python 2.7.11 (default, Aug 28 2016, 17:41:24) [GCC 5.3.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from twisted.web.resource import Resource >>> from twisted.web import server >>> from twisted.internet import reactor :0: UserWarning: You do not have a working installation of the service_identity module: 'No module named service_identity'. Please install it from <https://pypi.python.org/pypi/service_identity> and make sure all of its dependencies are satisfied. Without the service_identity module and a recent enough pyOpenSSL to support it, Twisted can perform only rudimentary TLS client hostname verification. Many valid certificate/hostname mappings may be rejected. >>> from twisted.python.util import println >>> >>> class ExampleResource(Resource): ... isLeaf = True ... def render_GET(self, request): ... request.write(b"hello world") ... d = request.notifyFinish() ... d.addCallback(lambda _: println("finished normally")) ... d.addErrback(println, "error") ... return server.NOT_DONE_YET ... >>> resource = ExampleResource() >>> if __name__ == '__main__': ... reactor.listenTCP(9999, server.Site(ExampleResource())) ... reactor.run() ... <<class 'twisted.internet.tcp.Port'> of twisted.web.server.Site on 9999>
Nochmal das hier bringt gar nichts in unserer Situation:
request.notifyFinish().addCallback(self.close, None)
request.notifyFinish().addErrback(self.close, None)
Damit die Callbacks aufgerufen werden, muss irgendwer request.finish() aufrufen. Das macht aber keiner! Das wird weder vom WebIf selber aufgerufen noch automatisch dadurch, dass der Proxy sich beendet.
Was 2014 irgendwer berichtet hat oder nicht, ist mir egal (vielleicht war der gleiche Fehler ja schon mal in einer Twisted Version und wurde behoben). Fakt ist, dass es mit Twisted 13.x funktioniert und mit 16.x nicht.hd51, vuduo4se,....
-
03.11.2016, 20:07 #55
- Registriert seit
- 13.08.2013
- Ort
- Midgard
- Beiträge
- 2.863
- Thanks (gegeben)
- 585
- Thanks (bekommen)
- 1589
- Total Downloaded
- 745,74 MB
- Total Downloaded
- 745,74 MB
Box 1:Vu+ Ultimo 4k 4x DVB-S2 FBC / 2x DVB-C OpenATV 6.2Box 2:Gigablue Quad4k 2xDVB-S2 OpenATV 6.2Box 3:AX Quadbox 2400HDBox 4:diverseBox 5:DVBViewerDie Stelle hier:
Code:def requestWrite(self, notused1 = None, notused2 = None): converter_args = [] self.converter = Streaming(converter_args) - self.converter.source = self - self.request.write(self.converter.getText()) + if self.converter: + self.converter.source = self + try: + self.request.write(self.converter.getText()) + except: + return class StreamController(resource.Resource): def __init__(self, session, path = ""):
D.h. wir landen auf jedem Fall im Fehlerfall nun bei "return".
Man muß doch an dieser Stelle irgendwie die Verbindung terminieren können!?Receiver/TV:- Vu+ Ultimo 4k 4xDVB-S2 FBC / 2x-C / 5.5TB / OpenATV 6.4@LG 65" OLED
- Gigablue Quad 4k 2xDVB-S2 / 2x-C / 1.8TB GB / OpenATV 6.4@Samsung 37" LED
- diverse weitere
- S2-Twin-Tuner PCIe@Samsung SyncMaster T240HD (PC)
- TechniSat SkyStar HD 2 (2.PC)
Internet: Unitymedia 2play 400 + Telekom VDSL100 / Linksys WRT1900ACS / IPv4 (UM) + IPv6 (Hurricane Electric+UM+Telekom)
-
03.11.2016, 20:08 #56
- Registriert seit
- 15.06.2013
- Beiträge
- 2.359
- Thanks (gegeben)
- 287
- Thanks (bekommen)
- 1399
- Total Downloaded
- 1,32 MB
- Total Downloaded
- 1,32 MB
Box 1:hd51Box 2:vuduo4kseBox 3:und noch 20-30 andereDamit bekomme ich einen netten Crash:
Code:20:07:27.496 bsod.cpp:304 oops PC: 004cd10c 20:07:27.496 bsod.cpp:310 oops 00000000 00000001 00000000 00000003 20:07:27.496 bsod.cpp:310 oops 00000000 00000001 007242c8 00000003 20:07:27.496 bsod.cpp:310 oops 00000001 005c1598 00000000 70206f6e 20:07:27.496 bsod.cpp:310 oops 7fa7d6a0 0000005a 00000001 00720000 20:07:27.496 bsod.cpp:310 oops 015d2dec 0156d8e0 7fa7e5e0 00000012 20:07:27.496 bsod.cpp:310 oops 7fa7f718 00000001 006372e0 7fa7f89c 20:07:27.496 bsod.cpp:310 oops 00723dfc 7715efa0 fefefeff 00000000 20:07:27.497 bsod.cpp:310 oops 77184020 7fa7e530 7fa7f7c0 004cd988 20:07:27.498 bsod.cpp:327 print_backtrace Backtrace: 20:07:27.498 bsod.cpp:335 print_backtrace enigma2(_Z17handleFatalSignaliP9siginfo_tPv) [0x46B42C] 20:07:27.498 bsod.cpp:335 print_backtrace enigma2(_ZN21eDVBServicePMTHandler17registerCAServiceEv) [0x4CD10E] 20:07:27.499 bsod.cpp:335 print_backtrace enigma2(_ZN21eDVBServicePMTHandler8PMTreadyEi) [0x4CD988] 20:07:27.499 bsod.cpp:335 print_backtrace enigma2(_ZN4SigC7Signal1IviNS_7MarshalIvEEE5emit_ERKiPv) [0x4824F0] 20:07:27.499 bsod.cpp:335 print_backtrace enigma2(n/a) [0x4D271C] 20:07:27.500 bsod.cpp:335 print_backtrace enigma2(_ZN4SigC7Signal1IviNS_7MarshalIvEEE5emit_ERKiPv) [0x4824F0] 20:07:27.500 bsod.cpp:335 print_backtrace enigma2(_ZN4SigC7Signal1IvPKhNS_7MarshalIvEEE5emit_ERKS2_Pv) [0x49D384] 20:07:27.500 bsod.cpp:335 print_backtrace enigma2(_ZN17eDVBSectionReader4dataEi) [0x49C664] 20:07:27.500 bsod.cpp:335 print_backtrace enigma2(_ZN4SigC7Signal1IvPKcNS_7MarshalIvEEE5emit_ERKS2_Pv) [0x470A70] 20:07:27.501 bsod.cpp:335 print_backtrace enigma2(n/a) [0x470BC0] 20:07:27.501 bsod.cpp:335 print_backtrace enigma2(_ZN9eMainloop15processOneEventEjPP7_object9ePyObject) [0x4716B0] 20:07:27.501 bsod.cpp:335 print_backtrace enigma2(_ZN9eMainloop7iterateEjPP7_object9ePyObject) [0x4719B8] 20:07:27.502 bsod.cpp:335 print_backtrace enigma2(_ZN9eMainloop4pollE9ePyObjectS0_) [0x471AF8] 20:07:27.502 bsod.cpp:347 handleFatalSignal -------FATAL SIGNAL
Ach ne. Sorry hab das so gemacht:
Code:def requestWrite(self, notused1 = None, notused2 = None): converter_args = [] self.converter = Streaming(converter_args) self.converter.source = self try: self.request.write(self.converter.getText()) self.request.finish() except: return
hd51, vuduo4se,....
-
03.11.2016, 20:16 #57
- Registriert seit
- 13.08.2013
- Ort
- Midgard
- Beiträge
- 2.863
- Thanks (gegeben)
- 585
- Thanks (bekommen)
- 1589
- Total Downloaded
- 745,74 MB
- Total Downloaded
- 745,74 MB
Box 1:Vu+ Ultimo 4k 4x DVB-S2 FBC / 2x DVB-C OpenATV 6.2Box 2:Gigablue Quad4k 2xDVB-S2 OpenATV 6.2Box 3:AX Quadbox 2400HDBox 4:diverseBox 5:DVBViewerMit dieser Variante hängt nun auch der streamproxy viel länger *vbeg*:
Code:def requestWrite(self, notused1 = None, notused2 = None): converter_args = [] self.converter = Streaming(converter_args) if self.converter: self.converter.source = self try: self.request.write(self.converter.getText()) except: try: self.request.close() finally: self.request = None self.request.finish() self._finished = True
Ich könnte da jetzt aber nur stundenlang raten ...Receiver/TV:- Vu+ Ultimo 4k 4xDVB-S2 FBC / 2x-C / 5.5TB / OpenATV 6.4@LG 65" OLED
- Gigablue Quad 4k 2xDVB-S2 / 2x-C / 1.8TB GB / OpenATV 6.4@Samsung 37" LED
- diverse weitere
- S2-Twin-Tuner PCIe@Samsung SyncMaster T240HD (PC)
- TechniSat SkyStar HD 2 (2.PC)
Internet: Unitymedia 2play 400 + Telekom VDSL100 / Linksys WRT1900ACS / IPv4 (UM) + IPv6 (Hurricane Electric+UM+Telekom)
-
03.11.2016, 20:31 #58
- Registriert seit
- 15.06.2013
- Beiträge
- 2.359
- Thanks (gegeben)
- 287
- Thanks (bekommen)
- 1399
- Total Downloaded
- 1,32 MB
- Total Downloaded
- 1,32 MB
Box 1:hd51Box 2:vuduo4kseBox 3:und noch 20-30 andereDamit schmiert E2 nicht mehr ab.
Sieht aber komisch aus:
self.request = None
self.request.finish()
Finally wird wohl nicht aufgerufen...
Selbst wenn wir es schaffen self.request.finish() aufzurufen ohne, dass E2 danach crashed, haben wir trotzdem ein Problem. Dann werden nämlich die Callbacks von notifyFinish() aufgerufen (=self.close()) und der Stream gestoppt. Ist also alles Misthd51, vuduo4se,....
-
03.11.2016, 20:41 #59
- Registriert seit
- 13.08.2013
- Ort
- Midgard
- Beiträge
- 2.863
- Thanks (gegeben)
- 585
- Thanks (bekommen)
- 1589
- Total Downloaded
- 745,74 MB
- Total Downloaded
- 745,74 MB
Box 1:Vu+ Ultimo 4k 4x DVB-S2 FBC / 2x DVB-C OpenATV 6.2Box 2:Gigablue Quad4k 2xDVB-S2 OpenATV 6.2Box 3:AX Quadbox 2400HDBox 4:diverseBox 5:DVBViewerWieso?
Das ist doch genau das, was wir wollen!
Während des Streamings:
Code:root@solo2se / # netstat -tupen | grep ":80 " tcp 0 0 127.0.0.1:48367 127.0.0.1:80 ESTABLISHED 566/streamproxy tcp 0 0 ::ffff:127.0.0.1:80 ::ffff:127.0.0.1:48367 ESTABLISHED 32693/enigma2
Code:root@solo2se / # netstat -tupen | grep ":80 " tcp 0 0 127.0.0.1:48367 127.0.0.1:80 FIN_WAIT2 - tcp 1 0 ::ffff:127.0.0.1:80 ::ffff:127.0.0.1:48367 CLOSE_WAIT 32693/enigma2
Code:root@solo2se / # netstat -tupen | grep ":80 " tcp 1 0 ::ffff:127.0.0.1:80 ::ffff:127.0.0.1:48367 CLOSE_WAIT 32693/enigma2
Receiver/TV:- Vu+ Ultimo 4k 4xDVB-S2 FBC / 2x-C / 5.5TB / OpenATV 6.4@LG 65" OLED
- Gigablue Quad 4k 2xDVB-S2 / 2x-C / 1.8TB GB / OpenATV 6.4@Samsung 37" LED
- diverse weitere
- S2-Twin-Tuner PCIe@Samsung SyncMaster T240HD (PC)
- TechniSat SkyStar HD 2 (2.PC)
Internet: Unitymedia 2play 400 + Telekom VDSL100 / Linksys WRT1900ACS / IPv4 (UM) + IPv6 (Hurricane Electric+UM+Telekom)
-
03.11.2016, 20:44 #60
- Registriert seit
- 13.08.2013
- Ort
- Midgard
- Beiträge
- 2.863
- Thanks (gegeben)
- 585
- Thanks (bekommen)
- 1589
- Total Downloaded
- 745,74 MB
- Total Downloaded
- 745,74 MB
Box 1:Vu+ Ultimo 4k 4x DVB-S2 FBC / 2x DVB-C OpenATV 6.2Box 2:Gigablue Quad4k 2xDVB-S2 OpenATV 6.2Box 3:AX Quadbox 2400HDBox 4:diverseBox 5:DVBViewerIst es eigentlich der request, der finished/closed werden muß oder die session?
Nach meinem bescheidenen Kenntnisstand doch die Session, oder?Receiver/TV:- Vu+ Ultimo 4k 4xDVB-S2 FBC / 2x-C / 5.5TB / OpenATV 6.4@LG 65" OLED
- Gigablue Quad 4k 2xDVB-S2 / 2x-C / 1.8TB GB / OpenATV 6.4@Samsung 37" LED
- diverse weitere
- S2-Twin-Tuner PCIe@Samsung SyncMaster T240HD (PC)
- TechniSat SkyStar HD 2 (2.PC)
Internet: Unitymedia 2play 400 + Telekom VDSL100 / Linksys WRT1900ACS / IPv4 (UM) + IPv6 (Hurricane Electric+UM+Telekom)
Lesezeichen