Re: HEAD request and internal server error

2008-09-17 Thread Petr Kobalíček
Hi Graham,

This looks like a workaround, but in the core I§m talking about
exception when I also return . I don't understand why I can't react
to HEAD request, because exception will be raised in all cases (no
care if I return something or not).

So the middleware is now best way, but it's hack and I not understand
what exactly I should do here. Where is the point ? I'm voting for
problem in pylons that should be corrected.

I will look at it tonight, but if I need to write my own middleware to
create normal searchable web then it seems me that pylons is hacky
framework:(

Thanks for help:)
Petr

2008/9/17 Graham Dumpleton [EMAIL PROTECTED]:



 On Sep 17, 10:59 am, Petr Kobalíček [EMAIL PROTECTED]
 wrote:
 Hi Wyatt,

 my biggest problem with this is that HEAD requests are used by bots,
 so the pylons pages are not indexable at all. This is big problem for
 me and I don't know how to solve this, because we are creating
 ecommerce software using pylons, sqlalchemy and qooxdoo for
 administration. I'm using pylons also for my web and here I found the
 problem:-(

 So, any ideas ;-) ?

 A workaround is to wrap your WSGI application in a middleware which
 changes REQUEST_METHOD from HEAD to GET and which discards the
 iterable returned from the application. The middleware should ensure
 it still calls close() on the iterable properly though as per WSGI
 specification requirements.

 Alternatively, you could make it work by hosting with Apache/mod_wsgi
 and configuring Apache to enable Apache CONTENT_LENGTH output filter
 for the application. This will work as when an Apache output filter is
 configured, mod_wsgi will convert a HEAD request to a GET request
 before passing it to the WSGI application. This is done so that actual
 response content can be passed back to the Apache output filter, which
 may want to adjust response headers based on the content. Apache will
 discard any response content after any output filters are done with it
 and will not send it back to the client.

 If this isn't done with Apache/mod_wsgi, the HEAD and GET requests may
 not yield the same response headers. The CONTENT_LENGTH output filter
 is chosen here purely because it is pretty benign, any Apache output
 filter would have been enough to trigger this behaviour.

 Graham

 Cheers
 - Petr

 2008/9/17 Wyatt Baldwin [EMAIL PROTECTED]:



  On Sep 16, 3:18 pm, Petr Kobalíček [EMAIL PROTECTED] wrote:
  So it's related to this 
  ticked:http://pylonshq.com/project/pylonshq/ticket/507

  I can't solve this bug myself, can anybody help me ? (I'm now using
  pylons from mercurial, but without success)

  Cheers
  - Petr

  2008/9/16 Petr Kobalíček [EMAIL PROTECTED]:

   So,

   this is pylons bug !

   I tried to create plain application and to add hello controller
   (that's in documentation).

   The i tried this script:

   import httplib

   req = httplib.HTTPConnection(localhost:5000)
   req.request(HEAD, /hello/index)
   res = req.getresponse()

   print res.status, res.reason

   Ad I got internal server error

   Exception: No content returned by controller (Did you remember to
   'return' it?) in: 'HelloController'

   So, what to do, is there any solution ?

   Cheers
   - Petr

   2008/9/16 Petr Kobalíček [EMAIL PROTECTED]:
   Hi devs,

   I have problem with HEAD requests that causes me Internal server error.

   The error exception:

   Exception happened during processing of request from ('127.0.0.1', 
   4948)
   Traceback (most recent call last):
File c:\program 
   files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
   httpserver.py, line 1056, in process_request_in_thread
  self.finish_request(request, client_address)
File C:\PROGRA~1\Python25\lib\SocketServer.py, line 254, in 
   finish_request
  self.RequestHandlerClass(request, client_address, self)
File C:\PROGRA~1\Python25\lib\SocketServer.py, line 521, in __init__
  self.handle()
File c:\program 
   files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
   httpserver.py, line 432, in handle
  BaseHTTPRequestHandler.handle(self)
File C:\PROGRA~1\Python25\lib\BaseHTTPServer.py, line 316, in handle
  self.handle_one_request()
File c:\program 
   files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
   httpserver.py, line 427, in handle_one_request
  self.wsgi_execute()
File c:\program 
   files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
   httpserver.py, line 287, in wsgi_execute
  self.wsgi_start_response)
File c:\program 
   files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
   gzipper.py, line 35, in __call__
  return self.application(environ, start_response)
File c:\program 
   files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
   registry.py, line 350, in __call__
  app_iter = self.application(environ, start_response)
File c:\program 
   files\python25\lib\site-packages\Beaker-1.0.1-py2.5.egg\beake
   r\middleware.py, line 

Re: HEAD request and internal server error

2008-09-17 Thread Petr Kobalíček
Thank you Philip, it's now working !

Best regards
- Petr

2008/9/17 Philip Jenvey [EMAIL PROTECTED]:


 On Sep 16, 2008, at 1:57 AM, Petr Kobalíček wrote:


 Note, I read every document on internet related to pylons and HEAD,
 but I think problem is in pylons itself. I tried simple test like
 this:

 class PagePublicController(base.BaseController):
def index_ROOT(self):
return 

 or

 class PagePublicController(base.BaseController):
def index_ROOT(self):
return []

 and this produces internal server error too.

 here is some interesting stuff, but not solves my problem:
 http://pylonshq.com/pasties/922

 So my question is, it's a bug or I'm doing something wrong ?

 This is now fixed in mercurial tip. Thanks for pointing it out as we
 missed tagging that ticket for the 0.9.7 release, and this was a
 critical issue.

 --
 Philip Jenvey



 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: HEAD request and internal server error

2008-09-16 Thread Petr Kobalíček
So,

this is pylons bug !

I tried to create plain application and to add hello controller
(that's in documentation).

The i tried this script:

import httplib

req = httplib.HTTPConnection(localhost:5000)
req.request(HEAD, /hello/index)
res = req.getresponse()

print res.status, res.reason

Ad I got internal server error

Exception: No content returned by controller (Did you remember to
'return' it?) in: 'HelloController'

So, what to do, is there any solution ?

Cheers
- Petr

2008/9/16 Petr Kobalíček [EMAIL PROTECTED]:
 Hi devs,

 I have problem with HEAD requests that causes me Internal server error.

 The error exception:

 Exception happened during processing of request from ('127.0.0.1', 4948)
 Traceback (most recent call last):
  File c:\program 
 files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
 httpserver.py, line 1056, in process_request_in_thread
self.finish_request(request, client_address)
  File C:\PROGRA~1\Python25\lib\SocketServer.py, line 254, in finish_request
self.RequestHandlerClass(request, client_address, self)
  File C:\PROGRA~1\Python25\lib\SocketServer.py, line 521, in __init__
self.handle()
  File c:\program 
 files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
 httpserver.py, line 432, in handle
BaseHTTPRequestHandler.handle(self)
  File C:\PROGRA~1\Python25\lib\BaseHTTPServer.py, line 316, in handle
self.handle_one_request()
  File c:\program 
 files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
 httpserver.py, line 427, in handle_one_request
self.wsgi_execute()
  File c:\program 
 files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
 httpserver.py, line 287, in wsgi_execute
self.wsgi_start_response)
  File c:\program 
 files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
 gzipper.py, line 35, in __call__
return self.application(environ, start_response)
  File c:\program 
 files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
 registry.py, line 350, in __call__
app_iter = self.application(environ, start_response)
  File c:\program 
 files\python25\lib\site-packages\Beaker-1.0.1-py2.5.egg\beake
 r\middleware.py, line 74, in __call__
return self.app(environ, start_response)
  File c:\program 
 files\python25\lib\site-packages\Beaker-1.0.1-py2.5.egg\beake
 r\middleware.py, line 147, in __call__
return self.wrap_app(environ, session_start_response)
  File c:\program 
 files\python25\lib\site-packages\Routes-1.9.2-py2.5.egg\route
 s\middleware.py, line 100, in __call__
response = self.app(environ, start_response)
  File c:\my\python\pylons\pylons\wsgiapp.py, line 112, in __call__
to 'return' it?) in: %r % controller.__name__)
 Exception: No content returned by controller (Did you remember to 'return' 
 it?)
 in: 'PagePublicController'

 Note, I read every document on internet related to pylons and HEAD,
 but I think problem is in pylons itself. I tried simple test like
 this:

 class PagePublicController(base.BaseController):
def index_ROOT(self):
return 

 or

 class PagePublicController(base.BaseController):
def index_ROOT(self):
return []

 and this produces internal server error too.

 here is some interesting stuff, but not solves my problem:
 http://pylonshq.com/pasties/922

 So my question is, it's a bug or I'm doing something wrong ?

 Cheers
 - Petr


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: HEAD request and internal server error

2008-09-16 Thread Petr Kobalíček
So it's related to this ticked: http://pylonshq.com/project/pylonshq/ticket/507

I can't solve this bug myself, can anybody help me ? (I'm now using
pylons from mercurial, but without success)

Cheers
- Petr

2008/9/16 Petr Kobalíček [EMAIL PROTECTED]:
 So,

 this is pylons bug !

 I tried to create plain application and to add hello controller
 (that's in documentation).

 The i tried this script:

 import httplib

 req = httplib.HTTPConnection(localhost:5000)
 req.request(HEAD, /hello/index)
 res = req.getresponse()

 print res.status, res.reason

 Ad I got internal server error

 Exception: No content returned by controller (Did you remember to
 'return' it?) in: 'HelloController'

 So, what to do, is there any solution ?

 Cheers
 - Petr

 2008/9/16 Petr Kobalíček [EMAIL PROTECTED]:
 Hi devs,

 I have problem with HEAD requests that causes me Internal server error.

 The error exception:

 Exception happened during processing of request from ('127.0.0.1', 4948)
 Traceback (most recent call last):
  File c:\program 
 files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
 httpserver.py, line 1056, in process_request_in_thread
self.finish_request(request, client_address)
  File C:\PROGRA~1\Python25\lib\SocketServer.py, line 254, in finish_request
self.RequestHandlerClass(request, client_address, self)
  File C:\PROGRA~1\Python25\lib\SocketServer.py, line 521, in __init__
self.handle()
  File c:\program 
 files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
 httpserver.py, line 432, in handle
BaseHTTPRequestHandler.handle(self)
  File C:\PROGRA~1\Python25\lib\BaseHTTPServer.py, line 316, in handle
self.handle_one_request()
  File c:\program 
 files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
 httpserver.py, line 427, in handle_one_request
self.wsgi_execute()
  File c:\program 
 files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
 httpserver.py, line 287, in wsgi_execute
self.wsgi_start_response)
  File c:\program 
 files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
 gzipper.py, line 35, in __call__
return self.application(environ, start_response)
  File c:\program 
 files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
 registry.py, line 350, in __call__
app_iter = self.application(environ, start_response)
  File c:\program 
 files\python25\lib\site-packages\Beaker-1.0.1-py2.5.egg\beake
 r\middleware.py, line 74, in __call__
return self.app(environ, start_response)
  File c:\program 
 files\python25\lib\site-packages\Beaker-1.0.1-py2.5.egg\beake
 r\middleware.py, line 147, in __call__
return self.wrap_app(environ, session_start_response)
  File c:\program 
 files\python25\lib\site-packages\Routes-1.9.2-py2.5.egg\route
 s\middleware.py, line 100, in __call__
response = self.app(environ, start_response)
  File c:\my\python\pylons\pylons\wsgiapp.py, line 112, in __call__
to 'return' it?) in: %r % controller.__name__)
 Exception: No content returned by controller (Did you remember to 'return' 
 it?)
 in: 'PagePublicController'

 Note, I read every document on internet related to pylons and HEAD,
 but I think problem is in pylons itself. I tried simple test like
 this:

 class PagePublicController(base.BaseController):
def index_ROOT(self):
return 

 or

 class PagePublicController(base.BaseController):
def index_ROOT(self):
return []

 and this produces internal server error too.

 here is some interesting stuff, but not solves my problem:
 http://pylonshq.com/pasties/922

 So my question is, it's a bug or I'm doing something wrong ?

 Cheers
 - Petr



--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: HEAD request and internal server error

2008-09-16 Thread Wyatt Baldwin

On Sep 16, 3:18 pm, Petr Kobalíček [EMAIL PROTECTED] wrote:
 So it's related to this ticked:http://pylonshq.com/project/pylonshq/ticket/507

 I can't solve this bug myself, can anybody help me ? (I'm now using
 pylons from mercurial, but without success)

 Cheers
 - Petr

 2008/9/16 Petr Kobalíček [EMAIL PROTECTED]:

  So,

  this is pylons bug !

  I tried to create plain application and to add hello controller
  (that's in documentation).

  The i tried this script:

  import httplib

  req = httplib.HTTPConnection(localhost:5000)
  req.request(HEAD, /hello/index)
  res = req.getresponse()

  print res.status, res.reason

  Ad I got internal server error

  Exception: No content returned by controller (Did you remember to
  'return' it?) in: 'HelloController'

  So, what to do, is there any solution ?

  Cheers
  - Petr

  2008/9/16 Petr Kobalíček [EMAIL PROTECTED]:
  Hi devs,

  I have problem with HEAD requests that causes me Internal server error.

  The error exception:

  Exception happened during processing of request from ('127.0.0.1', 4948)
  Traceback (most recent call last):
   File c:\program 
  files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
  httpserver.py, line 1056, in process_request_in_thread
     self.finish_request(request, client_address)
   File C:\PROGRA~1\Python25\lib\SocketServer.py, line 254, in 
  finish_request
     self.RequestHandlerClass(request, client_address, self)
   File C:\PROGRA~1\Python25\lib\SocketServer.py, line 521, in __init__
     self.handle()
   File c:\program 
  files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
  httpserver.py, line 432, in handle
     BaseHTTPRequestHandler.handle(self)
   File C:\PROGRA~1\Python25\lib\BaseHTTPServer.py, line 316, in handle
     self.handle_one_request()
   File c:\program 
  files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
  httpserver.py, line 427, in handle_one_request
     self.wsgi_execute()
   File c:\program 
  files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
  httpserver.py, line 287, in wsgi_execute
     self.wsgi_start_response)
   File c:\program 
  files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
  gzipper.py, line 35, in __call__
     return self.application(environ, start_response)
   File c:\program 
  files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
  registry.py, line 350, in __call__
     app_iter = self.application(environ, start_response)
   File c:\program 
  files\python25\lib\site-packages\Beaker-1.0.1-py2.5.egg\beake
  r\middleware.py, line 74, in __call__
     return self.app(environ, start_response)
   File c:\program 
  files\python25\lib\site-packages\Beaker-1.0.1-py2.5.egg\beake
  r\middleware.py, line 147, in __call__
     return self.wrap_app(environ, session_start_response)
   File c:\program 
  files\python25\lib\site-packages\Routes-1.9.2-py2.5.egg\route
  s\middleware.py, line 100, in __call__
     response = self.app(environ, start_response)
   File c:\my\python\pylons\pylons\wsgiapp.py, line 112, in __call__
     to 'return' it?) in: %r % controller.__name__)
  Exception: No content returned by controller (Did you remember to 'return' 
  it?)
  in: 'PagePublicController'

  Note, I read every document on internet related to pylons and HEAD,
  but I think problem is in pylons itself. I tried simple test like
  this:

  class PagePublicController(base.BaseController):
     def index_ROOT(self):
         return 

  or

  class PagePublicController(base.BaseController):
     def index_ROOT(self):
         return []

  and this produces internal server error too.

  here is some interesting stuff, but not solves my problem:
 http://pylonshq.com/pasties/922

  So my question is, it's a bug or I'm doing something wrong ?

  Cheers
  - Petr

I just put a Pylons 0.9.7rc1 app into production and am see a bunch of
these errors, too. Mostly, they seem to be coming from user agents
other than browsers.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: HEAD request and internal server error

2008-09-16 Thread Graham Dumpleton



On Sep 17, 10:59 am, Petr Kobalíček [EMAIL PROTECTED]
wrote:
 Hi Wyatt,

 my biggest problem with this is that HEAD requests are used by bots,
 so the pylons pages are not indexable at all. This is big problem for
 me and I don't know how to solve this, because we are creating
 ecommerce software using pylons, sqlalchemy and qooxdoo for
 administration. I'm using pylons also for my web and here I found the
 problem:-(

 So, any ideas ;-) ?

A workaround is to wrap your WSGI application in a middleware which
changes REQUEST_METHOD from HEAD to GET and which discards the
iterable returned from the application. The middleware should ensure
it still calls close() on the iterable properly though as per WSGI
specification requirements.

Alternatively, you could make it work by hosting with Apache/mod_wsgi
and configuring Apache to enable Apache CONTENT_LENGTH output filter
for the application. This will work as when an Apache output filter is
configured, mod_wsgi will convert a HEAD request to a GET request
before passing it to the WSGI application. This is done so that actual
response content can be passed back to the Apache output filter, which
may want to adjust response headers based on the content. Apache will
discard any response content after any output filters are done with it
and will not send it back to the client.

If this isn't done with Apache/mod_wsgi, the HEAD and GET requests may
not yield the same response headers. The CONTENT_LENGTH output filter
is chosen here purely because it is pretty benign, any Apache output
filter would have been enough to trigger this behaviour.

Graham

 Cheers
 - Petr

 2008/9/17 Wyatt Baldwin [EMAIL PROTECTED]:



  On Sep 16, 3:18 pm, Petr Kobalíček [EMAIL PROTECTED] wrote:
  So it's related to this 
  ticked:http://pylonshq.com/project/pylonshq/ticket/507

  I can't solve this bug myself, can anybody help me ? (I'm now using
  pylons from mercurial, but without success)

  Cheers
  - Petr

  2008/9/16 Petr Kobalíček [EMAIL PROTECTED]:

   So,

   this is pylons bug !

   I tried to create plain application and to add hello controller
   (that's in documentation).

   The i tried this script:

   import httplib

   req = httplib.HTTPConnection(localhost:5000)
   req.request(HEAD, /hello/index)
   res = req.getresponse()

   print res.status, res.reason

   Ad I got internal server error

   Exception: No content returned by controller (Did you remember to
   'return' it?) in: 'HelloController'

   So, what to do, is there any solution ?

   Cheers
   - Petr

   2008/9/16 Petr Kobalíček [EMAIL PROTECTED]:
   Hi devs,

   I have problem with HEAD requests that causes me Internal server error.

   The error exception:

   Exception happened during processing of request from ('127.0.0.1', 4948)
   Traceback (most recent call last):
    File c:\program 
   files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
   httpserver.py, line 1056, in process_request_in_thread
      self.finish_request(request, client_address)
    File C:\PROGRA~1\Python25\lib\SocketServer.py, line 254, in 
   finish_request
      self.RequestHandlerClass(request, client_address, self)
    File C:\PROGRA~1\Python25\lib\SocketServer.py, line 521, in __init__
      self.handle()
    File c:\program 
   files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
   httpserver.py, line 432, in handle
      BaseHTTPRequestHandler.handle(self)
    File C:\PROGRA~1\Python25\lib\BaseHTTPServer.py, line 316, in handle
      self.handle_one_request()
    File c:\program 
   files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
   httpserver.py, line 427, in handle_one_request
      self.wsgi_execute()
    File c:\program 
   files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
   httpserver.py, line 287, in wsgi_execute
      self.wsgi_start_response)
    File c:\program 
   files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
   gzipper.py, line 35, in __call__
      return self.application(environ, start_response)
    File c:\program 
   files\python25\lib\site-packages\paste-1.7.1-py2.5.egg\paste\
   registry.py, line 350, in __call__
      app_iter = self.application(environ, start_response)
    File c:\program 
   files\python25\lib\site-packages\Beaker-1.0.1-py2.5.egg\beake
   r\middleware.py, line 74, in __call__
      return self.app(environ, start_response)
    File c:\program 
   files\python25\lib\site-packages\Beaker-1.0.1-py2.5.egg\beake
   r\middleware.py, line 147, in __call__
      return self.wrap_app(environ, session_start_response)
    File c:\program 
   files\python25\lib\site-packages\Routes-1.9.2-py2.5.egg\route
   s\middleware.py, line 100, in __call__
      response = self.app(environ, start_response)
    File c:\my\python\pylons\pylons\wsgiapp.py, line 112, in __call__
      to 'return' it?) in: %r % controller.__name__)
   Exception: No content returned by controller (Did you remember to 
   'return' it?)
   in: 'PagePublicController'