Twimmetry 9th March 2010
Why do celebrities think they can use Twitter just the way they want to? Don't they know they've a public duty to entertain us for free and should use social networks to do so? And shouldn't we reserve our right to block them when they start demanding money like petty beggars?
Gaaawwwd that felt good... and is incidentally not at all what I think. There are lots of problematic buzzwords there, least of all "celebrity". But there is a question - at least in my mind - about how people who are well-known and well-liked use Twitter. Not for our benefit, but for their own.
Chris Unitt has pointed out to me before that it is unwise and unfair to dictate how people should use Twitter, and I'd never want to do so. But when browsing the pages of the well-known or looking through their tweets as they pass through my stream, it seems a shame that so many of them are directed at their fellow well-known...alites. Or something. (I feel loath to use the word "celebs" as it just conjures up images of Jordan and Peter for me.)
TemplateSyntaxError at /api/gethtml/
Caught DatabaseError while rendering: (144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed")
| Request Method: | GET |
|---|---|
| Request URL: | http://tweetpaste.thingamaweb.com/api/gethtml/?iframe_width=354&id=10238807054 |
| Django Version: | 1.3 pre-alpha |
| Exception Type: | TemplateSyntaxError |
| Exception Value: | Caught DatabaseError while rendering: (144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed") |
| Exception Location: | /usr/lib/pymodules/python2.6/MySQLdb/connections.py in defaulterrorhandler, line 35 |
| Python Executable: | /usr/bin/python |
| Python Version: | 2.6.4 |
| Python Path: | ['/web/sites/thingamaweb.com/', '/usr/local/lib/python2.6/dist-packages/elementtree-1.2.7_20070827_preview-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/lxml-2.2.4-py2.6-linux-i686.egg', '/usr/local/lib/python2.6/dist-packages/python_twitter-0.6-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/simplejson-2.0.9-py2.6-linux-i686.egg', '/usr/local/lib/python2.6/dist-packages/recaptcha_client-1.0.5-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Markdown-2.0.3-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/django_tracking-0.2.7-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/geopy-0.94-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Whoosh-0.3.18-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/mutagen-1.19-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/GChartWrapper-0.9-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Trac-0.12-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Genshi-0.6-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/flickrapi-1.4.2-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/django_debug_toolbar-0.8.3-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/sorl_thumbnail-3.2.5-py2.6.egg', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/pymodules/python2.6', '/usr/local/lib/python2.6/dist-packages'] |
| Server time: | Sat, 31 Jul 2010 14:32:38 +0100 |
Template error
In template <unknown source>, error at line 1
Caught DatabaseError while rendering: (144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed")
| 1 | <iframe name="tp{{ pasting.id }}" id="tp{{ pasting.id }}" width="{{ pasting.iframe_width }}" height="{{ pasting.iframe_height }}" frameborder="0" src="http://{{ site.domain }}{{ pasting.get_iframe_url }}" style="overflow: hidden; display: block; width: {{ pasting.iframe_width }}px; height: {{ pasting.iframe_height }}px;"><p><a href="http://{{ site.domain }}{{ pasting.get_iframe_url }}" target="_blank">View {{ pasting.tweet.author.username }}’s tweet</a></p></iframe> |
|---|
Traceback Switch to copy-and-paste view
-
/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.pyinget_response- # Apply view middleware
- for middleware_method in self._view_middleware:
- response = middleware_method(request, callback, callback_args, callback_kwargs)
- if response:
- return response
- try:
- response = callback(request, *callback_args, **callback_kwargs) ...
- except Exception, e:
- # If the view raised an exception, run it through exception
- # middleware, and if the exception middleware returns a
- # response, use that. Otherwise, reraise the exception.
- for middleware_method in self._exception_middleware:
- response = middleware_method(request, e)
Variable Value callback <function get_html at 0xb86ae8b4>callback_args ()callback_kwargs {}e TemplateSyntaxError(u'Caught DatabaseError while rendering: (144, "Table \'./thingamaweb/tweets_twitterer\' is marked as crashed and last (automatic?) repair failed")',)exceptions <module 'django.core.exceptions' from '/usr/local/lib/python2.6/dist-packages/django/core/exceptions.pyc'>middleware_method <bound method AuthenticationMiddleware.process_request of <django.contrib.auth.middleware.AuthenticationMiddleware object at 0xb833e48c>>receivers [(<function _rollback_on_exception at 0xb83e9cdc>, None)]request <WSGIRequest GET:<QueryDict: {u'iframe_width': [u'354'], u'id': [u'10238807054']}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'DOCUMENT_ROOT': '/var/www', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_HOST': 'tweetpaste.thingamaweb.com', 'HTTP_USER_AGENT': 'Python-urllib/1.17', 'PATH': '/usr/local/bin:/usr/bin:/bin', 'PATH_INFO': u'/api/gethtml/', 'PATH_TRANSLATED': '/web/sites/thingamaweb.com/tweetpaste.wsgi/api/gethtml/', 'QUERY_STRING': 'iframe_width=354&id=10238807054', 'REMOTE_ADDR': '89.16.175.177', 'REMOTE_PORT': '59386', 'REQUEST_METHOD': 'GET', 'REQUEST_URI': '/api/gethtml/?iframe_width=354&id=10238807054', 'SCRIPT_FILENAME': '/web/sites/thingamaweb.com/tweetpaste.wsgi', 'SCRIPT_NAME': u'', 'SERVER_ADDR': '89.16.175.177', 'SERVER_ADMIN': '[no address given]', 'SERVER_NAME': 'tweetpaste.thingamaweb.com', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SIGNATURE': '<address>Apache/2.2.12 (Ubuntu) Server at tweetpaste.thingamaweb.com Port 80</address> ', 'SERVER_SOFTWARE': 'Apache/2.2.12 (Ubuntu)', 'mod_wsgi.application_group': 'tweetpaste.thingamaweb.com|', 'mod_wsgi.callable_object': 'application', 'mod_wsgi.listener_host': '', 'mod_wsgi.listener_port': '80', 'mod_wsgi.process_group': 'tweetpaste', 'mod_wsgi.reload_mechanism': '1', 'mod_wsgi.script_reloading': '1', 'mod_wsgi.version': (2, 5), 'wsgi.errors': <mod_wsgi.Log object at 0xb8719dd0>, 'wsgi.file_wrapper': <built-in method file_wrapper of mod_wsgi.Adapter object at 0xb8704c38>, 'wsgi.input': <mod_wsgi.Input object at 0xb8701d90>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>resolver <RegexURLResolver tweetpaste.urls (None:None) ^/>response Noneself <django.core.handlers.wsgi.WSGIHandler object at 0xb801016c>settings <django.conf.LazySettings object at 0xb81cd34c>urlconf 'tweetpaste.urls'urlresolvers <module 'django.core.urlresolvers' from '/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.pyc'> -
/web/sites/thingamaweb.com/tweetpaste/tweets/views.pyinget_html- include_padding = include_padding,
- show_username = show_username,
- show_source = show_source,
- posted_via_api = True
- )
- return HttpResponse(
- content = pasting.get_javascript(), ...
- mimetype = 'text/plain'
- )
- else:
- raise Http404('No tweet found with ID ' + str(id))
Variable Value iframe_height 200iframe_width 354include_padding Truepasting <Pasting: 10238807054>request <WSGIRequest GET:<QueryDict: {u'iframe_width': [u'354'], u'id': [u'10238807054']}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'DOCUMENT_ROOT': '/var/www', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_HOST': 'tweetpaste.thingamaweb.com', 'HTTP_USER_AGENT': 'Python-urllib/1.17', 'PATH': '/usr/local/bin:/usr/bin:/bin', 'PATH_INFO': u'/api/gethtml/', 'PATH_TRANSLATED': '/web/sites/thingamaweb.com/tweetpaste.wsgi/api/gethtml/', 'QUERY_STRING': 'iframe_width=354&id=10238807054', 'REMOTE_ADDR': '89.16.175.177', 'REMOTE_PORT': '59386', 'REQUEST_METHOD': 'GET', 'REQUEST_URI': '/api/gethtml/?iframe_width=354&id=10238807054', 'SCRIPT_FILENAME': '/web/sites/thingamaweb.com/tweetpaste.wsgi', 'SCRIPT_NAME': u'', 'SERVER_ADDR': '89.16.175.177', 'SERVER_ADMIN': '[no address given]', 'SERVER_NAME': 'tweetpaste.thingamaweb.com', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SIGNATURE': '<address>Apache/2.2.12 (Ubuntu) Server at tweetpaste.thingamaweb.com Port 80</address> ', 'SERVER_SOFTWARE': 'Apache/2.2.12 (Ubuntu)', 'mod_wsgi.application_group': 'tweetpaste.thingamaweb.com|', 'mod_wsgi.callable_object': 'application', 'mod_wsgi.listener_host': '', 'mod_wsgi.listener_port': '80', 'mod_wsgi.process_group': 'tweetpaste', 'mod_wsgi.reload_mechanism': '1', 'mod_wsgi.script_reloading': '1', 'mod_wsgi.version': (2, 5), 'wsgi.errors': <mod_wsgi.Log object at 0xb8719dd0>, 'wsgi.file_wrapper': <built-in method file_wrapper of mod_wsgi.Adapter object at 0xb8704c38>, 'wsgi.input': <mod_wsgi.Input object at 0xb8701d90>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>show_background Trueshow_source Trueshow_username Truetweet <Tweet: 10238807054>tweet_id 10238807054L -
/web/sites/thingamaweb.com/tweetpaste/tweets/models.pyinget_javascript- def get_javascript(self):
- html = '<script type="text/javascript" src="http://{{ site.domain }}{{ url }}"></script><noscript>{{ code }}</noscript>'
- context = Context(
- {
- 'url': reverse('tweetpaste.tweets.views.iframe_js', args = [self.id]),
- 'site': Site.objects.get(pk = settings.SITE_ID),
- 'code': self.get_iframe_code() ...
- }
- )
- template = Template(html)
- return template.render(context)
Variable Value html '<script type="text/javascript" src="http://{{ site.domain }}{{ url }}"></script><noscript>{{ code }}</noscript>'self <Pasting: 10238807054> -
/web/sites/thingamaweb.com/tweetpaste/tweets/models.pyinget_iframe_code- {
- 'pasting': self,
- 'site': Site.objects.get(pk = settings.SITE_ID)
- }
- )
- template = Template(html)
- return template.render(context) ...
- def get_shortcode(self):
- params = {}
- if self.iframe_width <> settings.IFRAME_WIDTH:
- params['iframe_width'] = self.iframe_width
Variable Value context [{'pasting': <Pasting: 10238807054>, 'site': <Site: tweetpaste.thingamaweb.com>}]html '<iframe name="tp{{ pasting.id }}" id="tp{{ pasting.id }}" width="{{ pasting.iframe_width }}" height="{{ pasting.iframe_height }}" frameborder="0" src="http://{{ site.domain }}{{ pasting.get_iframe_url }}" style="overflow: hidden; display: block; width: {{ pasting.iframe_width }}px; height: {{ pasting.iframe_height }}px;"><p><a href="http://{{ site.domain }}{{ pasting.get_iframe_url }}" target="_blank">View {{ pasting.tweet.author.username }}’s tweet</a></p></iframe>'self <Pasting: 10238807054>template <django.template.Template object at 0xb8782acc> -
/usr/local/lib/python2.6/dist-packages/django/template/__init__.pyinrender- def _render(self, context):
- return self.nodelist.render(context)
- def render(self, context):
- "Display stage -- can be called many times"
- context.render_context.push()
- try:
- return self._render(context) ...
- finally:
- context.render_context.pop()
- def compile_string(template_string, origin):
- "Compiles template_string into NodeList ready for rendering"
- if settings.TEMPLATE_DEBUG:
Variable Value context [{'pasting': <Pasting: 10238807054>, 'site': <Site: tweetpaste.thingamaweb.com>}]self <django.template.Template object at 0xb8782acc> -
/usr/local/lib/python2.6/dist-packages/django/template/__init__.pyin_render- def __iter__(self):
- for node in self.nodelist:
- for subnode in node:
- yield subnode
- def _render(self, context):
- return self.nodelist.render(context) ...
- def render(self, context):
- "Display stage -- can be called many times"
- context.render_context.push()
- try:
- return self._render(context)
Variable Value context [{'pasting': <Pasting: 10238807054>, 'site': <Site: tweetpaste.thingamaweb.com>}]self <django.template.Template object at 0xb8782acc> -
/usr/local/lib/python2.6/dist-packages/django/template/__init__.pyinrender- # extend_nodelist().
- contains_nontext = False
- def render(self, context):
- bits = []
- for node in self:
- if isinstance(node, Node):
- bits.append(self.render_node(node, context)) ...
- else:
- bits.append(node)
- return mark_safe(''.join([force_unicode(b) for b in bits]))
- def get_nodes_by_type(self, nodetype):
- "Return a list of all nodes of the given type"
Variable Value bits [u'<iframe name="tp', u'158138', u'" id="tp', u'158138', u'" width="', u'354', u'" height="', u'200', u'" frameborder="0" src="http://', u'tweetpaste.thingamaweb.com', u'/embed/158138/', u'" style="overflow: hidden; display: block; width: ', u'354', u'px; height: ', u'200', u'px;"><p><a href="http://', u'tweetpaste.thingamaweb.com', u'/embed/158138/', u'" target="_blank">View ']context [{'pasting': <Pasting: 10238807054>, 'site': <Site: tweetpaste.thingamaweb.com>}]node <Variable Node: pasting.tweet.author.username>self [<Text Node: '<iframe name="tp'>, <Variable Node: pasting.id>, <Text Node: '" id="tp'>, <Variable Node: pasting.id>, <Text Node: '" width="'>, <Variable Node: pasting.iframe_width>, <Text Node: '" height="'>, <Variable Node: pasting.iframe_height>, <Text Node: '" frameborder="0" src="ht'>, <Variable Node: site.domain>, <Variable Node: pasting.get_iframe_url>, <Text Node: '" style="overflow: hidden'>, <Variable Node: pasting.iframe_width>, <Text Node: 'px; height: '>, <Variable Node: pasting.iframe_height>, <Text Node: 'px;"><p><a href="http://'>, <Variable Node: site.domain>, <Variable Node: pasting.get_iframe_url>, <Text Node: '" target="_blank">View '>, <Variable Node: pasting.tweet.author.username>, <Text Node: '’s tweet</a></p></i'>] -
/usr/local/lib/python2.6/dist-packages/django/template/debug.pyinrender_node- def compile_function_error(self, token, e):
- if not hasattr(e, 'source'):
- e.source = token.source
- class DebugNodeList(NodeList):
- def render_node(self, node, context):
- try:
- result = node.render(context) ...
- except TemplateSyntaxError, e:
- if not hasattr(e, 'source'):
- e.source = node.source
- raise
- except Exception, e:
- from sys import exc_info
Variable Value context [{'pasting': <Pasting: 10238807054>, 'site': <Site: tweetpaste.thingamaweb.com>}]e DatabaseError(144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed")exc_info <built-in function exc_info>node <Variable Node: pasting.tweet.author.username>self [<Text Node: '<iframe name="tp'>, <Variable Node: pasting.id>, <Text Node: '" id="tp'>, <Variable Node: pasting.id>, <Text Node: '" width="'>, <Variable Node: pasting.iframe_width>, <Text Node: '" height="'>, <Variable Node: pasting.iframe_height>, <Text Node: '" frameborder="0" src="ht'>, <Variable Node: site.domain>, <Variable Node: pasting.get_iframe_url>, <Text Node: '" style="overflow: hidden'>, <Variable Node: pasting.iframe_width>, <Text Node: 'px; height: '>, <Variable Node: pasting.iframe_height>, <Text Node: 'px;"><p><a href="http://'>, <Variable Node: site.domain>, <Variable Node: pasting.get_iframe_url>, <Text Node: '" target="_blank">View '>, <Variable Node: pasting.tweet.author.username>, <Text Node: '’s tweet</a></p></i'>]wrapped TemplateSyntaxError(u'Caught DatabaseError while rendering: (144, "Table \'./thingamaweb/tweets_twitterer\' is marked as crashed and last (automatic?) repair failed")',) -
/usr/local/lib/python2.6/dist-packages/django/template/debug.pyinrender- wrapped.exc_info = exc_info()
- raise wrapped, None, wrapped.exc_info[2]
- return result
- class DebugVariableNode(VariableNode):
- def render(self, context):
- try:
- output = self.filter_expression.resolve(context) ...
- output = localize(output)
- output = force_unicode(output)
- except TemplateSyntaxError, e:
- if not hasattr(e, 'source'):
- e.source = self.source
- raise
Variable Value context [{'pasting': <Pasting: 10238807054>, 'site': <Site: tweetpaste.thingamaweb.com>}]self <Variable Node: pasting.tweet.author.username> -
/usr/local/lib/python2.6/dist-packages/django/template/__init__.pyinresolve- self.filters = filters
- self.var = var_obj
- def resolve(self, context, ignore_failures=False):
- if isinstance(self.var, Variable):
- try:
- obj = self.var.resolve(context) ...
- except VariableDoesNotExist:
- if ignore_failures:
- obj = None
- else:
- if settings.TEMPLATE_STRING_IF_INVALID:
- global invalid_var_format_string
Variable Value context [{'pasting': <Pasting: 10238807054>, 'site': <Site: tweetpaste.thingamaweb.com>}]ignore_failures Falseself <django.template.FilterExpression object at 0xb87af96c> -
/usr/local/lib/python2.6/dist-packages/django/template/__init__.pyinresolve- raise TemplateSyntaxError("Variables and attributes may not begin with underscores: '%s'" % var)
- self.lookups = tuple(var.split(VARIABLE_ATTRIBUTE_SEPARATOR))
- def resolve(self, context):
- """Resolve this variable against a given context."""
- if self.lookups is not None:
- # We're dealing with a variable that needs to be resolved
- value = self._resolve_lookup(context) ...
- else:
- # We're dealing with a literal, so it's already been "resolved"
- value = self.literal
- if self.translate:
- return _(value)
- return value
Variable Value context [{'pasting': <Pasting: 10238807054>, 'site': <Site: tweetpaste.thingamaweb.com>}]self <Variable: u'pasting.tweet.author.username'> -
/usr/local/lib/python2.6/dist-packages/django/template/__init__.pyin_resolve_lookup- """
- current = context
- for bit in self.lookups:
- try: # dictionary lookup
- current = current[bit]
- except (TypeError, AttributeError, KeyError):
- try: # attribute lookup
- current = getattr(current, bit) ...
- if callable(current):
- if getattr(current, 'alters_data', False):
- current = settings.TEMPLATE_STRING_IF_INVALID
- else:
- try: # method call (assuming no args required)
- current = current()
Variable Value bit u'author'context [{'pasting': <Pasting: 10238807054>, 'site': <Site: tweetpaste.thingamaweb.com>}]current <Tweet: 10238807054>e DatabaseError(144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed")self <Variable: u'pasting.tweet.author.username'> -
/usr/local/lib/python2.6/dist-packages/django/db/models/fields/related.pyin__get__- # If the related manager indicates that it should be used for
- # related fields, respect that.
- rel_mgr = self.field.rel.to._default_manager
- db = router.db_for_read(self.field.rel.to, instance=instance)
- if getattr(rel_mgr, 'use_for_related_fields', False):
- rel_obj = rel_mgr.using(db).get(**params)
- else:
- rel_obj = QuerySet(self.field.rel.to).using(db).get(**params) ...
- setattr(instance, cache_name, rel_obj)
- return rel_obj
- def __set__(self, instance, value):
- if instance is None:
- raise AttributeError("%s must be accessed via instance" % self._field.name)
Variable Value cache_name '_author_cache'db 'default'instance <Tweet: 10238807054>instance_type <class 'tweetpaste.tweets.models.Tweet'>other_field <django.db.models.fields.AutoField object at 0xb869e38c>params {'id__exact': 30L}rel_mgr <django.db.models.manager.Manager object at 0xb869e3ac>self <django.db.models.fields.related.ReverseSingleRelatedObjectDescriptor object at 0xb869e8ec>val 30L -
/usr/local/lib/python2.6/dist-packages/django/db/models/query.pyinget- """
- Performs the query and returns a single object matching the given
- keyword arguments.
- """
- clone = self.filter(*args, **kwargs)
- if self.query.can_filter():
- clone = clone.order_by()
- num = len(clone) ...
- if num == 1:
- return clone._result_cache[0]
- if not num:
- raise self.model.DoesNotExist("%s matching query does not exist."
- % self.model._meta.object_name)
- raise self.model.MultipleObjectsReturned("get() returned more than one %s -- it returned %s! Lookup parameters were %s"
Variable Value args ()clone Error in formatting: (144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed")kwargs {'id__exact': 30L}self Error in formatting: (144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed") -
/usr/local/lib/python2.6/dist-packages/django/db/models/query.pyin__len__- # Since __len__ is called quite frequently (for example, as part of
- # list(qs), we make some effort here to be as efficient as possible
- # whilst not messing up any existing iterators against the QuerySet.
- if self._result_cache is None:
- if self._iter:
- self._result_cache = list(self._iter)
- else:
- self._result_cache = list(self.iterator()) ...
- elif self._iter:
- self._result_cache.extend(list(self._iter))
- return len(self._result_cache)
- def __iter__(self):
- if self._result_cache is None:
Variable Value self Error in formatting: (144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed") -
/usr/local/lib/python2.6/dist-packages/django/db/models/query.pyiniterator- if field.name not in load_fields:
- skip.add(field.attname)
- else:
- init_list.append(field.attname)
- model_cls = deferred_class_factory(self.model, skip)
- compiler = self.query.get_compiler(using=self.db)
- for row in compiler.results_iter(): ...
- if fill_cache:
- obj, _ = get_cached_row(self.model, row,
- index_start, using=self.db, max_depth=max_depth,
- requested=requested, offset=len(aggregate_select),
- only_load=only_load)
- else:
Variable Value aggregate_select []aggregate_start 8compiler <django.db.backends.mysql.compiler.SQLCompiler object at 0xb8785e2c>extra_select []fields [<django.db.models.fields.AutoField object at 0xb869e38c>, <django.db.models.fields.PositiveIntegerField object at 0xb864eb8c>, <django.db.models.fields.CharField object at 0xb864ec0c>, <django.db.models.fields.CharField object at 0xb864eccc>, <django.db.models.fields.URLField object at 0xb865478c>, <django.db.models.fields.CharField object at 0xb868d60c>, <django.db.models.fields.URLField object at 0xb868d66c>, <django.db.models.fields.DateTimeField object at 0xb868d7cc>]fill_cache Falseindex_start 0load_fields []max_depth 5only_load {}pk_idx 0requested Noneself Error in formatting: (144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed")skip None -
/usr/local/lib/python2.6/dist-packages/django/db/models/sql/compiler.pyinresults_iter- def results_iter(self):
- """
- Returns an iterator over the results from executing this query.
- """
- resolve_columns = hasattr(self, 'resolve_columns')
- fields = None
- for rows in self.execute_sql(MULTI): ...
- for row in rows:
- if resolve_columns:
- if fields is None:
- # We only set this up here because
- # related_select_fields isn't populated until
- # execute_sql() has been called.
Variable Value fields Noneresolve_columns Trueself <django.db.backends.mysql.compiler.SQLCompiler object at 0xb8785e2c> -
/usr/local/lib/python2.6/dist-packages/django/db/models/sql/compiler.pyinexecute_sql- except EmptyResultSet:
- if result_type == MULTI:
- return empty_iter()
- else:
- return
- cursor = self.connection.cursor()
- cursor.execute(sql, params) ...
- if not result_type:
- return cursor
- if result_type == SINGLE:
- if self.query.ordering_aliases:
- return cursor.fetchone()[:-len(self.query.ordering_aliases)]
Variable Value cursor <django.db.backends.util.CursorDebugWrapper object at 0xb8796ecc>params (30,)result_type 'multi'self <django.db.backends.mysql.compiler.SQLCompiler object at 0xb8785e2c>sql 'SELECT `tweets_twitterer`.`id`, `tweets_twitterer`.`user_id`, `tweets_twitterer`.`username`, `tweets_twitterer`.`display_name`, `tweets_twitterer`.`image_url`, `tweets_twitterer`.`background_colour`, `tweets_twitterer`.`url`, `tweets_twitterer`.`date_updated` FROM `tweets_twitterer` WHERE `tweets_twitterer`.`id` = %s ' -
/usr/local/lib/python2.6/dist-packages/django/db/backends/util.pyinexecute- def __init__(self, cursor, db):
- self.cursor = cursor
- self.db = db # Instance of a BaseDatabaseWrapper subclass
- def execute(self, sql, params=()):
- start = time()
- try:
- return self.cursor.execute(sql, params) ...
- finally:
- stop = time()
- sql = self.db.ops.last_executed_query(self.cursor, sql, params)
- self.db.queries.append({
- 'sql': sql,
- 'time': "%.3f" % (stop - start),
Variable Value params (30,)self <django.db.backends.util.CursorDebugWrapper object at 0xb8796ecc>sql u'SELECT `tweets_twitterer`.`id`, `tweets_twitterer`.`user_id`, `tweets_twitterer`.`username`, `tweets_twitterer`.`display_name`, `tweets_twitterer`.`image_url`, `tweets_twitterer`.`background_colour`, `tweets_twitterer`.`url`, `tweets_twitterer`.`date_updated` FROM `tweets_twitterer` WHERE `tweets_twitterer`.`id` = 30 'start 1280583158.268383stop 1280583158.269753 -
/usr/local/lib/python2.6/dist-packages/django/db/backends/mysql/base.pyinexecute- codes_for_integrityerror = (1048,)
- def __init__(self, cursor):
- self.cursor = cursor
- def execute(self, query, args=None):
- try:
- return self.cursor.execute(query, args) ...
- except Database.IntegrityError, e:
- raise utils.IntegrityError, utils.IntegrityError(*tuple(e)), sys.exc_info()[2]
- except Database.OperationalError, e:
- # Map some error codes to IntegrityError, since they seem to be
- # misclassified and Django would prefer the more logical place.
- if e[0] in self.codes_for_integrityerror:
Variable Value args (30,)e InternalError(144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed")query 'SELECT `tweets_twitterer`.`id`, `tweets_twitterer`.`user_id`, `tweets_twitterer`.`username`, `tweets_twitterer`.`display_name`, `tweets_twitterer`.`image_url`, `tweets_twitterer`.`background_colour`, `tweets_twitterer`.`url`, `tweets_twitterer`.`date_updated` FROM `tweets_twitterer` WHERE `tweets_twitterer`.`id` = %s 'self <django.db.backends.mysql.base.CursorWrapper object at 0xb87aa7ac> -
/usr/lib/pymodules/python2.6/MySQLdb/cursors.pyinexecute- else:
- self.messages.append((TypeError, m))
- self.errorhandler(self, TypeError, m)
- except:
- exc, value, tb = exc_info()
- del tb
- self.messages.append((exc, value))
- self.errorhandler(self, exc, value) ...
- self._executed = query
- if not self._defer_warnings: self._warning_check()
- return r
- def executemany(self, query, args):
Variable Value ListType <type 'list'>TupleType <type 'tuple'>args (30,)charset 'utf8'db <weakproxy at 0xb88a22d4 to Connection at 0xb8871484>exc <class '_mysql_exceptions.InternalError'>exc_info <built-in function exc_info>query 'SELECT `tweets_twitterer`.`id`, `tweets_twitterer`.`user_id`, `tweets_twitterer`.`username`, `tweets_twitterer`.`display_name`, `tweets_twitterer`.`image_url`, `tweets_twitterer`.`background_colour`, `tweets_twitterer`.`url`, `tweets_twitterer`.`date_updated` FROM `tweets_twitterer` WHERE `tweets_twitterer`.`id` = 30 'self <MySQLdb.cursors.Cursor object at 0xb87aaa8c>value InternalError(144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed") -
/usr/lib/pymodules/python2.6/MySQLdb/connections.pyindefaulterrorhandler- error = errorclass, errorvalue
- if cursor:
- cursor.messages.append(error)
- else:
- connection.messages.append(error)
- del cursor
- del connection
- raise errorclass, errorvalue ...
- class Connection(_mysql.connection):
- """MySQL Database Connection Object"""
Variable Value error (<class '_mysql_exceptions.InternalError'>, InternalError(144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed"))errorclass <class '_mysql_exceptions.InternalError'>errorvalue InternalError(144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed")
Request information
GET
| Variable | Value |
|---|---|
| iframe_width | u'354' |
| id | u'10238807054' |
POST
No POST data
FILES
No FILES data
COOKIES
No cookie data
META
| Variable | Value |
|---|---|
| DOCUMENT_ROOT | '/var/www' |
| GATEWAY_INTERFACE | 'CGI/1.1' |
| HTTP_HOST | 'tweetpaste.thingamaweb.com' |
| HTTP_USER_AGENT | 'Python-urllib/1.17' |
| PATH | '/usr/local/bin:/usr/bin:/bin' |
| PATH_INFO | u'/api/gethtml/' |
| PATH_TRANSLATED | '/web/sites/thingamaweb.com/tweetpaste.wsgi/api/gethtml/' |
| QUERY_STRING | 'iframe_width=354&id=10238807054' |
| REMOTE_ADDR | '89.16.175.177' |
| REMOTE_PORT | '59386' |
| REQUEST_METHOD | 'GET' |
| REQUEST_URI | '/api/gethtml/?iframe_width=354&id=10238807054' |
| SCRIPT_FILENAME | '/web/sites/thingamaweb.com/tweetpaste.wsgi' |
| SCRIPT_NAME | u'' |
| SERVER_ADDR | '89.16.175.177' |
| SERVER_ADMIN | '[no address given]' |
| SERVER_NAME | 'tweetpaste.thingamaweb.com' |
| SERVER_PORT | '80' |
| SERVER_PROTOCOL | 'HTTP/1.0' |
| SERVER_SIGNATURE | '<address>Apache/2.2.12 (Ubuntu) Server at tweetpaste.thingamaweb.com Port 80</address>
' |
| SERVER_SOFTWARE | 'Apache/2.2.12 (Ubuntu)' |
| mod_wsgi.application_group | 'tweetpaste.thingamaweb.com|' |
| mod_wsgi.callable_object | 'application' |
| mod_wsgi.listener_host | '' |
| mod_wsgi.listener_port | '80' |
| mod_wsgi.process_group | 'tweetpaste' |
| mod_wsgi.reload_mechanism | '1' |
| mod_wsgi.script_reloading | '1' |
| mod_wsgi.version | (2, 5) |
| wsgi.errors | <mod_wsgi.Log object at 0xb8719dd0> |
| wsgi.file_wrapper | <built-in method file_wrapper of mod_wsgi.Adapter object at 0xb8704c38> |
| wsgi.input | <mod_wsgi.Input object at 0xb8701d90> |
| wsgi.multiprocess | True |
| wsgi.multithread | False |
| wsgi.run_once | False |
| wsgi.url_scheme | 'http' |
| wsgi.version | (1, 0) |
Settings
Using settings module tweetpaste.settings
| Setting | Value |
|---|---|
| ABSOLUTE_URL_OVERRIDES | {} |
| ADMINS | (('Mark Steadman', 'marksteadman@me.com'),) |
| ADMIN_FOR | () |
| ADMIN_MEDIA_PREFIX | '/media/' |
| ALLOWED_INCLUDE_ROOTS | () |
| APPEND_SLASH | True |
| AUTHENTICATION_BACKENDS | ('django.contrib.auth.backends.ModelBackend',) |
| BANNED_IPS | () |
| BITLY_API_KEY | 'R_2ad0cc5f01036b6f4f07e5542aa7a833' |
| BITLY_USERNAME | 'tweetpastebot' |
| CACHE_BACKEND | 'locmem://' |
| CACHE_MIDDLEWARE_KEY_PREFIX | '' |
| CACHE_MIDDLEWARE_SECONDS | 600 |
| COMMENTS_ALLOW_PROFANITIES | False |
| COMMENTS_BANNED_USERS_GROUP | None |
| COMMENTS_FIRST_FEW | 0 |
| COMMENTS_MODERATORS_GROUP | None |
| COMMENTS_SKETCHY_USERS_GROUP | None |
| CSRF_COOKIE_DOMAIN | None |
| CSRF_COOKIE_NAME | 'csrftoken' |
| CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
| DATABASES | {'default': {'ENGINE': 'django.db.backends.mysql',
'HOST': '',
'NAME': 'thingamaweb',
'OPTIONS': {},
'PASSWORD': '********************',
'PORT': '',
'TEST_CHARSET': None,
'TEST_COLLATION': None,
'TEST_MIRROR': None,
'TEST_NAME': None,
'TIME_ZONE': 'Europe/London',
'USER': 'thingamaweb'}} |
| DATABASE_ENGINE | 'mysql' |
| DATABASE_HOST | '' |
| DATABASE_NAME | 'thingamaweb' |
| DATABASE_OPTIONS | {} |
| DATABASE_PASSWORD | '********************' |
| DATABASE_PORT | '' |
| DATABASE_ROUTERS | [] |
| DATABASE_USER | 'thingamaweb' |
| DATETIME_FORMAT | 'N j, Y, P' |
| DATETIME_INPUT_FORMATS | ('%Y-%m-%d %H:%M:%S',
'%Y-%m-%d %H:%M',
'%Y-%m-%d',
'%m/%d/%Y %H:%M:%S',
'%m/%d/%Y %H:%M',
'%m/%d/%Y',
'%m/%d/%y %H:%M:%S',
'%m/%d/%y %H:%M',
'%m/%d/%y') |
| DATE_FORMAT | 'N j, Y' |
| DATE_INPUT_FORMATS | ('%Y-%m-%d',
'%m/%d/%Y',
'%m/%d/%y',
'%b %d %Y',
'%b %d, %Y',
'%d %b %Y',
'%d %b, %Y',
'%B %d %Y',
'%B %d, %Y',
'%d %B %Y',
'%d %B, %Y') |
| DEBUG | True |
| DEBUG_PROPAGATE_EXCEPTIONS | False |
| DECIMAL_SEPARATOR | '.' |
| DEFAULT_CHARSET | 'utf-8' |
| DEFAULT_CONTENT_TYPE | 'text/html' |
| DEFAULT_FILE_STORAGE | 'django.core.files.storage.FileSystemStorage' |
| DEFAULT_FROM_EMAIL | 'info@thingamaweb.com' |
| DEFAULT_INDEX_TABLESPACE | '' |
| DEFAULT_TABLESPACE | '' |
| DISALLOWED_USER_AGENTS | () |
| EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
| EMAIL_HOST | 'localhost' |
| EMAIL_HOST_PASSWORD | '********************' |
| EMAIL_HOST_USER | '' |
| EMAIL_PORT | 25 |
| EMAIL_SUBJECT_PREFIX | 'TweetPaste: ' |
| EMAIL_USE_TLS | False |
| FILE_CHARSET | 'utf-8' |
| FILE_UPLOAD_HANDLERS | ('django.core.files.uploadhandler.MemoryFileUploadHandler',
'django.core.files.uploadhandler.TemporaryFileUploadHandler') |
| FILE_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
| FILE_UPLOAD_PERMISSIONS | None |
| FILE_UPLOAD_TEMP_DIR | None |
| FIRST_DAY_OF_WEEK | 0 |
| FIXTURE_DIRS | () |
| FORCE_SCRIPT_NAME | None |
| FORMAT_MODULE_PATH | None |
| GOOGLE_ANALYTICS_ACCOUNTS | ['UA-9869007-5'] |
| IFRAME_HEIGHT | 200 |
| IFRAME_WIDTH | 500 |
| IGNORABLE_404_ENDS | ('mail.pl', 'mailform.pl', 'mail.cgi', 'mailform.cgi', 'favicon.ico', '.php') |
| IGNORABLE_404_STARTS | ('/cgi-bin/', '/_vti_bin', '/_vti_inf') |
| INSTALLED_APPS | ['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'tweetpaste.core',
'tweetpaste.tweets',
'djangles.googleanalytics'] |
| INTERNAL_IPS | () |
| LANGUAGES | (('ar', 'Arabic'),
('bg', 'Bulgarian'),
('bn', 'Bengali'),
('bs', 'Bosnian'),
('ca', 'Catalan'),
('cs', 'Czech'),
('cy', 'Welsh'),
('da', 'Danish'),
('de', 'German'),
('el', 'Greek'),
('en', 'English'),
('en-gb', 'British English'),
('es', 'Spanish'),
('es-ar', 'Argentinean Spanish'),
('et', 'Estonian'),
('eu', 'Basque'),
('fa', 'Persian'),
('fi', 'Finnish'),
('fr', 'French'),
('fy-nl', 'Frisian'),
('ga', 'Irish'),
('gl', 'Galician'),
('he', 'Hebrew'),
('hi', 'Hindi'),
('hr', 'Croatian'),
('hu', 'Hungarian'),
('id', 'Indonesian'),
('is', 'Icelandic'),
('it', 'Italian'),
('ja', 'Japanese'),
('ka', 'Georgian'),
('km', 'Khmer'),
('kn', 'Kannada'),
('ko', 'Korean'),
('lt', 'Lithuanian'),
('lv', 'Latvian'),
('mk', 'Macedonian'),
('mn', 'Mongolian'),
('nl', 'Dutch'),
('no', 'Norwegian'),
('nb', 'Norwegian Bokmal'),
('nn', 'Norwegian Nynorsk'),
('pl', 'Polish'),
('pt', 'Portuguese'),
('pt-br', 'Brazilian Portuguese'),
('ro', 'Romanian'),
('ru', 'Russian'),
('sk', 'Slovak'),
('sl', 'Slovenian'),
('sq', 'Albanian'),
('sr', 'Serbian'),
('sr-latn', 'Serbian Latin'),
('sv', 'Swedish'),
('ta', 'Tamil'),
('te', 'Telugu'),
('th', 'Thai'),
('tr', 'Turkish'),
('uk', 'Ukrainian'),
('vi', 'Vietnamese'),
('zh-cn', 'Simplified Chinese'),
('zh-tw', 'Traditional Chinese')) |
| LANGUAGES_BIDI | ('he', 'ar', 'fa') |
| LANGUAGE_CODE | 'en-GB' |
| LANGUAGE_COOKIE_NAME | 'django_language' |
| LOCALE_PATHS | () |
| LOGIN_REDIRECT_URL | '/accounts/profile/' |
| LOGIN_URL | '/accounts/login/' |
| LOGOUT_URL | '/accounts/logout/' |
| MANAGERS | (('Mark Steadman', 'marksteadman@me.com'),) |
| MEDIA_ROOT | '/web/sites/thingamaweb.com/media/' |
| MEDIA_URL | 'http://media.thingamaweb.com/' |
| MESSAGE_STORAGE | 'django.contrib.messages.storage.user_messages.LegacyFallbackStorage' |
| MIDDLEWARE_CLASSES | ('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware') |
| MONTH_DAY_FORMAT | 'F j' |
| NUMBER_GROUPING | 0 |
| PASSWORD_RESET_TIMEOUT_DAYS | '********************' |
| PREPEND_WWW | False |
| PROFANITIES_LIST | '********************' |
| ROOT_URLCONF | 'tweetpaste.urls' |
| SECRET_KEY | '********************' |
| SEND_BROKEN_LINK_EMAILS | False |
| SERVER_EMAIL | 'info@thingamaweb.com' |
| SESSION_COOKIE_AGE | 1209600 |
| SESSION_COOKIE_DOMAIN | None |
| SESSION_COOKIE_NAME | 'sessionid' |
| SESSION_COOKIE_PATH | '/' |
| SESSION_COOKIE_SECURE | False |
| SESSION_ENGINE | 'django.contrib.sessions.backends.db' |
| SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
| SESSION_FILE_PATH | None |
| SESSION_SAVE_EVERY_REQUEST | False |
| SETTINGS_MODULE | 'tweetpaste.settings' |
| SHORT_DATETIME_FORMAT | 'm/d/Y P' |
| SHORT_DATE_FORMAT | 'm/d/Y' |
| SITE_DESCRIPTION | 'Embed tweets into your Website or blog' |
| SITE_ID | 1 |
| SITE_LOGO_URL | 'http://media.thingamaweb.com/tweetpaste/img/logo.jpg' |
| SITE_NAME | 'TweetPaste' |
| TEMPLATE_CONTEXT_PROCESSORS | ('django.core.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'django.core.context_processors.request',
'tweetpaste.core.context_processors.settings',
'tweetpaste.tweets.context_processors.tweets') |
| TEMPLATE_DEBUG | True |
| TEMPLATE_DIRS | ('/web/sites/thingamaweb.com/tweetpaste/templates/',
'/web/sites/thingamaweb.com/templates/') |
| TEMPLATE_LOADERS | ('django.template.loaders.filesystem.load_template_source',
'django.template.loaders.app_directories.load_template_source') |
| TEMPLATE_STRING_IF_INVALID | '' |
| TEST_DATABASE_CHARSET | None |
| TEST_DATABASE_COLLATION | None |
| TEST_DATABASE_NAME | None |
| TEST_RUNNER | 'django.test.simple.DjangoTestSuiteRunner' |
| THOUSAND_SEPARATOR | ',' |
| TIME_FORMAT | 'P' |
| TIME_INPUT_FORMATS | ('%H:%M:%S', '%H:%M') |
| TIME_ZONE | 'Europe/London' |
| TRANSACTIONS_MANAGED | False |
| TWEET_REGEX | '^(http(s)?://)?(www\.)?twitter\.com/(?P<username>(\w*))/status(es)?/(?P<id>(\d*))(/)?$' |
| TWITTER_BOT_PASSWORD | '********************' |
| TWITTER_BOT_USERNAME | 'tweetpastebot' |
| TWITTER_PASSWORD | '********************' |
| TWITTER_USERNAME | 'tweetpaste' |
| URL_VALIDATOR_USER_AGENT | 'Django/1.3 pre-alpha (http://www.djangoproject.com)' |
| USE_ETAGS | False |
| USE_I18N | True |
| USE_L10N | False |
| USE_THOUSAND_SEPARATOR | False |
| YEAR_MONTH_FORMAT | 'F Y' |
You're seeing this error because you have DEBUG = True in your
Django settings file. Change that to False, and Django will
display a standard 500 page.
When I aired this view, Pete Ashton came back with a good point (above). And I think that's certainly true when starting out on a new social network. You've got to build up your base from the people you already know and whose thoughts you think you'd enjoy. A thought echoed by Martin:
TemplateSyntaxError at /api/gethtml/
Caught DatabaseError while rendering: (144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed")
| Request Method: | GET |
|---|---|
| Request URL: | http://tweetpaste.thingamaweb.com/api/gethtml/?iframe_width=354&id=10239175359 |
| Django Version: | 1.3 pre-alpha |
| Exception Type: | TemplateSyntaxError |
| Exception Value: | Caught DatabaseError while rendering: (144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed") |
| Exception Location: | /usr/lib/pymodules/python2.6/MySQLdb/connections.py in defaulterrorhandler, line 35 |
| Python Executable: | /usr/bin/python |
| Python Version: | 2.6.4 |
| Python Path: | ['/web/sites/thingamaweb.com/', '/usr/local/lib/python2.6/dist-packages/elementtree-1.2.7_20070827_preview-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/lxml-2.2.4-py2.6-linux-i686.egg', '/usr/local/lib/python2.6/dist-packages/python_twitter-0.6-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/simplejson-2.0.9-py2.6-linux-i686.egg', '/usr/local/lib/python2.6/dist-packages/recaptcha_client-1.0.5-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Markdown-2.0.3-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/django_tracking-0.2.7-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/geopy-0.94-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Whoosh-0.3.18-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/mutagen-1.19-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/GChartWrapper-0.9-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Trac-0.12-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/Genshi-0.6-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/flickrapi-1.4.2-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/django_debug_toolbar-0.8.3-py2.6.egg', '/usr/local/lib/python2.6/dist-packages/sorl_thumbnail-3.2.5-py2.6.egg', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/pymodules/python2.6', '/usr/local/lib/python2.6/dist-packages'] |
| Server time: | Sat, 31 Jul 2010 14:32:40 +0100 |
Template error
In template <unknown source>, error at line 1
Caught DatabaseError while rendering: (144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed")
| 1 | <iframe name="tp{{ pasting.id }}" id="tp{{ pasting.id }}" width="{{ pasting.iframe_width }}" height="{{ pasting.iframe_height }}" frameborder="0" src="http://{{ site.domain }}{{ pasting.get_iframe_url }}" style="overflow: hidden; display: block; width: {{ pasting.iframe_width }}px; height: {{ pasting.iframe_height }}px;"><p><a href="http://{{ site.domain }}{{ pasting.get_iframe_url }}" target="_blank">View {{ pasting.tweet.author.username }}’s tweet</a></p></iframe> |
|---|
Traceback Switch to copy-and-paste view
-
/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.pyinget_response- # Apply view middleware
- for middleware_method in self._view_middleware:
- response = middleware_method(request, callback, callback_args, callback_kwargs)
- if response:
- return response
- try:
- response = callback(request, *callback_args, **callback_kwargs) ...
- except Exception, e:
- # If the view raised an exception, run it through exception
- # middleware, and if the exception middleware returns a
- # response, use that. Otherwise, reraise the exception.
- for middleware_method in self._exception_middleware:
- response = middleware_method(request, e)
Variable Value callback <function get_html at 0xb86ae87c>callback_args ()callback_kwargs {}e TemplateSyntaxError(u'Caught DatabaseError while rendering: (144, "Table \'./thingamaweb/tweets_twitterer\' is marked as crashed and last (automatic?) repair failed")',)exceptions <module 'django.core.exceptions' from '/usr/local/lib/python2.6/dist-packages/django/core/exceptions.pyc'>middleware_method <bound method AuthenticationMiddleware.process_request of <django.contrib.auth.middleware.AuthenticationMiddleware object at 0xb833e48c>>receivers [(<function _rollback_on_exception at 0xb83e9cdc>, None)]request <WSGIRequest GET:<QueryDict: {u'iframe_width': [u'354'], u'id': [u'10239175359']}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'DOCUMENT_ROOT': '/var/www', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_HOST': 'tweetpaste.thingamaweb.com', 'HTTP_USER_AGENT': 'Python-urllib/1.17', 'PATH': '/usr/local/bin:/usr/bin:/bin', 'PATH_INFO': u'/api/gethtml/', 'PATH_TRANSLATED': '/web/sites/thingamaweb.com/tweetpaste.wsgi/api/gethtml/', 'QUERY_STRING': 'iframe_width=354&id=10239175359', 'REMOTE_ADDR': '89.16.175.177', 'REMOTE_PORT': '59387', 'REQUEST_METHOD': 'GET', 'REQUEST_URI': '/api/gethtml/?iframe_width=354&id=10239175359', 'SCRIPT_FILENAME': '/web/sites/thingamaweb.com/tweetpaste.wsgi', 'SCRIPT_NAME': u'', 'SERVER_ADDR': '89.16.175.177', 'SERVER_ADMIN': '[no address given]', 'SERVER_NAME': 'tweetpaste.thingamaweb.com', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SIGNATURE': '<address>Apache/2.2.12 (Ubuntu) Server at tweetpaste.thingamaweb.com Port 80</address> ', 'SERVER_SOFTWARE': 'Apache/2.2.12 (Ubuntu)', 'mod_wsgi.application_group': 'tweetpaste.thingamaweb.com|', 'mod_wsgi.callable_object': 'application', 'mod_wsgi.listener_host': '', 'mod_wsgi.listener_port': '80', 'mod_wsgi.process_group': 'tweetpaste', 'mod_wsgi.reload_mechanism': '1', 'mod_wsgi.script_reloading': '1', 'mod_wsgi.version': (2, 5), 'wsgi.errors': <mod_wsgi.Log object at 0xb8895848>, 'wsgi.file_wrapper': <built-in method file_wrapper of mod_wsgi.Adapter object at 0xb86fc4a0>, 'wsgi.input': <mod_wsgi.Input object at 0xb86c2908>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>resolver <RegexURLResolver tweetpaste.urls (None:None) ^/>response Noneself <django.core.handlers.wsgi.WSGIHandler object at 0xb801016c>settings <django.conf.LazySettings object at 0xb81cd34c>urlconf 'tweetpaste.urls'urlresolvers <module 'django.core.urlresolvers' from '/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.pyc'> -
/web/sites/thingamaweb.com/tweetpaste/tweets/views.pyinget_html- include_padding = include_padding,
- show_username = show_username,
- show_source = show_source,
- posted_via_api = True
- )
- return HttpResponse(
- content = pasting.get_javascript(), ...
- mimetype = 'text/plain'
- )
- else:
- raise Http404('No tweet found with ID ' + str(id))
Variable Value iframe_height 200iframe_width 354include_padding Truepasting <Pasting: 10239175359>request <WSGIRequest GET:<QueryDict: {u'iframe_width': [u'354'], u'id': [u'10239175359']}>, POST:<QueryDict: {}>, COOKIES:{}, META:{'DOCUMENT_ROOT': '/var/www', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_HOST': 'tweetpaste.thingamaweb.com', 'HTTP_USER_AGENT': 'Python-urllib/1.17', 'PATH': '/usr/local/bin:/usr/bin:/bin', 'PATH_INFO': u'/api/gethtml/', 'PATH_TRANSLATED': '/web/sites/thingamaweb.com/tweetpaste.wsgi/api/gethtml/', 'QUERY_STRING': 'iframe_width=354&id=10239175359', 'REMOTE_ADDR': '89.16.175.177', 'REMOTE_PORT': '59387', 'REQUEST_METHOD': 'GET', 'REQUEST_URI': '/api/gethtml/?iframe_width=354&id=10239175359', 'SCRIPT_FILENAME': '/web/sites/thingamaweb.com/tweetpaste.wsgi', 'SCRIPT_NAME': u'', 'SERVER_ADDR': '89.16.175.177', 'SERVER_ADMIN': '[no address given]', 'SERVER_NAME': 'tweetpaste.thingamaweb.com', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.0', 'SERVER_SIGNATURE': '<address>Apache/2.2.12 (Ubuntu) Server at tweetpaste.thingamaweb.com Port 80</address> ', 'SERVER_SOFTWARE': 'Apache/2.2.12 (Ubuntu)', 'mod_wsgi.application_group': 'tweetpaste.thingamaweb.com|', 'mod_wsgi.callable_object': 'application', 'mod_wsgi.listener_host': '', 'mod_wsgi.listener_port': '80', 'mod_wsgi.process_group': 'tweetpaste', 'mod_wsgi.reload_mechanism': '1', 'mod_wsgi.script_reloading': '1', 'mod_wsgi.version': (2, 5), 'wsgi.errors': <mod_wsgi.Log object at 0xb8895848>, 'wsgi.file_wrapper': <built-in method file_wrapper of mod_wsgi.Adapter object at 0xb86fc4a0>, 'wsgi.input': <mod_wsgi.Input object at 0xb86c2908>, 'wsgi.multiprocess': True, 'wsgi.multithread': False, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 0)}>show_background Trueshow_source Trueshow_username Truetweet <Tweet: 10239175359>tweet_id 10239175359L -
/web/sites/thingamaweb.com/tweetpaste/tweets/models.pyinget_javascript- def get_javascript(self):
- html = '<script type="text/javascript" src="http://{{ site.domain }}{{ url }}"></script><noscript>{{ code }}</noscript>'
- context = Context(
- {
- 'url': reverse('tweetpaste.tweets.views.iframe_js', args = [self.id]),
- 'site': Site.objects.get(pk = settings.SITE_ID),
- 'code': self.get_iframe_code() ...
- }
- )
- template = Template(html)
- return template.render(context)
Variable Value html '<script type="text/javascript" src="http://{{ site.domain }}{{ url }}"></script><noscript>{{ code }}</noscript>'self <Pasting: 10239175359> -
/web/sites/thingamaweb.com/tweetpaste/tweets/models.pyinget_iframe_code- {
- 'pasting': self,
- 'site': Site.objects.get(pk = settings.SITE_ID)
- }
- )
- template = Template(html)
- return template.render(context) ...
- def get_shortcode(self):
- params = {}
- if self.iframe_width <> settings.IFRAME_WIDTH:
- params['iframe_width'] = self.iframe_width
Variable Value context [{'pasting': <Pasting: 10239175359>, 'site': <Site: tweetpaste.thingamaweb.com>}]html '<iframe name="tp{{ pasting.id }}" id="tp{{ pasting.id }}" width="{{ pasting.iframe_width }}" height="{{ pasting.iframe_height }}" frameborder="0" src="http://{{ site.domain }}{{ pasting.get_iframe_url }}" style="overflow: hidden; display: block; width: {{ pasting.iframe_width }}px; height: {{ pasting.iframe_height }}px;"><p><a href="http://{{ site.domain }}{{ pasting.get_iframe_url }}" target="_blank">View {{ pasting.tweet.author.username }}’s tweet</a></p></iframe>'self <Pasting: 10239175359>template <django.template.Template object at 0xb88755ac> -
/usr/local/lib/python2.6/dist-packages/django/template/__init__.pyinrender- def _render(self, context):
- return self.nodelist.render(context)
- def render(self, context):
- "Display stage -- can be called many times"
- context.render_context.push()
- try:
- return self._render(context) ...
- finally:
- context.render_context.pop()
- def compile_string(template_string, origin):
- "Compiles template_string into NodeList ready for rendering"
- if settings.TEMPLATE_DEBUG:
Variable Value context [{'pasting': <Pasting: 10239175359>, 'site': <Site: tweetpaste.thingamaweb.com>}]self <django.template.Template object at 0xb88755ac> -
/usr/local/lib/python2.6/dist-packages/django/template/__init__.pyin_render- def __iter__(self):
- for node in self.nodelist:
- for subnode in node:
- yield subnode
- def _render(self, context):
- return self.nodelist.render(context) ...
- def render(self, context):
- "Display stage -- can be called many times"
- context.render_context.push()
- try:
- return self._render(context)
Variable Value context [{'pasting': <Pasting: 10239175359>, 'site': <Site: tweetpaste.thingamaweb.com>}]self <django.template.Template object at 0xb88755ac> -
/usr/local/lib/python2.6/dist-packages/django/template/__init__.pyinrender- # extend_nodelist().
- contains_nontext = False
- def render(self, context):
- bits = []
- for node in self:
- if isinstance(node, Node):
- bits.append(self.render_node(node, context)) ...
- else:
- bits.append(node)
- return mark_safe(''.join([force_unicode(b) for b in bits]))
- def get_nodes_by_type(self, nodetype):
- "Return a list of all nodes of the given type"
Variable Value bits [u'<iframe name="tp', u'158139', u'" id="tp', u'158139', u'" width="', u'354', u'" height="', u'200', u'" frameborder="0" src="http://', u'tweetpaste.thingamaweb.com', u'/embed/158139/', u'" style="overflow: hidden; display: block; width: ', u'354', u'px; height: ', u'200', u'px;"><p><a href="http://', u'tweetpaste.thingamaweb.com', u'/embed/158139/', u'" target="_blank">View ']context [{'pasting': <Pasting: 10239175359>, 'site': <Site: tweetpaste.thingamaweb.com>}]node <Variable Node: pasting.tweet.author.username>self [<Text Node: '<iframe name="tp'>, <Variable Node: pasting.id>, <Text Node: '" id="tp'>, <Variable Node: pasting.id>, <Text Node: '" width="'>, <Variable Node: pasting.iframe_width>, <Text Node: '" height="'>, <Variable Node: pasting.iframe_height>, <Text Node: '" frameborder="0" src="ht'>, <Variable Node: site.domain>, <Variable Node: pasting.get_iframe_url>, <Text Node: '" style="overflow: hidden'>, <Variable Node: pasting.iframe_width>, <Text Node: 'px; height: '>, <Variable Node: pasting.iframe_height>, <Text Node: 'px;"><p><a href="http://'>, <Variable Node: site.domain>, <Variable Node: pasting.get_iframe_url>, <Text Node: '" target="_blank">View '>, <Variable Node: pasting.tweet.author.username>, <Text Node: '’s tweet</a></p></i'>] -
/usr/local/lib/python2.6/dist-packages/django/template/debug.pyinrender_node- def compile_function_error(self, token, e):
- if not hasattr(e, 'source'):
- e.source = token.source
- class DebugNodeList(NodeList):
- def render_node(self, node, context):
- try:
- result = node.render(context) ...
- except TemplateSyntaxError, e:
- if not hasattr(e, 'source'):
- e.source = node.source
- raise
- except Exception, e:
- from sys import exc_info
Variable Value context [{'pasting': <Pasting: 10239175359>, 'site': <Site: tweetpaste.thingamaweb.com>}]e DatabaseError(144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed")exc_info <built-in function exc_info>node <Variable Node: pasting.tweet.author.username>self [<Text Node: '<iframe name="tp'>, <Variable Node: pasting.id>, <Text Node: '" id="tp'>, <Variable Node: pasting.id>, <Text Node: '" width="'>, <Variable Node: pasting.iframe_width>, <Text Node: '" height="'>, <Variable Node: pasting.iframe_height>, <Text Node: '" frameborder="0" src="ht'>, <Variable Node: site.domain>, <Variable Node: pasting.get_iframe_url>, <Text Node: '" style="overflow: hidden'>, <Variable Node: pasting.iframe_width>, <Text Node: 'px; height: '>, <Variable Node: pasting.iframe_height>, <Text Node: 'px;"><p><a href="http://'>, <Variable Node: site.domain>, <Variable Node: pasting.get_iframe_url>, <Text Node: '" target="_blank">View '>, <Variable Node: pasting.tweet.author.username>, <Text Node: '’s tweet</a></p></i'>]wrapped TemplateSyntaxError(u'Caught DatabaseError while rendering: (144, "Table \'./thingamaweb/tweets_twitterer\' is marked as crashed and last (automatic?) repair failed")',) -
/usr/local/lib/python2.6/dist-packages/django/template/debug.pyinrender- wrapped.exc_info = exc_info()
- raise wrapped, None, wrapped.exc_info[2]
- return result
- class DebugVariableNode(VariableNode):
- def render(self, context):
- try:
- output = self.filter_expression.resolve(context) ...
- output = localize(output)
- output = force_unicode(output)
- except TemplateSyntaxError, e:
- if not hasattr(e, 'source'):
- e.source = self.source
- raise
Variable Value context [{'pasting': <Pasting: 10239175359>, 'site': <Site: tweetpaste.thingamaweb.com>}]self <Variable Node: pasting.tweet.author.username> -
/usr/local/lib/python2.6/dist-packages/django/template/__init__.pyinresolve- self.filters = filters
- self.var = var_obj
- def resolve(self, context, ignore_failures=False):
- if isinstance(self.var, Variable):
- try:
- obj = self.var.resolve(context) ...
- except VariableDoesNotExist:
- if ignore_failures:
- obj = None
- else:
- if settings.TEMPLATE_STRING_IF_INVALID:
- global invalid_var_format_string
Variable Value context [{'pasting': <Pasting: 10239175359>, 'site': <Site: tweetpaste.thingamaweb.com>}]ignore_failures Falseself <django.template.FilterExpression object at 0xb87969cc> -
/usr/local/lib/python2.6/dist-packages/django/template/__init__.pyinresolve- raise TemplateSyntaxError("Variables and attributes may not begin with underscores: '%s'" % var)
- self.lookups = tuple(var.split(VARIABLE_ATTRIBUTE_SEPARATOR))
- def resolve(self, context):
- """Resolve this variable against a given context."""
- if self.lookups is not None:
- # We're dealing with a variable that needs to be resolved
- value = self._resolve_lookup(context) ...
- else:
- # We're dealing with a literal, so it's already been "resolved"
- value = self.literal
- if self.translate:
- return _(value)
- return value
Variable Value context [{'pasting': <Pasting: 10239175359>, 'site': <Site: tweetpaste.thingamaweb.com>}]self <Variable: u'pasting.tweet.author.username'> -
/usr/local/lib/python2.6/dist-packages/django/template/__init__.pyin_resolve_lookup- """
- current = context
- for bit in self.lookups:
- try: # dictionary lookup
- current = current[bit]
- except (TypeError, AttributeError, KeyError):
- try: # attribute lookup
- current = getattr(current, bit) ...
- if callable(current):
- if getattr(current, 'alters_data', False):
- current = settings.TEMPLATE_STRING_IF_INVALID
- else:
- try: # method call (assuming no args required)
- current = current()
Variable Value bit u'author'context [{'pasting': <Pasting: 10239175359>, 'site': <Site: tweetpaste.thingamaweb.com>}]current <Tweet: 10239175359>e DatabaseError(144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed")self <Variable: u'pasting.tweet.author.username'> -
/usr/local/lib/python2.6/dist-packages/django/db/models/fields/related.pyin__get__- # If the related manager indicates that it should be used for
- # related fields, respect that.
- rel_mgr = self.field.rel.to._default_manager
- db = router.db_for_read(self.field.rel.to, instance=instance)
- if getattr(rel_mgr, 'use_for_related_fields', False):
- rel_obj = rel_mgr.using(db).get(**params)
- else:
- rel_obj = QuerySet(self.field.rel.to).using(db).get(**params) ...
- setattr(instance, cache_name, rel_obj)
- return rel_obj
- def __set__(self, instance, value):
- if instance is None:
- raise AttributeError("%s must be accessed via instance" % self._field.name)
Variable Value cache_name '_author_cache'db 'default'instance <Tweet: 10239175359>instance_type <class 'tweetpaste.tweets.models.Tweet'>other_field <django.db.models.fields.AutoField object at 0xb869e38c>params {'id__exact': 1875L}rel_mgr <django.db.models.manager.Manager object at 0xb869e3ac>self <django.db.models.fields.related.ReverseSingleRelatedObjectDescriptor object at 0xb869e8ec>val 1875L -
/usr/local/lib/python2.6/dist-packages/django/db/models/query.pyinget- """
- Performs the query and returns a single object matching the given
- keyword arguments.
- """
- clone = self.filter(*args, **kwargs)
- if self.query.can_filter():
- clone = clone.order_by()
- num = len(clone) ...
- if num == 1:
- return clone._result_cache[0]
- if not num:
- raise self.model.DoesNotExist("%s matching query does not exist."
- % self.model._meta.object_name)
- raise self.model.MultipleObjectsReturned("get() returned more than one %s -- it returned %s! Lookup parameters were %s"
Variable Value args ()clone Error in formatting: (144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed")kwargs {'id__exact': 1875L}self Error in formatting: (144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed") -
/usr/local/lib/python2.6/dist-packages/django/db/models/query.pyin__len__- # Since __len__ is called quite frequently (for example, as part of
- # list(qs), we make some effort here to be as efficient as possible
- # whilst not messing up any existing iterators against the QuerySet.
- if self._result_cache is None:
- if self._iter:
- self._result_cache = list(self._iter)
- else:
- self._result_cache = list(self.iterator()) ...
- elif self._iter:
- self._result_cache.extend(list(self._iter))
- return len(self._result_cache)
- def __iter__(self):
- if self._result_cache is None:
Variable Value self Error in formatting: (144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed") -
/usr/local/lib/python2.6/dist-packages/django/db/models/query.pyiniterator- if field.name not in load_fields:
- skip.add(field.attname)
- else:
- init_list.append(field.attname)
- model_cls = deferred_class_factory(self.model, skip)
- compiler = self.query.get_compiler(using=self.db)
- for row in compiler.results_iter(): ...
- if fill_cache:
- obj, _ = get_cached_row(self.model, row,
- index_start, using=self.db, max_depth=max_depth,
- requested=requested, offset=len(aggregate_select),
- only_load=only_load)
- else:
Variable Value aggregate_select []aggregate_start 8compiler <django.db.backends.mysql.compiler.SQLCompiler object at 0xb8792b4c>extra_select []fields [<django.db.models.fields.AutoField object at 0xb869e38c>, <django.db.models.fields.PositiveIntegerField object at 0xb864eb8c>, <django.db.models.fields.CharField object at 0xb864ec0c>, <django.db.models.fields.CharField object at 0xb864eccc>, <django.db.models.fields.URLField object at 0xb865478c>, <django.db.models.fields.CharField object at 0xb868d60c>, <django.db.models.fields.URLField object at 0xb868d66c>, <django.db.models.fields.DateTimeField object at 0xb868d7cc>]fill_cache Falseindex_start 0load_fields []max_depth 5only_load {}pk_idx 0requested Noneself Error in formatting: (144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed")skip None -
/usr/local/lib/python2.6/dist-packages/django/db/models/sql/compiler.pyinresults_iter- def results_iter(self):
- """
- Returns an iterator over the results from executing this query.
- """
- resolve_columns = hasattr(self, 'resolve_columns')
- fields = None
- for rows in self.execute_sql(MULTI): ...
- for row in rows:
- if resolve_columns:
- if fields is None:
- # We only set this up here because
- # related_select_fields isn't populated until
- # execute_sql() has been called.
Variable Value fields Noneresolve_columns Trueself <django.db.backends.mysql.compiler.SQLCompiler object at 0xb8792b4c> -
/usr/local/lib/python2.6/dist-packages/django/db/models/sql/compiler.pyinexecute_sql- except EmptyResultSet:
- if result_type == MULTI:
- return empty_iter()
- else:
- return
- cursor = self.connection.cursor()
- cursor.execute(sql, params) ...
- if not result_type:
- return cursor
- if result_type == SINGLE:
- if self.query.ordering_aliases:
- return cursor.fetchone()[:-len(self.query.ordering_aliases)]
Variable Value cursor <django.db.backends.util.CursorDebugWrapper object at 0xb879260c>params (1875,)result_type 'multi'self <django.db.backends.mysql.compiler.SQLCompiler object at 0xb8792b4c>sql 'SELECT `tweets_twitterer`.`id`, `tweets_twitterer`.`user_id`, `tweets_twitterer`.`username`, `tweets_twitterer`.`display_name`, `tweets_twitterer`.`image_url`, `tweets_twitterer`.`background_colour`, `tweets_twitterer`.`url`, `tweets_twitterer`.`date_updated` FROM `tweets_twitterer` WHERE `tweets_twitterer`.`id` = %s ' -
/usr/local/lib/python2.6/dist-packages/django/db/backends/util.pyinexecute- def __init__(self, cursor, db):
- self.cursor = cursor
- self.db = db # Instance of a BaseDatabaseWrapper subclass
- def execute(self, sql, params=()):
- start = time()
- try:
- return self.cursor.execute(sql, params) ...
- finally:
- stop = time()
- sql = self.db.ops.last_executed_query(self.cursor, sql, params)
- self.db.queries.append({
- 'sql': sql,
- 'time': "%.3f" % (stop - start),
Variable Value params (1875,)self <django.db.backends.util.CursorDebugWrapper object at 0xb879260c>sql u'SELECT `tweets_twitterer`.`id`, `tweets_twitterer`.`user_id`, `tweets_twitterer`.`username`, `tweets_twitterer`.`display_name`, `tweets_twitterer`.`image_url`, `tweets_twitterer`.`background_colour`, `tweets_twitterer`.`url`, `tweets_twitterer`.`date_updated` FROM `tweets_twitterer` WHERE `tweets_twitterer`.`id` = 1875 'start 1280583160.1821799stop 1280583160.1826589 -
/usr/local/lib/python2.6/dist-packages/django/db/backends/mysql/base.pyinexecute- codes_for_integrityerror = (1048,)
- def __init__(self, cursor):
- self.cursor = cursor
- def execute(self, query, args=None):
- try:
- return self.cursor.execute(query, args) ...
- except Database.IntegrityError, e:
- raise utils.IntegrityError, utils.IntegrityError(*tuple(e)), sys.exc_info()[2]
- except Database.OperationalError, e:
- # Map some error codes to IntegrityError, since they seem to be
- # misclassified and Django would prefer the more logical place.
- if e[0] in self.codes_for_integrityerror:
Variable Value args (1875,)e InternalError(144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed")query 'SELECT `tweets_twitterer`.`id`, `tweets_twitterer`.`user_id`, `tweets_twitterer`.`username`, `tweets_twitterer`.`display_name`, `tweets_twitterer`.`image_url`, `tweets_twitterer`.`background_colour`, `tweets_twitterer`.`url`, `tweets_twitterer`.`date_updated` FROM `tweets_twitterer` WHERE `tweets_twitterer`.`id` = %s 'self <django.db.backends.mysql.base.CursorWrapper object at 0xb87929cc> -
/usr/lib/pymodules/python2.6/MySQLdb/cursors.pyinexecute- else:
- self.messages.append((TypeError, m))
- self.errorhandler(self, TypeError, m)
- except:
- exc, value, tb = exc_info()
- del tb
- self.messages.append((exc, value))
- self.errorhandler(self, exc, value) ...
- self._executed = query
- if not self._defer_warnings: self._warning_check()
- return r
- def executemany(self, query, args):
Variable Value ListType <type 'list'>TupleType <type 'tuple'>args (1875,)charset 'utf8'db <weakproxy at 0xb887184c to Connection at 0xb874d7bc>exc <class '_mysql_exceptions.InternalError'>exc_info <built-in function exc_info>query 'SELECT `tweets_twitterer`.`id`, `tweets_twitterer`.`user_id`, `tweets_twitterer`.`username`, `tweets_twitterer`.`display_name`, `tweets_twitterer`.`image_url`, `tweets_twitterer`.`background_colour`, `tweets_twitterer`.`url`, `tweets_twitterer`.`date_updated` FROM `tweets_twitterer` WHERE `tweets_twitterer`.`id` = 1875 'self <MySQLdb.cursors.Cursor object at 0xb879212c>value InternalError(144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed") -
/usr/lib/pymodules/python2.6/MySQLdb/connections.pyindefaulterrorhandler- error = errorclass, errorvalue
- if cursor:
- cursor.messages.append(error)
- else:
- connection.messages.append(error)
- del cursor
- del connection
- raise errorclass, errorvalue ...
- class Connection(_mysql.connection):
- """MySQL Database Connection Object"""
Variable Value error (<class '_mysql_exceptions.InternalError'>, InternalError(144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed"))errorclass <class '_mysql_exceptions.InternalError'>errorvalue InternalError(144, "Table './thingamaweb/tweets_twitterer' is marked as crashed and last (automatic?) repair failed")
Request information
GET
| Variable | Value |
|---|---|
| iframe_width | u'354' |
| id | u'10239175359' |
POST
No POST data
FILES
No FILES data
COOKIES
No cookie data
META
| Variable | Value |
|---|---|
| DOCUMENT_ROOT | '/var/www' |
| GATEWAY_INTERFACE | 'CGI/1.1' |
| HTTP_HOST | 'tweetpaste.thingamaweb.com' |
| HTTP_USER_AGENT | 'Python-urllib/1.17' |
| PATH | '/usr/local/bin:/usr/bin:/bin' |
| PATH_INFO | u'/api/gethtml/' |
| PATH_TRANSLATED | '/web/sites/thingamaweb.com/tweetpaste.wsgi/api/gethtml/' |
| QUERY_STRING | 'iframe_width=354&id=10239175359' |
| REMOTE_ADDR | '89.16.175.177' |
| REMOTE_PORT | '59387' |
| REQUEST_METHOD | 'GET' |
| REQUEST_URI | '/api/gethtml/?iframe_width=354&id=10239175359' |
| SCRIPT_FILENAME | '/web/sites/thingamaweb.com/tweetpaste.wsgi' |
| SCRIPT_NAME | u'' |
| SERVER_ADDR | '89.16.175.177' |
| SERVER_ADMIN | '[no address given]' |
| SERVER_NAME | 'tweetpaste.thingamaweb.com' |
| SERVER_PORT | '80' |
| SERVER_PROTOCOL | 'HTTP/1.0' |
| SERVER_SIGNATURE | '<address>Apache/2.2.12 (Ubuntu) Server at tweetpaste.thingamaweb.com Port 80</address>
' |
| SERVER_SOFTWARE | 'Apache/2.2.12 (Ubuntu)' |
| mod_wsgi.application_group | 'tweetpaste.thingamaweb.com|' |
| mod_wsgi.callable_object | 'application' |
| mod_wsgi.listener_host | '' |
| mod_wsgi.listener_port | '80' |
| mod_wsgi.process_group | 'tweetpaste' |
| mod_wsgi.reload_mechanism | '1' |
| mod_wsgi.script_reloading | '1' |
| mod_wsgi.version | (2, 5) |
| wsgi.errors | <mod_wsgi.Log object at 0xb8895848> |
| wsgi.file_wrapper | <built-in method file_wrapper of mod_wsgi.Adapter object at 0xb86fc4a0> |
| wsgi.input | <mod_wsgi.Input object at 0xb86c2908> |
| wsgi.multiprocess | True |
| wsgi.multithread | False |
| wsgi.run_once | False |
| wsgi.url_scheme | 'http' |
| wsgi.version | (1, 0) |
Settings
Using settings module tweetpaste.settings
| Setting | Value |
|---|---|
| ABSOLUTE_URL_OVERRIDES | {} |
| ADMINS | (('Mark Steadman', 'marksteadman@me.com'),) |
| ADMIN_FOR | () |
| ADMIN_MEDIA_PREFIX | '/media/' |
| ALLOWED_INCLUDE_ROOTS | () |
| APPEND_SLASH | True |
| AUTHENTICATION_BACKENDS | ('django.contrib.auth.backends.ModelBackend',) |
| BANNED_IPS | () |
| BITLY_API_KEY | 'R_2ad0cc5f01036b6f4f07e5542aa7a833' |
| BITLY_USERNAME | 'tweetpastebot' |
| CACHE_BACKEND | 'locmem://' |
| CACHE_MIDDLEWARE_KEY_PREFIX | '' |
| CACHE_MIDDLEWARE_SECONDS | 600 |
| COMMENTS_ALLOW_PROFANITIES | False |
| COMMENTS_BANNED_USERS_GROUP | None |
| COMMENTS_FIRST_FEW | 0 |
| COMMENTS_MODERATORS_GROUP | None |
| COMMENTS_SKETCHY_USERS_GROUP | None |
| CSRF_COOKIE_DOMAIN | None |
| CSRF_COOKIE_NAME | 'csrftoken' |
| CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
| DATABASES | {'default': {'ENGINE': 'django.db.backends.mysql',
'HOST': '',
'NAME': 'thingamaweb',
'OPTIONS': {},
'PASSWORD': '********************',
'PORT': '',
'TEST_CHARSET': None,
'TEST_COLLATION': None,
'TEST_MIRROR': None,
'TEST_NAME': None,
'TIME_ZONE': 'Europe/London',
'USER': 'thingamaweb'}} |
| DATABASE_ENGINE | 'mysql' |
| DATABASE_HOST | '' |
| DATABASE_NAME | 'thingamaweb' |
| DATABASE_OPTIONS | {} |
| DATABASE_PASSWORD | '********************' |
| DATABASE_PORT | '' |
| DATABASE_ROUTERS | [] |
| DATABASE_USER | 'thingamaweb' |
| DATETIME_FORMAT | 'N j, Y, P' |
| DATETIME_INPUT_FORMATS | ('%Y-%m-%d %H:%M:%S',
'%Y-%m-%d %H:%M',
'%Y-%m-%d',
'%m/%d/%Y %H:%M:%S',
'%m/%d/%Y %H:%M',
'%m/%d/%Y',
'%m/%d/%y %H:%M:%S',
'%m/%d/%y %H:%M',
'%m/%d/%y') |
| DATE_FORMAT | 'N j, Y' |
| DATE_INPUT_FORMATS | ('%Y-%m-%d',
'%m/%d/%Y',
'%m/%d/%y',
'%b %d %Y',
'%b %d, %Y',
'%d %b %Y',
'%d %b, %Y',
'%B %d %Y',
'%B %d, %Y',
'%d %B %Y',
'%d %B, %Y') |
| DEBUG | True |
| DEBUG_PROPAGATE_EXCEPTIONS | False |
| DECIMAL_SEPARATOR | '.' |
| DEFAULT_CHARSET | 'utf-8' |
| DEFAULT_CONTENT_TYPE | 'text/html' |
| DEFAULT_FILE_STORAGE | 'django.core.files.storage.FileSystemStorage' |
| DEFAULT_FROM_EMAIL | 'info@thingamaweb.com' |
| DEFAULT_INDEX_TABLESPACE | '' |
| DEFAULT_TABLESPACE | '' |
| DISALLOWED_USER_AGENTS | () |
| EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
| EMAIL_HOST | 'localhost' |
| EMAIL_HOST_PASSWORD | '********************' |
| EMAIL_HOST_USER | '' |
| EMAIL_PORT | 25 |
| EMAIL_SUBJECT_PREFIX | 'TweetPaste: ' |
| EMAIL_USE_TLS | False |
| FILE_CHARSET | 'utf-8' |
| FILE_UPLOAD_HANDLERS | ('django.core.files.uploadhandler.MemoryFileUploadHandler',
'django.core.files.uploadhandler.TemporaryFileUploadHandler') |
| FILE_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
| FILE_UPLOAD_PERMISSIONS | None |
| FILE_UPLOAD_TEMP_DIR | None |
| FIRST_DAY_OF_WEEK | 0 |
| FIXTURE_DIRS | () |
| FORCE_SCRIPT_NAME | None |
| FORMAT_MODULE_PATH | None |
| GOOGLE_ANALYTICS_ACCOUNTS | ['UA-9869007-5'] |
| IFRAME_HEIGHT | 200 |
| IFRAME_WIDTH | 500 |
| IGNORABLE_404_ENDS | ('mail.pl', 'mailform.pl', 'mail.cgi', 'mailform.cgi', 'favicon.ico', '.php') |
| IGNORABLE_404_STARTS | ('/cgi-bin/', '/_vti_bin', '/_vti_inf') |
| INSTALLED_APPS | ['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'tweetpaste.core',
'tweetpaste.tweets',
'djangles.googleanalytics'] |
| INTERNAL_IPS | () |
| LANGUAGES | (('ar', 'Arabic'),
('bg', 'Bulgarian'),
('bn', 'Bengali'),
('bs', 'Bosnian'),
('ca', 'Catalan'),
('cs', 'Czech'),
('cy', 'Welsh'),
('da', 'Danish'),
('de', 'German'),
('el', 'Greek'),
('en', 'English'),
('en-gb', 'British English'),
('es', 'Spanish'),
('es-ar', 'Argentinean Spanish'),
('et', 'Estonian'),
('eu', 'Basque'),
('fa', 'Persian'),
('fi', 'Finnish'),
('fr', 'French'),
('fy-nl', 'Frisian'),
('ga', 'Irish'),
('gl', 'Galician'),
('he', 'Hebrew'),
('hi', 'Hindi'),
('hr', 'Croatian'),
('hu', 'Hungarian'),
('id', 'Indonesian'),
('is', 'Icelandic'),
('it', 'Italian'),
('ja', 'Japanese'),
('ka', 'Georgian'),
('km', 'Khmer'),
('kn', 'Kannada'),
('ko', 'Korean'),
('lt', 'Lithuanian'),
('lv', 'Latvian'),
('mk', 'Macedonian'),
('mn', 'Mongolian'),
('nl', 'Dutch'),
('no', 'Norwegian'),
('nb', 'Norwegian Bokmal'),
('nn', 'Norwegian Nynorsk'),
('pl', 'Polish'),
('pt', 'Portuguese'),
('pt-br', 'Brazilian Portuguese'),
('ro', 'Romanian'),
('ru', 'Russian'),
('sk', 'Slovak'),
('sl', 'Slovenian'),
('sq', 'Albanian'),
('sr', 'Serbian'),
('sr-latn', 'Serbian Latin'),
('sv', 'Swedish'),
('ta', 'Tamil'),
('te', 'Telugu'),
('th', 'Thai'),
('tr', 'Turkish'),
('uk', 'Ukrainian'),
('vi', 'Vietnamese'),
('zh-cn', 'Simplified Chinese'),
('zh-tw', 'Traditional Chinese')) |
| LANGUAGES_BIDI | ('he', 'ar', 'fa') |
| LANGUAGE_CODE | 'en-GB' |
| LANGUAGE_COOKIE_NAME | 'django_language' |
| LOCALE_PATHS | () |
| LOGIN_REDIRECT_URL | '/accounts/profile/' |
| LOGIN_URL | '/accounts/login/' |
| LOGOUT_URL | '/accounts/logout/' |
| MANAGERS | (('Mark Steadman', 'marksteadman@me.com'),) |
| MEDIA_ROOT | '/web/sites/thingamaweb.com/media/' |
| MEDIA_URL | 'http://media.thingamaweb.com/' |
| MESSAGE_STORAGE | 'django.contrib.messages.storage.user_messages.LegacyFallbackStorage' |
| MIDDLEWARE_CLASSES | ('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware') |
| MONTH_DAY_FORMAT | 'F j' |
| NUMBER_GROUPING | 0 |
| PASSWORD_RESET_TIMEOUT_DAYS | '********************' |
| PREPEND_WWW | False |
| PROFANITIES_LIST | '********************' |
| ROOT_URLCONF | 'tweetpaste.urls' |
| SECRET_KEY | '********************' |
| SEND_BROKEN_LINK_EMAILS | False |
| SERVER_EMAIL | 'info@thingamaweb.com' |
| SESSION_COOKIE_AGE | 1209600 |
| SESSION_COOKIE_DOMAIN | None |
| SESSION_COOKIE_NAME | 'sessionid' |
| SESSION_COOKIE_PATH | '/' |
| SESSION_COOKIE_SECURE | False |
| SESSION_ENGINE | 'django.contrib.sessions.backends.db' |
| SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
| SESSION_FILE_PATH | None |
| SESSION_SAVE_EVERY_REQUEST | False |
| SETTINGS_MODULE | 'tweetpaste.settings' |
| SHORT_DATETIME_FORMAT | 'm/d/Y P' |
| SHORT_DATE_FORMAT | 'm/d/Y' |
| SITE_DESCRIPTION | 'Embed tweets into your Website or blog' |
| SITE_ID | 1 |
| SITE_LOGO_URL | 'http://media.thingamaweb.com/tweetpaste/img/logo.jpg' |
| SITE_NAME | 'TweetPaste' |
| TEMPLATE_CONTEXT_PROCESSORS | ('django.core.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.media',
'django.core.context_processors.request',
'tweetpaste.core.context_processors.settings',
'tweetpaste.tweets.context_processors.tweets') |
| TEMPLATE_DEBUG | True |
| TEMPLATE_DIRS | ('/web/sites/thingamaweb.com/tweetpaste/templates/',
'/web/sites/thingamaweb.com/templates/') |
| TEMPLATE_LOADERS | ('django.template.loaders.filesystem.load_template_source',
'django.template.loaders.app_directories.load_template_source') |
| TEMPLATE_STRING_IF_INVALID | '' |
| TEST_DATABASE_CHARSET | None |
| TEST_DATABASE_COLLATION | None |
| TEST_DATABASE_NAME | None |
| TEST_RUNNER | 'django.test.simple.DjangoTestSuiteRunner' |
| THOUSAND_SEPARATOR | ',' |
| TIME_FORMAT | 'P' |
| TIME_INPUT_FORMATS | ('%H:%M:%S', '%H:%M') |
| TIME_ZONE | 'Europe/London' |
| TRANSACTIONS_MANAGED | False |
| TWEET_REGEX | '^(http(s)?://)?(www\.)?twitter\.com/(?P<username>(\w*))/status(es)?/(?P<id>(\d*))(/)?$' |
| TWITTER_BOT_PASSWORD | '********************' |
| TWITTER_BOT_USERNAME | 'tweetpastebot' |
| TWITTER_PASSWORD | '********************' |
| TWITTER_USERNAME | 'tweetpaste' |
| URL_VALIDATOR_USER_AGENT | 'Django/1.3 pre-alpha (http://www.djangoproject.com)' |
| USE_ETAGS | False |
| USE_I18N | True |
| USE_L10N | False |
| USE_THOUSAND_SEPARATOR | False |
| YEAR_MONTH_FORMAT | 'F Y' |
You're seeing this error because you have DEBUG = True in your
Django settings file. Change that to False, and Django will
display a standard 500 page.
But when the number of people who follow you outweighs the number you follow by a ratio of 150:1, isn't it then time to look at a few of those tweets and see if you find them interesting?
OK it's hard when you're being flooded by a surge of incoming emails - or you've turned Twitter's follower notifications off because your'e getting swamped - but from time to time I feel bad because I don't follow many of the people who follow me, so imagine that magnified so many times over.
This doesn't come from a place of "I followed X but X never followed me back". Not at all. Stephen Fry followed me when I followed him, but I've had nothing of any use to say to him; he was just doing what he thought was right, but was probably not in his best interests. And that's the key, it's about one's own interest.
I'm not suggesting One Way to use Twitter so that all the little people get to chat to the Big People [shudder], but I do wonder how nice it would be if some of the people who get stuff out of it, could put back into it. For their own benefits, and for the benefit of their network.
I don't know if things have changed in the last year or two, but I remember that the cheif reason people scoffed at Twitter was because they tried it for a week, failed to follow anyone other than the account they'd seen in the news article they themselves were aping, then left. It's failure to stray outside your comfort zone that can lead to an unsatisfactory time on Twitter, and that's why I think it would be valuable if you had a glance once in a while at your list of followers, to see if the people who've made an investment in you are worth making an investment in, in return. If they're not, pass them by. And do it for your own sake, not because I wrote too many words on a Tuesday evening.
* In fact I know that they haven't changed that much in two years, 'cos Ricky Gervais was party to the same misconception
One comment
urbanfly
March 9 2010, 10:09am
I would like to follow more of the people who follow me, and I have done so in the past, but I really struggle to keep track of conversations & people so need to pull back on the number I'm following.
Leave your comments