[vz-users] Problem Middleware ??!!

Heiko W. luckyheiko at hotmail.com
Mon Feb 11 12:21:45 CET 2013


Hallo 

erst mal Danke für deine Zeit .. 

ich hoffe ich konnte dir/euch wehm auch immer Helfen .. 

kann man von den Problemen was beheben ?? 

z.B. das das Frontend z.b. beim start nur 1 Std läd ? (wäre für mich z.b. eh viel interesanter) 
oder kann man die php-cgi, das sind doch die die die anfragen bearbeiten .. erhöhen ??



Mit freundlichen Grüßen
Heiko W.


> Date: Mon, 11 Feb 2013 12:18:17 +0100
> From: r00t at constancy.org
> To: volkszaehler-users at lists.volkszaehler.org
> CC: volkszaehler-dev at lists.volkszaehler.org
> Subject: Re: [vz-users] Problem Middleware ??!!
> 
> On Sun, 10 Feb 2013 16:09:27 +0100
> Thorben Thuermer <r00t at constancy.org> wrote:
> > On Sun, 10 Feb 2013 15:18:37 +0100
> > "Heiko W." <luckyheiko at hotmail.com> wrote:
> > > hab ja seit gestern den Zähler nun so am laufen wie ich das gerne hätte .. 
> > > auch die ganze Nacht ohne Probleme geloggt usw .. 
> > > 
> > > nun hab ich heute morgen das 'frontend' aufgerufen .. 
> > > und siehe da, genau ab da, keine Daten mehr geloggt .. 
> > 
> > das scheint dem merkwuerdigen problem aus
> > "[vz-users] frontend tot nach refresh button in IE oder FF"
> > http://volkszaehler.org/pipermail/volkszaehler-users/2013-February/001418.html
> > aehnlich zu sein...
> > vielleicht kommen wir dem hier mal naeher...
> 
> so, wo ich jetzt zugriff auf deinen system habe zeigt sich, dass
> das der arme rechnerchen wohl etwas ueberfordert ist...
> 
> jedesmal wenn die daten eines kanals mit der 4h-standardansicht geladen werden,
> laeuft eine derartige anfrage:
> mysql> SELECT timestamp, value, 1 AS count FROM data WHERE channel_id='28' AND timestamp >= '1360490872286';
> 58523 rows in set (48.83 sec)
> 
> und wenn dann noch das frontend kommt, und die daten deiner _acht_ kanaele
> _gleichzeitig_ laden will, wird's arg langsam...
> ... aber doch irgendwann fertig...
> 
> aber in der zwischenzeit koennen die anfragen von vzlogger nicht
> beantwortet werden, wohl weil die anzahl der php-prozesse auf 4 begrenzt ist,
> und danach beantwortet der webserver die anfragen dann nichtmehr:
> 
> [pid  4113] send(12, "POST /middleware.php/data/04456200-713d-11e2-9b56-234cc60a13ef.json HTTP/1.1\r\nHost: localhost\r\nContent-type: application/json\r\nAccept: application/json\r\nUser-Agent: vzlogger/0.3.3 (libcurl/7.26.0 OpenSSL/1.0.1c zlib/1.2.7 libidn/1.25 libssh2/1.4.1 librtmp/2.3)\r\nContent-Length: 162\r\n\r\n[ [ 1360579446054.120117, -3791.400000 ], [ 1360579447429.320068, -3803.300000 ], [ 1360579448920.097168, -3791.100000 ], [ 1360579450179.183105, -3801.200000 ] ]", 447, MSG_NOSIGNAL) = 447
> [pid  4112] recv(11, "HTTP/1.1 200 OK\r\nX-Powered-By: PHP/5.4.4-12\r\nContent-type: application/json\r\nTransfer-Encoding: chunked\r\nDate: Mon, 11 Feb 2013 10:44:11 GMT\r\nServer: lighttpd/1.4.31\r\n\r\n11\r\n{\"version\":\"0.2\"}\r\n0\r\n\r\n", 16384, 0) = 197
> 
> das war der letzte verarbeitete request...
> 
> [pid  4112] send(11, "POST /middleware.php/data/0e2c3850-713d-11e2-a384-4bda743e342c.json HTTP/1.1\r\nHost: localhost\r\nContent-type: application/json\r\nAccept: application/json\r\nUser-Agent: vzlogger/0.3.3 (libcurl/7.26.0 OpenSSL/1.0.1c zlib/1.2.7 libidn/1.25 libssh2/1.4.1 librtmp/2.3)\r\nContent-Length: 170\r\n\r\n[ [ 1360579446046.865967, 1365814.300000 ], [ 1360579447422.274170, 1365815.800000 ], [ 1360579448914.128174, 1365817.300000 ], [ 1360579450174.973877, 1365818.800000 ] ]", 455, MSG_NOSIGNAL) = 455
> [pid  4107] send(7, "POST /middleware.php/data/ebdae520-713c-11e2-84eb-c1884cb92d66.json HTTP/1.1\r\nHost: localhost\r\nContent-type: application/json\r\nAccept: application/json\r\nUser-Agent: vzlogger/0.3.3 (libcurl/7.26.0 OpenSSL/1.0.1c zlib/1.2.7 libidn/1.25 libssh2/1.4.1 librtmp/2.3)\r\nContent-Length: 42\r\n\r\n[ [ 1360579448026.369141, -2954.700000 ] ]", 326, MSG_NOSIGNAL) = 326
> 
> hier haengt's dann fuer eine weile,
> weil die erlaubten php-prozesse alle mit frontend-requests beschaeftigt
> sind, und auf daten von der datenbank warten...
> 
> [pid  4110] recv(9, "HTTP/1.1 200 OK\r\nX-Powered-By: PHP/5.4.4-12\r\nContent-type: application/json\r\nTransfer-Encoding: chunked\r\nDate: Mon, 11 Feb 2013 10:45:43 GMT\r\nServer: lighttpd/1.4.31\r\n\r\n11\r\n{\"version\":\"0.2\"}\r\n0\r\n\r\n", 16384, 0) = 197
> [pid  4110] write(3, "[Feb 11 11:45:44][ch3]  CURL: HTTP 1.1 or later with persistent connection, pipelining supported\n", 97) = 97
> [pid  4110] send(9, "POST /middleware.php/data/ddfea5f0-713c-11e2-8667-8d4b408bc4f7.json HTTP/1.1\r\nHost: localhost\r\nContent-type: application/json\r\nAccept: application/json\r\nUser-Agent: vzlogger/0.3.3 (libcurl/7.26.0 OpenSSL/1.0.1c zlib/1.2.7 libidn/1.25 libssh2/1.4.1 librtmp/2.3)\r\nContent-Length: 2093\r\nExpect: 100-continue\r\n\r\n", 308, MSG_NOSIGNAL) = 308
> [pid  4110] recv(9, "HTTP/1.1 417 Expectation Failed\r\nContent-Type: text/html\r\nContent-Length: 363\r\nConnection: close\r\nDate: Mon, 11 Feb 2013 10:45:44 GMT\r\nServer: lighttpd/1.4.31\r\n\r\n<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n         \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n <head>\n  <title>417 - Expectation Failed</title>\n </head>\n <body>\n  <h1>417 - Expectation Failed</h1>\n </body>\n</html>\n", 16384, 0) = 525
> 
> und jetzt faengt libcurl aus irgendeinem grund an, mit requests "Expect: 100"
> header zu senden, wohl weil die requests wegen den
> in der "pause" angefallenen daten groesser ausfallen als sonst...
> 
> was lighthttpd dann wohl nicht unterstuetzt...
> das problem ist wohl bekannt:
> http://www.google.com/search?q=lighthttpd+expect+header
> http://redmine.lighttpd.net/issues/1017
> 
> als WORKAROUND habe ich mal in vzlogger code eingebaut,
> der curl die verwendung von Expect: verbietet:
> http://curl.haxx.se/libcurl/c/curl_easy_setopt.html
> 
> root at raspberrypi:~/vzlogger# git diff src/api.c
> diff --git a/src/api.c b/src/api.c
> index 9515e49..2ac0055 100644
> --- a/src/api.c
> +++ b/src/api.c
> @@ -119,6 +119,9 @@ int api_init(channel_t *ch, api_handle_t *api) {
>         api->headers = curl_slist_append(api->headers, "Accept: application/json");
>         api->headers = curl_slist_append(api->headers, agent);
>  
> +       // WORKAROUND for lighthttp not supporting Expect: properly
> +       api->headers = curl_slist_append(api->headers, "Expect: ");
> +
>         api->curl = curl_easy_init();
>         if (!api->curl) {
>                 return EXIT_FAILURE;
> 
> 
> damit funktioniert vzlogger dann nach der durch den frontend-reload verursachten
> zwangspause anstandslos weiter.
> 
> - Thorben
> 
> 
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://volkszaehler.org/pipermail/volkszaehler-users/attachments/20130211/8bbd2df1/attachment.html>


More information about the volkszaehler-users mailing list