StreamtranscoderV3: „Broke out of source inner loop“

Status
Für weitere Antworten geschlossen.

Inselkobi

Benutzer
o.g. Meldung zeigt mir das Logfile des StreamtranscoderV3 nach einem Disconnect an.
Hat jemand eine Idee, wie sich der Fehler beheben lässt?

Hier der genaue Logfile-Auszug:
Code:
02/17/12 05:10:47 Info(streamTranscoderv3.cpp:44): Metadata Updated: DaleI & Grace - I m Leaving It Up To You
02/17/12 05:13:56 Debug(sourcethread.cpp:380): Source CBuffer: 327680
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:380): Source CBuffer: 294912
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:380): Source CBuffer: 327680
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:380): Source CBuffer: 294912
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:380): Source CBuffer: 262144
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:380): Source CBuffer: 229376
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:380): Source CBuffer: 196608
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:13:56 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:13:56 Info(streamTranscoderv3.cpp:57): Source : Disconnected from source socket...
02/17/12 05:13:56 Debug(sourcethread.cpp:399): Broke out of source inner loop.
02/17/12 05:13:56 Info(streamTranscoderv3.cpp:57): Source : Disconnected
02/17/12 05:13:56 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 10 seconds
02/17/12 05:13:57 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 9 seconds
02/17/12 05:13:58 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 8 seconds
02/17/12 05:13:59 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 7 seconds
02/17/12 05:14:00 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 6 seconds
02/17/12 05:14:01 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 5 seconds
02/17/12 05:14:02 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 4 seconds
02/17/12 05:14:03 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 3 seconds
02/17/12 05:14:04 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 2 seconds
02/17/12 05:14:05 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 1 seconds
02/17/12 05:14:06 Debug(sourcethread.cpp:270): Connecting source thread
02/17/12 05:14:06 Info(streamTranscoderv3.cpp:57): Source : autoplay
02/17/12 05:14:06 Info(streamTranscoderv3.cpp:57): Source : Shoutcast
02/17/12 05:14:06 Info(streamTranscoderv3.cpp:57): Source : MP3
02/17/12 05:14:06 Info(streamTranscoderv3.cpp:57): Source : Connected
02/17/12 05:14:06 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:14:06 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:14:06 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:14:06 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:14:06 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:14:06 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:14:06 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:14:06 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:14:06 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:14:06 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:14:06 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:14:06 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:14:06 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:14:06 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:14:06 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:14:06 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:14:06 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:14:06 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:14:06 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:14:06 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:14:06 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:14:06 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:14:06 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:14:06 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:14:06 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:14:06 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:14:06 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:14:06 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:14:06 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:14:06 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:14:06 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:14:06 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:14:06 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:14:06 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:14:06 Debug(sourcethread.cpp:85): Metadata Triggered (StreamTitle='Roxette - Spending my Time';StreamUrl='http://
[...]
02/17/12 05:20:14 Debug(sourcethread.cpp:380): Source CBuffer: 210220
02/17/12 05:20:14 Debug(sourcethread.cpp:66): Metadata CBuffer: 131072
02/17/12 05:20:14 Debug(sourcethread.cpp:71): Processing Interleaved Metadata, MetaInt = 32768
02/17/12 05:20:14 Info(streamTranscoderv3.cpp:57): Source : Disconnected from source socket...
02/17/12 05:20:14 Debug(sourcethread.cpp:399): Broke out of source inner loop.
02/17/12 05:20:14 Info(streamTranscoderv3.cpp:57): Source : Disconnected
02/17/12 05:20:14 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 10 seconds
02/17/12 05:20:15 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 9 seconds
02/17/12 05:20:16 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 8 seconds
02/17/12 05:20:17 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 7 seconds
02/17/12 05:20:18 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 6 seconds
02/17/12 05:20:19 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 5 seconds
02/17/12 05:20:20 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 4 seconds
02/17/12 05:20:21 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 3 seconds
02/17/12 05:20:22 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 2 seconds
02/17/12 05:20:23 Info(streamTranscoderv3.cpp:57): Source : Source reconnect in 1 seconds
02/17/12 05:20:24 Debug(sourcethread.cpp:270): Connecting source thread
02/17/12 05:20:24 Info(streamTranscoderv3.cpp:57): Source : autoplay
02/17/12 05:20:24 Info(streamTranscoderv3.cpp:57): Source : Shoutcast
02/17/12 05:20:24 Info(streamTranscoderv3.cpp:57): Source : MP3
02/17/12 05:20:24 Info(streamTranscoderv3.cpp:57): Source : Connected
Und immer so weiter ..
 
Hi, Inselkobi,

möglicherweise ein Bug? Ich habe zuwenig Information, um das abschlüssig beurteilen zu können, aber ich habe im Netz den Quellcode der Datei sourcethread.cpp gefunden - da die Zeilennummern im Logfile mit denen in der Quellcode-Datei übereinstimmen, ist die Wahrscheinlichkeit hoch, daß dies die Quellcodedatei ist, aus der die ausführbare Datei, das Deine Logfiles erzeugt, übersetzt wurde. Wenn das tatsächlich so ist, dann schlägt der Fehler vermutlich an dieser Programmstelle (ab Zeile 347 im Quellcode) zu:

Code:
read = recv(client_socket, buf, sizeof(buf), 0);
if (sourceInnerLoop == 0) {
        break;
}
if (read <= 0) {
        outputStatusCallback(&gMain, (void *)"Disconnected from source socket...");
        sourceInnerLoop = 0;
}
if (read == 0) {
#ifdef WIN32
        Sleep(100);
#else
        usleep(1000);
#endif
}
else {
// ... actually process buffer data
}

Der Dreh- und Angelpunkt ist hier der System Call recv(2), der ganz oben in dem Codeausschnitt aufgerufen wird. Posix System Calls liefern grundsätzlich -1 als Fehlermeldung zurück (mit Hilfe des Library Calls errno(3) (Last Error Number) könnte man den zugrunde liegenden Fehler ermitteln) - so steht es auch in der manpage von recv(2). "0" wäre hier ein Signal, daß die Gegenseite die Verbindung getrennt hat ("orderly shutdown"), jeder andere positive Wert zeigt die Länge der gelesenen Daten an. Negative Werte < -1 dürften eigentlich nicht vorkommen und wären vermutlich ein Bug im Kernel... der ordentliche Programmierer prüft das trotzdem ab :p ;)

Die Markierung "Disconnected from source socket..." im Logfile deutet darauf hin, daß "read", der Return Code von recv(2), kleiner oder gleich Null ist. Wir wissen also nicht, ob ein "orderly shutdown" (0), ein regulärer Fehler von recv(2) oder eines darunterliegenden Moduls (-1) oder gar ein Implemetierungsbug in oder unterhalb recv(2) (<-1) die Ursache ist. Sinnvoll wäre, an dieser Stelle die Fehlerbehandlung noch zu verfeinern, dann könnte man mehr sagen (es wäre vielleicht auch sinnvoll, in der Abfrage "if (read == 0)" noch eine Debug-Ausgabe einzuführen, dann könnte man die Fehlerquelle zumindest schon einmal darauf eingrenzen, ob recv(2) "<0" oder "=0" zurückgeliefert hat...

Randbemerkung: was mich an dem Codeschnippsel stutzig macht, ist, daß sourceInnerLoop auf "0" geprüft wird, *nachdem* der System Call recv(2) aufgerufen wird - der SystemCall wird die Variable "sourceInnerLoop" nicht verändern und ich bin der Ansicht, daß, *wenn* diese Variable sowieso schon "0" ist, dann muß man den System Call auch gar nicht mehr absetzen - allein schon um zu verhindern, daß der System Call versehentlich mit falschen Parametern aufgerufen wird. sourceInnerLoop=0 wird verwendet, um einen Fehlerzustand in der inneren Schleife zu markieren. Das sorgt letztlich dafür, daß die innere Schleife beendet wird und der Logdatei-Eintrag "Broke out of source inner loop" geschrieben wird; der Code *vor* Zeile 347 läßt auf diese Art Verwendung schließen.

Hoffe, das hilft ein bißchen weiter,

LG

McCavity
 
Hallo McCavity,

danke für Deine Tipps. Sie halfen in der Tat ein Stückchen weiter.

Der Loop überprüft, ob der Streamtranscoder tatsächlich einen Stream erstellen kann - wenn nicht - wird generell komplett disconnected. Dabei ist es egal ob eine Source oder ein zweiter (dritter, etc.) Server vorhanden sind auf die gestreamt werden soll.

In obigem Fall war das Problem, dass der Serverbetreiber des zweiten Servers die iptables so verändert hat, dass der erste Server ausgesperrt wurde. Lediglich einige fragmentierte Pakete sind noch zu dem Shoutcast durchgedrungen.
Sinn der Übung sollte wohl gewesen sein, sie so zu verändern, dass der Source-Port (zweiter Server) innert eines vorgegebenen Rahmens egal gewesen wäre, der Listener-Port aber generell Port 80.

Was mich stutzig machte ist, dass als Fehlermeldung "Broke out of source inner loop." kam, anstelle von "No Route to host".
Diese Fehlermeldung brachte der Transcoder mir, als ich einen Stream auf einen sc_serv einrichtete und selbigen dann killte, ebenfalls mit neuen Connect-Versuchen, wobei der zweite, darauf eingerichtete Stream beständig blieb.

Hast Du dafür vielleicht ebenfalls noch eine Idee? ;)

LG

Inselkobi
 
Hi, Inselkobi,

Du kannst Fragen stellen... ich tue mich im Moment etwas schwer zu verstehen, was passiert - ich habe vor allem auch keine Umgebung, auf der ich das Verhalten nachstellen könnte. iptables ist doch eine Firewall, oder? Heißt das, das Server1 bei einem anderen Betreiber steht als Server 2?

Wie soll denn das Konstrukt genau aussehen, d.h. von wo soll ein Signal / Stream über welche Zwischenstationen wo hin transportiert werden? Das wurde mir aus der Beschreibung noch nicht ganz klar...

LG

McCavity
 
Hallo McCavity,

ganz genau!

Server1 steht bei Hoster A,
Server2 steht bei Hoster B.

Nun sollte der Stream von Server1 (Icecast) per Streamtranscoder auf Server2 (Shoutcast) transportiert werden.

Einfach umschrieben sind die iptables eine Firewall für Linux, ja.

VG, Inselkobi
 
Hi, Inselkobi,

gut, langsam sehe ich klarer - was mir noch unklar ist, ist der genau Signalfluß. Meine Vermutung sähe wie folgt aus:

Quelle (Sendestudio / Auto-DJ / ...) -> Icecast Server1 <- Streamtranscoder Server2 -> Shoutcast Server2

Ist das richtig so? Auf Server1 läuft nur der Icecast Server (den vermutlich ein Teil der Hörer direkt verwendet), der Streamtranscoder verbindet sich von Server2 quasi ebefalls als "Hörer" mit Icecast auf Server1 und "befüttert" dann den Shoutcast auf Server2 mit dem konvertierten Stream? Oder läuft der Streamtranscoder auf Server1? Kann eigentlich nicht sein, da der Abbruch auf der Empfangsseite stattfindet, oder?

Wie dem auch sei - im Prinzip müßte man wiessen, welche Ports für die Übertragung tatsächlich verwendet werden, ob und wie das mit den Einstellungen von iptables kollidiert - wenn iptables ausgeschaltet ist, funktioniert es dann porblemlos?

LG

McCavity
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben