605: current transaction is aborted, commands ignored until end of transaction block

pos****@gmai***** (Google Code) (Is this you? Claim this profile.)
Sept. 19, 2008
What steps will reproduce the problem?
1. Click on a diff after a reviewboard upgrade 
What is the expected output? What do you see instead?
The diff is expected.
I get
Environment:

Request Method: GET
Request URL: http://reviewboard.unixwebdev2.....com/r/494/diff/
Django Version: 1.0-beta_1-SVN-unknown
Python Version: 2.4.3
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.markup',
 'django.contrib.sites',
 'django.contrib.sessions',
 'djblets.datagrid',
 'djblets.feedview',
 'djblets.util',
 'djblets.webapi',
 'reviewboard.accounts',
 'reviewboard.admin',
 'reviewboard.diffviewer',
 'reviewboard.iphone',
 'reviewboard.reports',
 'reviewboard.reviews',
 'reviewboard.scmtools',
 'reviewboard.webapi',
 'django_evolution']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.middleware.doc.XViewMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.RemoteUserAuthMiddleware')


Traceback:
File ".../sj//lib/python2.4/site-packages/django/core/handlers/base.py" in
get_response
  86.                 response = callback(request, *callback_args,
**callback_kwargs)
File ".../reviewboard-read-only/reviewboard/accounts/decorators.py" in _check
  23.             return login_required(view_func)(*args, **kwargs)
File ".../installs/reviewboard-read-only/reviewboard/djblets/auth/util.py"
in _checklogin
  45.             return view_func(request, *args, **kwargs)
File ".../installs/reviewboard-read-only/reviewboard/reviews/views.py" in diff
  299.     }, template_name)
File ".../installs/reviewboard-read-only/reviewboard/diffviewer/views.py"
in view_diff
  145.         return exception_traceback(request, e, template_name)
File ".../installs/reviewboard-read-only/reviewboard/diffviewer/views.py"
in exception_traceback
  186.                               RequestContext(request, context))
File ".../sj//lib/python2.4/site-packages/django/template/context.py" in
__init__
  105.             self.update(processor(request))
File
".../sj//lib/python2.4/site-packages/django/core/context_processors.py" in auth
  25.     return {
File ".../sj//lib/python2.4/site-packages/django/contrib/auth/models.py" in
get_and_delete_messages
  272.         for m in self.message_set.all():
File ".../sj//lib/python2.4/site-packages/django/db/models/query.py" in
_result_iter
  176.                 self._fill_cache()
File ".../sj//lib/python2.4/site-packages/django/db/models/query.py" in
_fill_cache
  610.                     self._result_cache.append(self._iter.next())
File ".../sj//lib/python2.4/site-packages/django/db/models/query.py" in
iterator
  266.         for row in self.query.results_iter():
File ".../sj//lib/python2.4/site-packages/django/db/models/sql/query.py" in
results_iter
  199.         for rows in self.execute_sql(MULTI):
File ".../sj//lib/python2.4/site-packages/django/db/models/sql/query.py" in
execute_sql
  1627.         cursor = self.connection.cursor()
File ".../sj//lib/python2.4/site-packages/django/db/backends/__init__.py"
in cursor
  56.         cursor = self._cursor(settings)
File
".../sj//lib/python2.4/site-packages/django/db/backends/postgresql_psycopg2/base.py"
in _cursor
  98.             cursor.execute(init_query)

Exception Type: InternalError at /r/494/diff/
Exception Value: current transaction is aborted, commands ignored until end
of transaction block

instead

What operating system are you using? What browser?
linux rhel5 /firefox

Please provide any additional information below.
#1 pos****@gmai***** (Google Code) (Is this you? Claim this profile.)
It seems as though the evolution fails.


[anewman@unixdeva10:~/reviewboard/reviewboard ]./manage.py evolve              
#----- Evolution for diffviewer
from django_evolution.mutations import *
from django.db import models

MUTATIONS = [
    FakeChangeFieldType('FileDiff', 'diff_base64', '<class
'djblets.util.fields.Base64Field'>'),
    RenameField('FileDiff', 'diff_base64', 'diff', db_column='diff_base64'),
    AddField('FileDiff', 'parent_diff', models.Base64Field, initial='',
db_column='parent_diff_base64')
]
#----------------------
Trial evolution successful.
Run './manage.py evolve --execute' to apply evolution.
#2 pos****@gmai***** (Google Code) (Is this you? Claim this profile.)
Environment:

Request Method: GET
Request URL: http://reviewboard.unixwebdev2.factset.com/r/681/
Django Version: 1.0-beta_1-SVN-unknown
Python Version: 2.4.3
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.markup',
 'django.contrib.sites',
 'django.contrib.sessions',
 'djblets.datagrid',
 'djblets.feedview',
 'djblets.util',
 'djblets.webapi',
 'reviewboard.accounts',
 'reviewboard.admin',
 'reviewboard.diffviewer',
 'reviewboard.iphone',
 'reviewboard.reports',
 'reviewboard.reviews',
 'reviewboard.scmtools',
 'reviewboard.webapi',
 'django_evolution']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.middleware.doc.XViewMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware')


Template error:
In template
/home/user/anewman/reviewboard/reviewboard/templates/reviews/review_detail.html,
error at line 138
   Caught an exception while rendering: column diffviewer_filediff.parent_diff_base64
does not exist

   128 :        <a href="{{comment.screenshot.get_absolute_url}}">{% if
comment.screenshot.caption %}{{comment.screenshot.caption}}{% else
%}{{comment.screenshot.image|basename}}{% endif %}</a>


   129 :       </span>


   130 :       {{comment.image|safe}}


   131 :      </div>


   132 :     </dt>


   133 :     <dd>


   134 :      <pre>{{comment.text|escape}}</pre>


   135 :      {% reply_section review comment "screenshot_comment" "rc" %}


   136 :     </dd>


   137 : {% endfor %}


   138 :  {% for comment in review.ordered_comments %} 


   139 :     <dt>


   140 :      <a name="comment{{comment.id}}"></a>


   141 :      <table class="sidebyside{% ifequal comment.filediff.source_revision
PRE_CREATION %} newfile{% endifequal %}">


   142 :       <colgroup>


   143 :        <col class="line" />


   144 :        <col class="left" />


   145 :        <col class="line" />


   146 :        <col class="right" />


   147 :       </colgroup>


   148 :       <thead>


Traceback:
File
"/home/user/anewman/sj//lib/python2.4/site-packages/django/core/handlers/base.py" in
get_response
  86.                 response = callback(request, *callback_args, **callback_kwargs)
File "/home/user/anewman/reviewboard/reviewboard/accounts/decorators.py" in _check
  25.             return view_func(*args, **kwargs)
File "/home/user/anewman/sj/lib/python/django/views/decorators/cache.py" in
_cache_controlled
  30.             response = viewfunc(request, *args, **kw)
File "/home/user/anewman/reviewboard/reviewboard/reviews/views.py" in review_detail
  114.     return render_to_response(template_name, RequestContext(request, {
File "/home/user/anewman/sj/lib/python/django/shortcuts/__init__.py" in
render_to_response
  18.     return HttpResponse(loader.render_to_string(*args, **kwargs),
**httpresponse_kwargs)
File "/home/user/anewman/sj//lib/python2.4/site-packages/django/template/loader.py"
in render_to_string
  107.     return t.render(context_instance)
File "/home/user/anewman/sj//lib/python2.4/site-packages/django/template/__init__.py"
in render
  176.         return self.nodelist.render(context)
File "/home/user/anewman/sj//lib/python2.4/site-packages/django/template/__init__.py"
in render
  756.                 bits.append(self.render_node(node, context))
File "/home/user/anewman/sj/lib/python/django/template/debug.py" in render_node
  71.             result = node.render(context)
File
"/home/user/anewman/sj//lib/python2.4/site-packages/django/template/loader_tags.py"
in render
  97.         return compiled_parent.render(context)
File "/home/user/anewman/sj//lib/python2.4/site-packages/django/template/__init__.py"
in render
  176.         return self.nodelist.render(context)
File "/home/user/anewman/sj//lib/python2.4/site-packages/django/template/__init__.py"
in render
  756.                 bits.append(self.render_node(node, context))
File "/home/user/anewman/sj/lib/python/django/template/debug.py" in render_node
  71.             result = node.render(context)
File
"/home/user/anewman/sj//lib/python2.4/site-packages/django/template/loader_tags.py"
in render
  24.         result = self.nodelist.render(context)
File "/home/user/anewman/sj//lib/python2.4/site-packages/django/template/__init__.py"
in render
  756.                 bits.append(self.render_node(node, context))
File "/home/user/anewman/sj/lib/python/django/template/debug.py" in render_node
  71.             result = node.render(context)
File
"/home/user/anewman/sj//lib/python2.4/site-packages/django/template/defaulttags.py"
in render
  148.                 nodelist.append(node.render(context))
File "/home/user/anewman/reviewboard/reviewboard/djblets/util/decorators.py" in render
  151.             return self.tag_func(context, self.nodelist, *args)
File
"/home/user/anewman/reviewboard/reviewboard/djblets/util/templatetags/djblets_deco.py" in
box
  42.     return render_to_string('deco/box.html', {
File "/home/user/anewman/sj//lib/python2.4/site-packages/django/template/__init__.py"
in render
  756.                 bits.append(self.render_node(node, context))
File "/home/user/anewman/sj/lib/python/django/template/debug.py" in render_node
  71.             result = node.render(context)
File
"/home/user/anewman/sj//lib/python2.4/site-packages/django/template/defaulttags.py"
in render
  245.                     return self.nodelist_true.render(context)
File "/home/user/anewman/sj//lib/python2.4/site-packages/django/template/__init__.py"
in render
  756.                 bits.append(self.render_node(node, context))
File "/home/user/anewman/sj/lib/python/django/template/debug.py" in render_node
  81.             raise wrapped

Exception Type: TemplateSyntaxError at /r/681/
Exception Value: Caught an exception while rendering: column
diffviewer_filediff.parent_diff_base64 does not exist


Original Traceback (most recent call last):
  File "/home/user/anewman/sj/lib/python/django/template/debug.py", line 71, in
render_node
    result = node.render(context)
  File
"/home/user/anewman/sj//lib/python2.4/site-packages/django/template/defaulttags.py",
line 148, in render
    nodelist.append(node.render(context))
  File
"/home/user/anewman/sj//lib/python2.4/site-packages/django/template/defaulttags.py",
line 203, in render
    val1 = self.var1.resolve(context)
  File
"/home/user/anewman/sj//lib/python2.4/site-packages/django/template/__init__.py",
line 664, in resolve
    value = self._resolve_lookup(context)
  File
"/home/user/anewman/sj//lib/python2.4/site-packages/django/template/__init__.py",
line 693, in _resolve_lookup
    current = getattr(current, bit)
  File
"/home/user/anewman/sj//lib/python2.4/site-packages/django/db/models/fields/related.py",
line 248, in __get__
    rel_obj = QuerySet(self.field.rel.to).get(**params)
  File "/home/user/anewman/sj/lib/python/django/db/models/query.py", line 295, in get
    num = len(clone)
  File "/home/user/anewman/sj/lib/python/django/db/models/query.py", line 151, in __len__
    self._result_cache = list(self.iterator())
  File "/home/user/anewman/sj/lib/python/django/db/models/query.py", line 266, in
iterator
    for row in self.query.results_iter():
  File
"/home/user/anewman/sj//lib/python2.4/site-packages/django/db/models/sql/query.py",
line 199, in results_iter
    for rows in self.execute_sql(MULTI):
  File
"/home/user/anewman/sj//lib/python2.4/site-packages/django/db/models/sql/query.py",
line 1628, in execute_sql
    cursor.execute(sql, params)
  File
"/home/user/anewman/sj//lib/python2.4/site-packages/django/db/backends/util.py", line
19, in execute
    return self.cursor.execute(sql, params)
ProgrammingError: column diffviewer_filediff.parent_diff_base64 does not exist


chipx86
#3 chipx86
Did you do a syncdb before the evolve? It looks like this is the first evolution we
did and that we haven't installed the baseline evolution schema, which would cause
this problem. syncdb should fix that.
  • +NeedInfo
#4 pos****@gmai***** (Google Code) (Is this you? Claim this profile.)
I did try a syncdb first yes.
chipx86
#5 chipx86
It looks like you just ran evolve, not evolve --execute.

evolve will only show you what it's going to do, not actually perform the evolution.
#6 pos****@gmai***** (Google Code) (Is this you? Claim this profile.)
Ok so I just svn uped django and installed
svn uped reviewboard
./manage.py syncdb
$./manage.py evolve
#----- Evolution for diffviewer
from django_evolution.mutations import *
from django.db import models

MUTATIONS = [
   FakeChangeFieldType('FileDiff', 'diff_base64', '<class
'djblets.util.fields.Base64Field'>'),
   RenameField('FileDiff', 'diff_base64', 'diff', db_column='diff_base64'),
   AddField('FileDiff', 'parent_diff', models.Base64Field,
initial='', db_column='parent_diff_base64')
]
#----------------------
Trial evolution successful.
Run './manage.py evolve --execute' to apply evolution.
$./manage.py evolve  --execute
'abstract'
$
chipx86
#7 chipx86
This is a Django Evolution bug. I'm hoping I can work around it but I may not be able
to. Will update and post to the mailing list when I have more info.
  • -NeedInfo
    +Accepted
#8 pos****@gmai***** (Google Code) (Is this you? Claim this profile.)
It works now hooray!
david
#9 david
If it works for you, works for me.
  • -Accepted
    +Fixed