Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » Merkwürdiges CGI Problem

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
23.05.2008, 10:57 Uhr
soUrcerer



Hallo werte Community,

ich habe ein merkwürdiges Problem mit einem unserer CGI Webservices, bin am Ende meiner Ideen angelangt und brauche dringend eure Hilfe.

Es ist in C geschrieben und lief eigentlich wunderbar. Bei uns in der Firmenumgebung läuft es nach wie vor, jedoch beim Kunden gibt es einen Fehler 500: Premature End Of Script headers.

Nun habe ich schon zwei Tage mit der Problemlösung verbracht und viel danach gegoogled und alls mögliche probiert, jedoch treibt mich der Fehler in den Wahnsinn.

Zunächst konnte ich den Fehler bei uns nicht einmal reproduzieren. Irgenwann habe ich dann mit provuzierten Fehlerausgaben (perror) und filedescriptoren (STDERR_FILENO) herumgespielt (geschlossen, umgeleitet, etc.), worauf hin ich auch irgenwann diesen 500er vom Server quittiert bekam.

Toll dachte ich, da hab ich die Lösung. Doch nach rekonstruktion des alten Quellcode und neuem kompilieren lief auch diese Binary (und auch andere definitv früher lauffähige Kompilate) nichtmehr; mit dem selben Fehler.

Dann habe ich weiter mit den Filedescriptoren herumgespiet und irgendwann, lief der Service dann bei uns wieder. Die Binarys hab ich zum Kunden geschickt, aber sie laufen dort auch nicht. Sogar der Code in der ursprünglichen Form (der anfangs lief, dann irgendwann nichtmehr) läuft jetzt wieder.


Ich kann mir nicht erklären, was da die Ursache ist... Frust.

Wie kann es sein, dass ein und der selbe Code mal läuft und mal nicht? Und warum läuft er hier vor Ort, aber beim Kunden nicht (selbe Zielplattform: Solaris 10)?

Server und Dienste habe ich mehrfach restartet (der Kunde auch).

Der Fehler deutet ja darauf hin, dass vor der Ausgabe der HTTP Header, irgendwas anderes ausgegeben wird. Aber was???

Ich habe den Service testweise mal auf ein Minimum reduziert:

Code:
int main (int argc, char **argv)
{
    printf("Content-Type: text/html\n\n");
    printf("test");
    return 0;
}



Auch dieses Codeschnippselchen lief dann nichtmehr. Nach Spielerei mit den Filedescriptoren, bekam ich es aber wieder zum laufen.

Kann es irgendwas mit Ausgaben zu tun haben, die in irgend einem Puffer hängengeblieben sind? Aber welche Puffer ist nach einem Reboot des Servers noch immer gefüllt?!

Habt ihr eine Idee? Eine Info, wie man sowas debuggen kann, wäre auch schon hilfreich.

Noch ein paar Infos zur Platform:

Solaris 10
Apache 2.0.59
Compiler gcc 3.4.6

Für eure Antworten bedanke ich mich jetzt schon

viele Grüsse
Michael
--
red-cat networks
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.05.2008, 14:15 Uhr
Pablo
Supertux
(Operator)


Probiere es mal so


C++:
printf("Content-Type: text/html\r\n\r\n");



Gruss
Pablo
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
23.05.2008, 14:25 Uhr
soUrcerer




Zitat von soUrcerer:

Ich dieses Codeschnippselchen lief dann nichtmehr. Nach Spielerei mit den Filedescriptoren, bekam ich es aber wieder zum laufen.


Danke für die Antwort Pablo, aber daran liegt es leider nicht.
--
red-cat networks
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
23.05.2008, 15:10 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi,
habt ihr oder die suexec aktiviert? evtl meldet der einen fehler weil irgendwelche rechte nicht stimmen.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
23.05.2008, 15:24 Uhr
soUrcerer



hi,

wir haben suexec nicht aktiv, der kunde ... weiss ich nicht.

aber der admin ist ganz fit und hat auch schon viel probiert.

Ausserdem standen rechteprobleme bisher immer in den logfiles. Aber ich werd den kunden nochmal darauf ansprechen.

Danke.

BTW: coole sig
--
red-cat networks
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.05.2008, 18:30 Uhr
soUrcerer



Hallo leute,

es läuft wieder!

Ich vermute den Erfolg hat das Abschalten der Pufferung mittels setvbuf gebracht, ganz sicher bin ich aber erst, wenn ich nochmal mit dem Admin gesprochen habe.

Es könnte auch ein ganz banaler Konfigurationsfehler vorgelegen haben. Ich tippe aber eher auf den Puffer.


Danke für eure Anteilnahme,

viele Grüsse

Michael
--
red-cat networks
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: