Endlosschleife bei "define fronthem fronthem"

Begonnen von shana, 26 April 2016, 21:17:32

Vorheriges Thema - Nächstes Thema

shana

HW: Udoo Quad
OS: Debian GNU/Linux 7.9 (wheezy), Release: 7.9

Ich habe die Installationsschritte der Seite http://www.fhemwiki.de/wiki/Installation_Fronthem ausgeführt. Dabei läuft fhem bei dem Schritt
define meinfronthem fronthem reproduzierbar in eine Endlosschleife, aus dem nur ein Abschießen des fhem Prozesses mit kill -9 weiterhilft.

smartvisu kann ich über IP/smartvisu im Browser aufrufen.

Daraufhin habe ich die vorherigen Schritte noch mal ausgeführt und bin bei dem Schritt sudo cpanm Net::WebSocket::Server auf diese Fehlermeldung bei der Installation aufmerksam geworden
~# sudo cpanm install Net::WebSocket::Server
install is up to date. (0.01)
--> Working on Net::WebSocket::Server
Fetching http://www.cpan.org/authors/id/T/TO/TOPAZ/Net-WebSocket-Server-0.003004.tar.gz ... OK
Configuring Net-WebSocket-Server-0.003004 ... OK
Building and testing Net-WebSocket-Server-0.003004 ... FAIL
! Installing Net::WebSocket::Server failed. See /root/.cpanm/work/1461696791.19083/build.log for details. Retry with --force to force install it.


Die Installation von Net::WebSocket::Server mit force lief wohl erfolgreich (?) durch mit der Meldung:
# sudo cpanm --force install Net::WebSocket::Server
--> Working on install
Fetching http://www.cpan.org/authors/id/D/DA/DAGOLDEN/install-0.01.tar.gz ... OK
Configuring install-0.01 ... OK
Building and testing install-0.01 ... OK
Successfully reinstalled install-0.01
--> Working on Net::WebSocket::Server
Fetching http://www.cpan.org/authors/id/T/TO/TOPAZ/Net-WebSocket-Server-0.003004.tar.gz ... OK
Configuring Net-WebSocket-Server-0.003004 ... OK
Building and testing Net-WebSocket-Server-0.003004 ... FAIL
! Testing Net-WebSocket-Server-0.003004 failed but installing it anyway.
Successfully installed Net-WebSocket-Server-0.003004
2 distributions installed


Doch auch hiernach läuft fhem mit define meinfronthem fronthem in eine Endlosschleife.

Ich probierte

# sudo cpan install Net::WebSocket::Server
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: Storable loaded ok (v2.51)
Reading '/root/.cpan/Metadata'
Database was generated on Mon, 25 Apr 2016 18:53:43 GMT
Running install for module 'Net::WebSocket::Server'
CPAN: Digest::SHA loaded ok (v5.95)
CPAN: Compress::Zlib loaded ok (v2.069)
Checksum for /root/.cpan/sources/authors/id/T/TO/TOPAZ/Net-WebSocket-Server-0.00               3004.tar.gz ok
CPAN: File::Temp loaded ok (v0.2304)
CPAN: YAML loaded ok (v1.15)
CPAN: CPAN::Meta::Requirements loaded ok (v2.131)
CPAN: Parse::CPAN::Meta loaded ok (v1.4417)
CPAN: CPAN::Meta loaded ok (v2.143240)
CPAN: Module::CoreList loaded ok (v2.49_02)
Configuring T/TO/TOPAZ/Net-WebSocket-Server-0.003004.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Invalid LICENSE value 'Artistic_2_0' ignored
Generating a Unix-style Makefile
Writing Makefile for Net::WebSocket::Server
Invalid LICENSE value 'Artistic_2_0' ignored
Writing MYMETA.yml and MYMETA.json
TOPAZ/Net-WebSocket-Server-0.003004.tar.gz
/usr/bin/perl Makefile.PL INSTALLDIRS=site -- OK
Running make for T/TO/TOPAZ/Net-WebSocket-Server-0.003004.tar.gz
cp lib/Net/WebSocket/Server.pm blib/lib/Net/WebSocket/Server.pm
cp lib/Net/WebSocket/Server/Connection.pm blib/lib/Net/WebSocket/Server/Connecti               on.pm
Manifying 2 pod documents
TOPAZ/Net-WebSocket-Server-0.003004.tar.gz
/usr/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-               e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/               *.t
t/00-load.t ....... 1/? # Testing Net::WebSocket::Server 0.003004, Perl 5.014002               , /usr/bin/perl
t/00-load.t ....... ok
t/01-server.t ..... test timed out
   # Child (initialize client socket) exited without calling finalize()
t/01-server.t ..... 1/?
#   Failed test 'initialize client socket'
#   at /usr/local/share/perl/5.14.2/Test/Builder.pm line 279.
# Tests were run but no plan was declared and done_testing() was not seen.
# Looks like your test exited with 4 just after 1.
t/01-server.t ..... Dubious, test returned 4 (wstat 1024, 0x400)
Failed 1/1 subtests
t/boilerplate.t ... ok
t/manifest.t ...... skipped: Author tests not required for installation
t/pod-coverage.t .. skipped: Test::Pod::Coverage 1.08 required for testing POD c               overage
t/pod.t ........... skipped: Test::Pod 1.22 required for testing POD

Test Summary Report
-------------------
t/01-server.t   (Wstat: 1024 Tests: 1 Failed: 1)
Failed test:  1
Non-zero exit status: 4
Parse errors: No plan found in TAP output
Files=6, Tests=5, 12 wallclock secs ( 0.18 usr  0.04 sys +  1.08 cusr  0.07 csys                =  1.37 CPU)
Result: FAIL
Failed 1/6 test programs. 1/5 subtests failed.
make: *** [test_dynamic] Error 255
TOPAZ/Net-WebSocket-Server-0.003004.tar.gz
/usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports TOPAZ/Net-WebSocket-Server-0.003004.tar.gz


make ist unter /usr/bin/ vorhanden.

An der Stelle komme ich nicht weiter. Habt Ihr einen Tipp, woran das liegt, dass ich kein fronthem in fhem definieren kann? Bzw. wenn es an dem Fehler bei der Installation von Net::WebSocket::Server liegt, wie ich das beheben kann?

Danke und Gruß
udoo_juergens

dev0

Ich glaube nicht, dass das Modul korrekt installiert. Warum schaust Du nicht ins build.log, wie angegeben, was da schief gelaufen ist?

herrmannj

Hi,

dieser Diagnose schließe ich mich an:
! Testing Net-WebSocket-Server-0.003004 failed but installing it anyway.

vg
joerg

shana

In das Log hatte ich bereits geschaut, dort habe ich leider auch kein Hinweis gefunden, warum die Installation tatsächlich gescheitert ist.

nano /root/.cpanm/work/1461696791.19083/build.log
  GNU nano 2.2.6                                  File: /root/.cpanm/work/1461696791.19083/build.log

Dubious, test returned 4 (wstat 1024, 0x400)
Failed 1/1 subtests
t/boilerplate.t ... ok
t/manifest.t ...... skipped: Author tests not required for installation
t/pod-coverage.t .. skipped: Test::Pod::Coverage 1.08 required for testing POD coverage
t/pod.t ........... skipped: Test::Pod 1.22 required for testing POD

Test Summary Report
-------------------
t/01-server.t   (Wstat: 1024 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 4
  Parse errors: No plan found in TAP output
Files=6, Tests=5, 11 wallclock secs ( 0.16 usr  0.02 sys +  1.04 cusr  0.15 csys =  1.37 CPU)
Result: FAIL
Failed 1/6 test programs. 1/5 subtests failed.
make: *** [test_dynamic] Error 255
-> FAIL Installing Net::WebSocket::Server failed. See /root/.cpanm/work/1461696791.19083/build.log for details. Retry with --force to force install it.

dev0


shana

#5
In dem o. g. Thread steht leider auch nichts dazu, wie ich das Problem mit cpan lösen kann. Debian neu aufzusetzen ist keine Option, da ich diverse andere Software auf dem Udoo laufen habe und nicht alles neu einrichten möchte und fhem dito; außerdem klingt das nach der guten alten Windows 95 Lösung für alle Probleme: OS löschen und neu aufsetzten... ??? Die Webserver Apache, nginx und lighttpd hatte ich durchprobiert ohne Erfolg.


herrmannj

Hi

mit dem verwendeten Webserver hat das Problem nichts zu tun. Es handelt sich definitiv um ein Problem bei der Installation eines perl moduls (websocket server) aus cpan.

Das wiederum hat auch keine Ursachen in fhem. Wie Du jetzt weiter vorgehst hängt davon ab wieviel Ressourcen Du investieren möchtest und von Deinen Kentnissen. Ich würde die Protokolle (Protocol::WebSocket) aus dem cpan zu installieren und dann das websocket:server modul händisch in den Pfad zu kopieren. Irgendwo in dem Prozess wirst Du wietere Hinweiße sehen wo das Problem eigentlich liegt (websocket server könntest Du manuell fixen wenn Du weißt wo und was).

Setzt aber eigenes Können vorraus - remote kann ich Dir nicht helfen.

vg
joerg


shana

#7
Hallo Jörg,

Zeitressourcen kann ich einige Investieren und ich mit Linux kenne ich mich ok bis gut aus.
Zum Verständnis: Dein Vorschlag ist die Websocket Protokolle zu installieren und anschließend das Modul websocket:server in den Pfad eintragen? Meinst Du damit in die Linux Variable $PATH?

Viele Grüße
Sina

dev0

Zitat
t/01-server.t ..... test timed out
   # Child (initialize client socket) exited without calling finalize()
t/01-server.t ..... 1/?
#   Failed test 'initialize client socket'
#   at /usr/local/share/perl/5.14.2/Test/Builder.pm line 279.
# Tests were run but no plan was declared and done_testing() was not seen.
# Looks like your test exited with 4 just after 1.

In t/01-server.t steht:

subtest "initialize client socket" => sub {
  $port = $listen->sockport;
  $sock = IO::Socket::INET->new(PeerPort => $port, Proto => 'tcp', PeerAddr => 'localhost')
       || IO::Socket::INET->new(PeerPort => $port, Proto => 'tcp', PeerAddr => '127.0.0.1')
       or die "$! (maybe your system does not have a localhost at all, 'localhost' or 127.0.0.1)";
  ok(1);
};


=> Vermutung:
- IO::Socket::INET ist nicht installiert oder fehlerhaft
- Du hast keinen loopback adapter / localhost.
- /etc/hosts enthält falschen localhost Eintrag.

Wenn die Vermutungen nicht zutreffen, dann könntest Du Dir die Tests in t/01-server.t noch näher ansehen.

herrmannj

Zitat von: udoo_juergens am 28 April 2016, 11:51:14
Hallo Jörg,

Zeitressourcen kann ich einige Investieren und ich mit Linux kenne ich mich ok bis gut aus.
Zum Verständnis: Dein Vorschlag ist die Websocket Protokolle zu installieren und anschließend das Modul websocket:server in den Pfad eintragen? Meinst Du damit in die Linux Variable $PATH?

Viele Grüße
Sina
fast :)

protocol::websocket über CPAN oder CPANM installieren um sicherzustellen das dies funktioniert.
Dann das websocket server modul (ist ja pure perl) einfach irgendwo in den (perl) pfad kopieren. Im Zweifel im fhem modul Dir.

Der Ansatz von Dev0 sieht aber auch gut aus - man muss da in die quellen schauen und debug einbauen. Schau evtl mal ob localhost, loopback etc ok sind. Evtl mal händsich ausführen - dann siehst Du ja was passiert.

Zukünftige Versionen von fronthem werden ohne den websocket server direkt mit protocol::websocket arbeiten - das hilft Dir natürlich heute nichts

vg
joerg

shana

#10
Tausend Dank dev0 und Jörg: Der fehlende loopback adapter war es. Nach dem Einfügen konnte ich fronthem in fhem definieren.  :)