... either I'm missing something, or this is so much noise...

If you code defensively, and use a debuging environment for both
development, and to inspect tickets, what would this give you that you need
and don't have?  Anyway, in 2 years w/ web2py (and too many to count
elsewhere) I have never been compelled for this (in compiled code,
perhaps...)


On Sun, Sep 13, 2009 at 5:22 PM, Thadeus Burgess
<[email protected]>wrote:

> It is quite difficult, and damn near impossible to debug something that is
> throwing an error when you don't know what inside the variable is causing
> the error. (such as the httplib response from a external server)
>
> I understand where you are comming on from a security standpoint, however
> there is no way you could stop a developer from going mail_to('
> [email protected]', request.vars.username, request.vars.password)
>
> Django displays large variables, and if they are something like a
> dictionary, there is even an add-on module that will do tree-view folding of
> your variables.
>
> Perhaps there should be another level above Administrator, such as
> Developer, only "Developers" can gain access to the variable trace, and
> "Administrators" would only get to see a stack trace, or just be notified
> that there was an error.
>
> And just as web2py will disallow admin access when its in a production
> environment, it could set DEBUG=False if its not running on localhost ?
>
> -Thadeus
>
>
> On Sun, Sep 13, 2009 at 2:09 PM, weheh <[email protected]> wrote:
>
>>
>> I think this is a useful suggestion. If the developer sets DEBUG=False
>> then there should be no variable trace. DEBUG=False should be the
>> default. If the developer sets DEBUG=True and forgets that in the
>> production version, well, caveat emptor.
>>
>> On Sep 13, 2:21 pm, mdipierro <[email protected]> wrote:
>> > I understand. from a technical point of view this would be easy to add
>> > but there are two problems:
>> > 1) some variables may be very large and this would make tickets very
>> > big. How does Django handle it? Does it ignore large variables?
>> > 2) some of he variables may contain user information that
>> > administrator should not get access to (for example
>> > request.vars.password). There may be privacy issues in logging vars
>> > into tickets. If this were the default it would make web2py non-
>> > complaint with privacy standard whatever your application does.
>> >
>> > Any idea?
>> >
>> > Massimo
>> >
>> > On Sep 13, 1:11 pm, Thadeus Burgess <[email protected]> wrote:
>> >
>> > > When django runs into an error, it gives you the values of all
>> variables
>> > > during the stack track, when you have debug = True.
>> >
>> > > Example: (You get code snippet, and all local variables at that
>> snippet.)
>> > > Traceback Switch to copy-and-paste view<
>> http://aichronicles.com/projects/tag/#>
>> >
>> > >    -
>> > >
>>  
>> /home/thadeusb/.myroot/usr/lib/python2.5/site-packages/django/core/handlers/base.pyin
>> > >    get_response
>> > >       1.
>> > >       2. # Complain if the view returned None (a common error).
>> > >       3. if response is None:
>> > >       4. try:
>> > >       5. view_name = callback.func_name # If it's a function
>> > >       6. except AttributeError:
>> > >       7. view_name = callback.__class__.__name__ + '.__call__' # If
>> it's a
>> > >       class
>> > >    1. raise ValueError, "The view %s.%s didn't return an HttpResponse
>> > >       object." % (callback.__module__, view_name) ...
>> > >    1.
>> > >       2. return response
>> > >       3. except http.Http404, e:
>> > >       4. if settings.DEBUG:
>> > >       5. from django.views import debug
>> > >       6. return debug.technical_404_response(request, e)
>> > >     ▼ Local vars <http://aichronicles.com/projects/tag/#>
>> > >      Variable Value   callback <function tag at 0xb4f8fb1c>
>> > >     callback_args ()
>> > >     callback_kwargs {'url': u''}
>> > >     exc_info (<type 'exceptions.ValueError'>, ValueError("The view
>> > >    thadeusb.project.views.tag didn't return an HttpResponse
>> object.",),
>> > >    <traceback object at 0xb4f3a784>)
>> > >     exceptions <module 'django.core.exceptions' from
>> > >
>>  
>> '/home/thadeusb/.myroot/usr/lib/python2.5/site-packages/django/core/exceptions.pyc'>
>> > >     middleware_method <bound method
>> AuthenticationMiddleware.process_request
>> > >    of <django.contrib.auth.middleware.AuthenticationMiddleware object
>> at
>> > >    0xb524c1cc>>
>> > >     receivers [(<function _rollback_on_exception at 0xb5168b54>,
>> None)]
>> > >     request <WSGIRequest GET:<QueryDict: {}>, POST:<QueryDict: {}>,
>> > >    COOKIES:{'sessionid': '00d386b0d7c15244e89f9d38ffcb588f'},
>> META:{'DH_USER':
>> > >    'thadeusb', 'DOCUMENT_ROOT': '/home/thadeusb/sites/
>> aichronicles.com',
>> > >    'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT':
>> > >    'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
>> > >    'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
>> > >    'HTTP_ACCEPT_ENCODING': 'gzip,deflate', 'HTTP_ACCEPT_LANGUAGE':
>> > >    'en-us,en;q=0.5', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE':
>> > >    'sessionid=00d386b0d7c15244e89f9d38ffcb588f', 'HTTP_HOST': '
>> > >    aichronicles.com', 'HTTP_KEEP_ALIVE': '300', 'HTTP_REFERER': '
>> > >    http://aichronicles.com/projects/', 'HTTP_USER_AGENT':
>> 'Mozilla/5.0 (X11;
>> > >    U; Linux i686; en-US; rv:1.9.1.2) Gecko/20090804 Firefox/3.5.2',
>> 'PATH':
>> > >    '/bin:/usr/bin:/sbin:/usr/sbin', 'PATH_INFO': u'/projects/tag/',
>> > >    'PATH_TRANSLATED': '/home/thadeusb/sites/
>> aichronicles.com/projects/tag/',
>> > >    'QUERY_STRING': '', 'REDIRECT_DH_USER': 'thadeusb',
>> 'REDIRECT_SCRIPT_URI': '
>> > >    http://aichronicles.com/projects/tag/', 'REDIRECT_SCRIPT_URL':
>> > >    '/projects/tag/', 'REDIRECT_STATUS': '200', 'REDIRECT_UNIQUE_ID':
>> > >    'a6gLAtBxlNEAAEvNPEQAAAAD', 'REDIRECT_URL': '/projects/tag/',
>> > >    'REDIRECT_ds_id_9498040': '', 'REDIRECT_dsid': '9498040',
>> 'REMOTE_ADDR':
>> > >    '75.27.133.239', 'REMOTE_PORT': '49955', 'REQUEST_METHOD': 'GET',
>> > >    'REQUEST_URI': '/projects/tag/', 'SCRIPT_FILENAME':
>> '/home/thadeusb/sites/
>> > >    aichronicles.com/dispatch.fcgi', 'SCRIPT_NAME': u'', 'SCRIPT_URI':
>> '
>> > >    http://aichronicles.com/projects/tag/', 'SCRIPT_URL':
>> '/projects/tag/',
>> > >    'SERVER_ADDR': '208.113.148.201', 'SERVER_ADMIN': '
>> > >    [email protected]', 'SERVER_NAME': 'aichronicles.com',
>> > >    'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.1',
>> 'SERVER_SIGNATURE': '',
>> > >    'SERVER_SOFTWARE': 'Apache', 'UNIQUE_ID':
>> 'a6gLAtBxlNEAAEvNPEQAAAAD',
>> > >    'ds_id_9498040': '', 'dsid': '9498040', 'wsgi.errors':
>> > >    <flup.server.fcgi_base.OutputStream object at 0xb4f386ec>,
>> 'wsgi.input':
>> > >    <flup.server.fcgi_base.InputStream object at 0xb4f3856c>,
>> > >    'wsgi.multiprocess': False, 'wsgi.multithread': True,
>> 'wsgi.run_once':
>> > >    False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>
>> > >     resolver <RegexURLResolver thadeusb.urls ^/>
>> > >     response None
>> > >     self <django.core.handlers.wsgi.WSGIHandler object at 0xb7c0ac0c>
>> > >     settings <django.conf.LazySettings object at 0xb7b5eb2c>
>> > >     urlconf 'thadeusb.urls'
>> > >     urlresolvers <module 'django.core.urlresolvers' from
>> > >
>>  
>> '/home/thadeusb/.myroot/usr/lib/python2.5/site-packages/django/core/urlresolvers.pyc'>
>> > >     view_name 'tag'
>> >
>> > >     Environment: Request Method: GET Request URL:
>> http://aichronicles.com/projects/tag/DjangoVersion: 1.0.2 final Python
>> > > Version: 2.5.2 Installed Applications: ['django.contrib.auth',
>> > > 'django.contrib.contenttypes', 'django.contrib.sessions',
>> > > 'django.contrib.sites', 'django.contrib.admin',
>> 'django.contrib.comments',
>> > > 'thadeusb.common', 'thadeusb.pages', 'thadeusb.blog',
>> 'thadeusb.search',
>> > > 'thadeusb.project'] Installed Middleware:
>> > > ('django.middleware.common.CommonMiddleware',
>> > > 'django.contrib.sessions.middleware.SessionMiddleware',
>> > > 'django.contrib.auth.middleware.AuthenticationMiddleware',
>> > > 'thadeusb.pages.middleware.FlatpageFallbackMiddleware') Traceback:
>> File
>> > >
>> "/home/thadeusb/.myroot/usr/lib/python2.5/site-packages/django/core/handlers/base.py"
>> > > in get_response 103. raise ValueError, "The view %s.%s didn't return
>> an
>> > > HttpResponse object." % (callback.__module__, view_name) Exception
>> Type:
>> > > ValueError at /projects/tag/ Exception Value: The view
>> > > thadeusb.project.views.tag didn't return an HttpResponse object.
>> >
>> > >   Request information GET
>> >
>> > > No GET data
>> > > POST
>> >
>> > > No POST data
>> > > COOKIES  Variable Value   sessionid '00d386b0d7c15244e89f9d38ffcb588f'
>> > >   META  Variable Value   DH_USER
>> > >  DOCUMENT_ROOT
>> > >  GATEWAY_INTERFACE 'CGI/1.1'
>> > >  HTTP_ACCEPT
>> > > 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
>> > >  HTTP_ACCEPT_CHARSET 'ISO-8859-1,utf-8;q=0.7,*;q=0.7'
>> > >  HTTP_ACCEPT_ENCODING 'gzip,deflate'
>> > >  HTTP_ACCEPT_LANGUAGE 'en-us,en;q=0.5'
>> > >  HTTP_CONNECTION 'keep-alive'
>> > >  HTTP_COOKIE 'sessionid=00d386b0d7c15244e89f9d38ffcb588f'
>> > >  HTTP_HOST
>> > >  HTTP_KEEP_ALIVE
>> > >  HTTP_REFERER
>> > >  HTTP_USER_AGENT 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2)
>> > > Gecko/20090804 Firefox/3.5.2'
>> > >  PATH
>> > >  PATH_INFO
>> > >  PATH_TRANSLATED
>> > >  QUERY_STRING
>> > >  REDIRECT_DH_USER
>> > >  REDIRECT_SCRIPT_URI
>> > >  REDIRECT_SCRIPT_URL '/projects/tag/'
>> > >  REDIRECT_STATUS '200'
>> > >  REDIRECT_UNIQUE_ID
>> > >  REDIRECT_URL '/projects/tag/'
>> > >  REDIRECT_ds_id_9498040 ''
>> > >  REDIRECT_dsid
>> > >  REMOTE_ADDR
>> > >  REMOTE_PORT
>> > >  REQUEST_METHOD 'GET'
>> > >  REQUEST_URI '/projects/tag/'
>> > >  SCRIPT_FILENAME
>> > >  SCRIPT_NAME
>> > >  SCRIPT_URI
>> > >  SCRIPT_URL '/projects/tag/'
>> > >  SERVER_ADDR
>> > >  SERVER_ADMIN
>> > >  SERVER_NAME
>> > >  SERVER_PORT
>> > >  SERVER_PROTOCOL
>> > >  SERVER_SIGNATURE
>> > >  SERVER_SOFTWARE
>> > >  UNIQUE_ID
>> > >  ds_id_9498040
>> > >  dsid
>> > >  wsgi.errors
>> > >  wsgi.input
>> > >  wsgi.multiprocess
>> > >  wsgi.multithread
>> > >  wsgi.run_once
>> > >  wsgi.url_scheme
>> > >  wsgi.version
>> >
>> > > On Sun, Sep 13, 2009 at 10:04 AM, mdipierro <[email protected]>
>> wrote:
>> > > > re I understand. Did you look into the python trac
>>
>>
>
> >
>

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

Reply via email to