Re: [Cppcms-users] Strange bug on reading files to response().out()
Brought to you by:
artyom-beilis
From: Artyom <art...@ya...> - 2010-10-23 14:30:45
|
Hello, this should be fixed in changeset 1486 Please take the version from trunk. (The segfault should be fixed as well) Artyom ----- Original Message ---- > From: Julian Pietron <ju...@wh...> > To: cpp...@li... > Sent: Wed, October 20, 2010 9:36:11 PM > Subject: [Cppcms-users] Strange bug on reading files to response().out() > > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hallo, > > for testing purposes I implemented a (very) basic static file server. > This server works very well on 64bit-architectures, but on 32bit > architectures larger files are only sent incompletely to the client and > the thread the request had been assigned to is blocked. > > This is the code I use for reading file to out: > > void StaticFileServer::static(std::string path) { > > /* Some checks to get real path and check whether path is in a > specified webroot etc.*/ > /* ... */ > > std::ifstream ifile(path.c_str()); > if(ifile.good()) { > response().out() << ifile.rdbuf(); > } > std::cout << "Static serving completed." << std::endl; // This one is > shown, so this method completes successfully > } > > On 64bit, this code will read the file specified by path to the browser > that requests it, as it seems without matters of size (or perhaps I did > not try to send a file which was large enough), on 32bit and with larger > files, like e.g. the jquery.js of the jQuery library, it sents only part > of the file (file is interrupted abruptly) and closes connection, but > the thread still keeps blocked by the request (testing with > worker_threads set to 1, no further requests are possible, I think > because there are no threads left which are not busy). Termination with > SIGINT is not possible, the server application has to be killed by > SIGKILL. valgrind shows no significant errors. > Sending out ad-hoc generated HTML of any length (at least, of quite big > sizes) works without problems. > The cppcms::application subclass is mounted with a factory as > synchronous application. > I'm sorry that I can't provide you with more information because I > simply don't know what other helpful information I could get beside the > valgrind outputs which show no errors related to this problem. Of course > I will provide more information on your request. > > Thanks for your help, > Julian > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2.0.16 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > iQIcBAEBAgAGBQJMv0SrAAoJENidYKvYQHlQPF0QAJ1VlHxyBzio/FW46bq+xe1F > 5/PliULKo9Wie3WhdS5F322HGmqY5G0ZemjoD61Xe+HBxf0C04TD0gT12vh7mN9Z > gaqV31T/Q4QjreVles3SwetT4Oc577w07p3rUekHr05eMhV6dSDwyphY/BEAgbzd > q811E1P8r2vaTRdfns7HDRq8lXw5Jf/fN2qwALUG02UUV7vHyGNZtMsHv8JostG2 > EuamIzZpVxrZf1hJPW1HiLRMsG1fTKbyqxYoMMXFhSYN/v7rlb9zOhgpJWBAFlBw > uodrLzKkKDL8M7OxpzujYFitOfvfjs73cJxl2W3goRs/FfEwdWPiSlxlhPGl0ejQ > u29C/DgyF+tcm25iuPdZndLpKPlIw4W65Oey6j6nxI/oSwu+w6XWssPHsPIGUhiz > Ga7dxEjVrwf2qwDRgm+Tln3zjslEde9GcLnoZ7BcwNZen5e1iXHuOljRviKXUwyb > MTxwCHksnd0y8uo47VrDfVkab3l3h0AxkBV0ZlzGcYjLB1iD9XNJxztjVpswQ5Mr > D0dXmPWWKp2c0fzCUXZZ9qewvU1huwb+Tm/A2FGG/vYjPzH2jfp6UNBZlq7VrQvy > /YCvcFt438WQVpQgTf7Wwoh691YraRwHuFbgB1d+YlLcYMykp0pVaHHGTjOaiWRQ > oxGvgyFerP0SIXM/pABL > =Sbkl > -----END PGP SIGNATURE----- > > ------------------------------------------------------------------------------ > Nokia and AT&T present the 2010 Calling All Innovators-North America contest > Create new apps & games for the Nokia N8 for consumers in U.S. and Canada > $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing > Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store > http://p.sf.net/sfu/nokia-dev2dev > _______________________________________________ > Cppcms-users mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppcms-users > |