Hi Massimo, I upgraded to the last trunk revision and the problem persist. I conduced more test and I think the problem is located in rocket, in wireshark it behaves differently from the other webservers.
Please let me know if I have to send you pcaps or other informations.. Thank you! 2011/8/18 Massimo Di Pierro <massimo.dipie...@gmail.com>: > in trunk we upgraded to the latest rocket is the problem with the > previous or the current version? > > On Aug 18, 7:39 am, Angelo Compagnucci <angelo.compagnu...@gmail.com> > wrote: >> Hi Michele, >> >> I think tihis is a rocket problem. The size of the packet (only http >> part) is about 400 bytes according to wireshark. >> The micro http library in debug prints excactly the size of the http >> part and with web2py the count is equal to the http headers without >> the data part. >> >> If I try to GET google, I obtain a packet that the micro reads well, >> than it truncates the http to the maximum size it can handle, circa >> 950 bytes. >> And it works in such a way for every site I try. I tested it with an >> apache static page, the page is read well and if it doesn't fill the >> buffer I can manipulate the content without troubles. >> >> The rocket webserver is the one that doesn't work. >> >> I don't know hot to explain bettere the problem, if it could help, I >> can send wireshark pcaps. >> >> Thank you! >> >> 2011/8/18 Michele Comitini <michele.comit...@gmail.com>: >> >> >> >> >> >> >> >> > btw you can deploy web2py with many web servers without using rocket. >> > you can use any server that supports one among wsgi, uwsgi, scgi, fcgi >> > and other old stuff like mod_python or cgi, you can check >> > if with one of those configurations you solve the problem. >> >> > mic >> >> > 2011/8/18 Michele Comitini <michele.comit...@gmail.com>: >> >> Ciao Angelo, >> >> >> What size in bytes the packet has? >> >> >> Is MTU/MRU of your server correctly configured for that packet size? >> >> >> Consider that HTTP headers may well be big enough to break things in a >> >> small packet. >> >> >> ciao, >> >> mic >> >> >> 2011/8/18 Angelo Compagnucci <angelo.compagnu...@gmail.com>: >> >>> Hi list, >> >> >>> I'm using web2py for a microcontroller project and I'm facing a really >> >>> strange problem. >> >> >>> This microcontroller (a modified arduino with an enc28j60) can accept >> >>> only one tcp packet a time, because the packet fills the ram and so it >> >>> freezes the micro. >> >>> The pages it can process are to be small and fit in one packet. For a >> >>> microcontroller project, a single packet is sufficient for most use >> >>> cases. >> >> >>> I have an http library that I tested towards an example hosted by the >> >>> jqplot project (http://www.jqplot.com/tests/jsondata.txt) and it works >> >>> well, I can read the data and I can manipulate the json object. >> >> >>> I also observed with wireshark that only a single packet is issued in >> >>> reply to my get. There is something like this: >> >> >>> GET -> ACK -> HTTP 200 OK >> >> >>> I procedeed further writing a small controller (the count one found on >> >>> the book) to test the micro with web2py. Boom, it doesn't work! >> >> >>> I can read only the header of the packet. Further investigation with >> >>> wireshark lead me to think that the rocket webserver fragments the >> >>> response in a way that I can get only the first packet (containing the >> >>> header) and not the second one containg the data (as expected by the >> >>> micro limitations). >> >>> In wireshark I have something like this: >> >> >>> GET -> ACK -> TCP segment of a reassembled PDU -> HTTP 200 OK >> >> >>> The packet "TCP segment of a reassembled PDU" which comes first, >> >>> actually contains only the headers, instead the http 200 one contains >> >>> the complete packet. >> >> >>> To confirm this, I tested the micro with other webservers (apache, >> >>> IIS, tomcat) and noone shows the undesired behaviour. >> >> >>> Can you give me an hint? >> >> >>> Thank you!