Test of current RB 4 state

35 views
Skip to first unread message

André Klitzing

unread,
Aug 6, 2020, 7:26:07 AM8/6/20
to Review Board Development
Hi there,

I tried current RB4 here and check if our extensions are compatible and can be upgraded to some new features.
I found some strange problems.

###### rbtools
If we use current rbtools I cannot post with "rbt post" anymore.

Traceback (most recent call last):
  File "/home/andre/tmp/rb/rb4/env/bin/rbt", line 8, in <module>
    sys.exit(main())
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/commands/main.py", line 120, in main
    command.run_from_argv([RB_MAIN, command_name] + args)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/commands/__init__.py", line 740, in run_from_argv
    exit_code = self.main(*args) or 0
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/commands/post.py", line 1051, in main
    diff_history = self._get_diff_history(extra_args)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/commands/post.py", line 1276, in _get_diff_history
    history_entries = self.tool.get_commit_history(self.revisions)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/clients/mercurial.py", line 218, in get_commit_history
    b'%(base)s::%(tip)s and not %(base)s' % revisions,
KeyError: b'base'

Content if revision is: {'base': '9a4e5e3afbb3', 'tip': '8f6d9937d0f2', 'commit_id': '8f6d9937d0f2'}


###### Review Board
* I cannot create any new Repository, User and so on because there is no "Save" button. The button "Save" exists for existing stuff only.

* I tried to use create_with_history=True with rbtools and get this error. Regardless of it is provided or not.

2020-08-06 11:23:34,348 - ERROR - None - admin - /api/review-requests/8/draft/diffs/1/draft-commits/ - reviewboard.webapi.resources.draft_diffcommit - Error uploading new commit: 'committer_date' is an invalid keyword argument for this function
Traceback (most recent call last):
  File "/[...]/python3.8/site-packages/reviewboard/webapi/resources/draft_diffcommit.py", line 317, in create
    commit = form.create()
  File "/[...]/python3.8/site-packages/reviewboard/diffviewer/forms.py", line 165, in create
    return DiffCommit.objects.create_from_upload(
  File "/[...]/python3.8/site-packages/reviewboard/diffviewer/managers.py", line 766, in create_from_upload
    return self.create_from_data(
  File "/[...]/python3.8/site-packages/reviewboard/diffviewer/managers.py", line 904, in create_from_data
    diffcommit = self.model(
  File "/[...]/python3.8/site-packages/django/db/models/base.py", line 573, in __init__
    raise TypeError("'%s' is an invalid keyword argument for this function" % list(kwargs)[0])
TypeError: 'committer_date' is an invalid keyword argument for this function


Best regards
   André

David Trowbridge

unread,
Aug 9, 2020, 2:48:23 PM8/9/20
to reviewb...@googlegroups.com
Andre,

Thanks for the reports.

For the third one, is this using the RBTools API rather than the command-line tools? Would you be able to provide the code you're using?

Thanks,
David

--

---
You received this message because you are subscribed to the Google Groups "Review Board Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to reviewboard-d...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/reviewboard-dev/b673a9cf-c332-415a-abce-a704578b350do%40googlegroups.com.

André Klitzing

unread,
Aug 10, 2020, 8:58:48 AM8/10/20
to Review Board Development
Hi David,

my test-snipped is here. Don't know if it is correct. WebAPI documentation is missing here.


I found 2 additional "bugs".
* If you go to Review Bot extension you cannot press "database". Nothing happens.

* If you have a few review requests (or empty list) in your dashboard and wait until automatic refresh the boxes will shrink down. (Firefox tested)


Best regards
   André Klitzing

André Klitzing

unread,
Aug 12, 2020, 6:11:21 AM8/12/20
to Review Board Development
Thanks for the fix.... now another str issue some lines later.


>>> Running: hg log --template {node}\x1f{p1node}\x1f{author|person}\x1f{author|email}\x1f{date|rfc3339date}\x1f{p2node}\x1f{desc}\x1e -r "95a883512629::e60175d2d0d9 and not 95a883512629"

Traceback (most recent call last):
  File "/home/andre/tmp/rb/rb4/env/bin/rbt", line 8, in <module>
    sys.exit(main())
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/commands/main.py", line 120, in main
    command.run_from_argv([RB_MAIN, command_name] + args)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/commands/__init__.py", line 740, in run_from_argv
    exit_code = self.main(*args) or 0
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/commands/post.py", line 1051, in main
    diff_history = self._get_diff_history(extra_args)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/commands/post.py", line 1276, in _get_diff_history
    history_entries = self.tool.get_commit_history(self.revisions)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/clients/mercurial.py", line 235, in get_commit_history
    for log_entry in log_entries[:-1].split(self._RECORD_SEP):
TypeError: must be str or None, not bytes

André Klitzing

unread,
Aug 12, 2020, 6:18:23 AM8/12/20
to Review Board Development
I can click the database link now but get an error 500. Maybe it's my environment here.


2020-08-12 10:13:42,073 - ERROR - None - admin - /admin/extensions/reviewbotext.extension.ReviewBotExtension/db/ - django.request - Internal Server Error: /admin/extensions/reviewbotext.extension.ReviewBotExtension/db/

Traceback (most recent call last):
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/core/handlers/exception.py", line 41, in inner
    response = get_response(request)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response
    response = self._get_response(request)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/core/handlers/base.py", line 217, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/core/handlers/base.py", line 215, in _get_response
    response = response.render()
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/response.py", line 107, in render
    self.content = self.rendered_content
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/response.py", line 84, in rendered_content
    content = template.render(context, self._request)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/backends/django.py", line 66, in render
    return self.template.render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 207, in render
    return self._render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 199, in _render
    return self.nodelist.render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 990, in render
    bit = node.render_annotated(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 957, in render_annotated
    return self.render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/loader_tags.py", line 177, in render
    return compiled_parent._render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 199, in _render
    return self.nodelist.render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 990, in render
    bit = node.render_annotated(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 957, in render_annotated
    return self.render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/loader_tags.py", line 177, in render
    return compiled_parent._render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 199, in _render
    return self.nodelist.render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 990, in render
    bit = node.render_annotated(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 957, in render_annotated
    return self.render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/djblets/util/decorators.py", line 224, in render
    return self.tag_func(context, self.nodelist, *args)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/djblets/util/templatetags/djblets_utils.py", line 122, in definevar
    result = nodelist.render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 990, in render
    bit = node.render_annotated(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 957, in render_annotated
    return self.render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/loader_tags.py", line 72, in render
    result = block.nodelist.render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 990, in render
    bit = node.render_annotated(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 957, in render_annotated
    return self.render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/defaulttags.py", line 322, in render
    return nodelist.render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 990, in render
    bit = node.render_annotated(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 957, in render_annotated
    return self.render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/library.py", line 245, in render
    return t.render(new_context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 209, in render
    return self._render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 199, in _render
    return self.nodelist.render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 990, in render
    bit = node.render_annotated(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/base.py", line 957, in render_annotated
    return self.render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/reviewboard/site/templatetags/localsite.py", line 49, in render
    return self.url_node.render(context)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/template/defaulttags.py", line 458, in render
    url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/urls/base.py", line 91, in reverse
    return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/django/urls/resolvers.py", line 497, in _reverse_with_prefix
    raise NoReverseMatch(msg)
django.urls.exceptions.NoReverseMatch: Reverse for 'auth_user_add' not found. 'auth_user_add' is not a valid view function or pattern name.

André Klitzing

unread,
Aug 14, 2020, 8:58:43 AM8/14/20
to Review Board Development
Same problem of my script with rbtools:

path: 'committer_date' is an invalid keyword argument for this function




$ rbt post -d
>>> RBTools 2.0 alpha 0 (dev)
>>> Python 3.8.5 (default, Jul 27 2020, 08:42:51)
[GCC 10.1.0]
>>> Running on Linux-5.7.11-arch1-1-x86_64-with-glibc2.2.5
>>> Home = /home/andre
>>> Current directory = /home/andre/tmp/rb/NEW
>>> Command line: rbt post -d
>>> Running: tf vc help
>>> Checking for a Mercurial repository...
>>> Running: hg root
>>> Running: hg showconfig
>>> Running: hg svn info
>>> Command exited with rc 255: ['hg', 'svn', 'info']
hg: unknown command 'svn'
(use 'hg help' for a list of commands)
---
>>> Using candidate path 'default': '/home/andre/tmp/rb/repo'
>>> Repository info: Path: /home/andre/tmp/rb/repo, Base path: , Supports changesets: False
>>> Making HTTP GET request to http://localhost:4000/api/
>>> Running: hg branch
>>> Running: hg -q outgoing --template {rev}\t{node|short}\t{branch}\n default -r .
>>> Found outgoing changeset 7:bdc259ddddba
>>> Found outgoing changeset 8:e60175d2d0d9
>>> Running: hg log -r 8 --template {parents}
>>> Running: hg log -r 7 --template {parents}
>>> Running: hg parents --hidden -r 0
>>> Running: hg identify -i --hidden -r 2 --config extensions.rbtoolsnormalize=/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/helpers/hgext.py
>>> Running: hg identify -i --hidden -r 8 --config extensions.rbtoolsnormalize=/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/helpers/hgext.py
>>> Running: hg status --modified --added --removed --deleted
>>> Running: hg -q outgoing --template {rev}\t{node|short}\t{branch}\n default -r 95a883512629
>>> Command exited with rc 1: ['hg', '-q', 'outgoing', '--template', '{rev}\\t{node|short}\\t{branch}\\n', 'default', '-r', '95a883512629']
---
>>> 0 outgoing changesets between remote and base.

>>> Running: hg log --template {node}\x1f{p1node}\x1f{author|person}\x1f{author|email}\x1f{date|rfc3339date}\x1f{p2node}\x1f{desc}\x1e -r "95a883512629::e60175d2d0d9 and not 95a883512629"
>>> Running: hg diff --hidden --nodates -g -r 95a883512629 -r e60175d2d0d9 --config extensions.rbtoolsnormalize=/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/helpers/hgext.py
>>> Running: hg log -r 95a883512629 --template {node} --config extensions.rbtoolsnormalize=/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/helpers/hgext.py
>>> Running: hg diff --hidden --nodates -g -r 95a883512629325e3af3c36cb89c08d82953ecb7 -r bdc259ddddbafd7d0aa931f6d4188ab5517abaf6 --config extensions.rbtoolsnormalize=/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/helpers/hgext.py
>>> Running: hg log -r 95a883512629325e3af3c36cb89c08d82953ecb7 --template {node} --config extensions.rbtoolsnormalize=/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/helpers/hgext.py
>>> Running: hg diff --hidden --nodates -g -r bdc259ddddbafd7d0aa931f6d4188ab5517abaf6 -r e60175d2d0d93f62e1b6c031c771f5e52bb11a80 --config extensions.rbtoolsnormalize=/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/helpers/hgext.py
>>> Running: hg log -r bdc259ddddbafd7d0aa931f6d4188ab5517abaf6 --template {node} --config extensions.rbtoolsnormalize=/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/helpers/hgext.py
>>> Making HTTP GET request to http://localhost:4000/api/validation/commits/
>>> HTTP GET request to http://localhost:4000/api/validation/commits/ cannot be cached
Validating commits...                                                      [0/2]>>> Making HTTP POST request to http://localhost:4000/api/validation/commits/
>>> Making HTTP POST request to http://localhost:4000/api/validation/commits/
Validating commits... ████████████████████████████████████████████████████ [2/2]
>>> Running: hg id -B
>>> Making HTTP GET request to http://localhost:4000/api/review-requests/?only-fields=&only-links=create
>>> HTTP GET request to http://localhost:4000/api/review-requests/?only-fields=&only-links=create cannot be cached
>>> Making HTTP POST request to http://localhost:4000/api/review-requests/
>>> Making HTTP POST request to http://localhost:4000/api/review-requests/18/draft/
>>> Making HTTP GET request to http://localhost:4000/api/review-requests/18/draft/diffs/?only-fields=&only-links=
>>> HTTP GET request to http://localhost:4000/api/review-requests/18/draft/diffs/?only-fields=&only-links= cannot be cached
>>> Making HTTP POST request to http://localhost:4000/api/review-requests/18/draft/diffs/?only-fields=&only-links=self%2Cdraft_commits
>>> Making HTTP GET request to http://localhost:4000/api/review-requests/18/draft/diffs/1/draft-commits/
>>> HTTP GET request to http://localhost:4000/api/review-requests/18/draft/diffs/1/draft-commits/ cannot be cached
Uploading commits...                                                       [0/2]>>> Making HTTP POST request to http://localhost:4000/api/review-requests/18/draft/diffs/1/draft-commits/
>>> Got API Error 105 (HTTP code 400): One or more fields had errors
>>> Error data: {'err': {'code': 105, 'msg': 'One or more fields had errors'}, 'fields': {'path': ["'committer_date' is an invalid keyword argument for this function"]}, 'stat': 'fail'}
Uploading commits...                                                       [0/2]

Traceback (most recent call last):
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/api/request.py", line 805, in make_request
    rsp = self._urlopen(Request(
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/api/cache.py", line 209, in make_request
    return self.urlopen(request)
  File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.8/urllib/request.py", line 531, in open
    response = meth(req, response)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/api/request.py", line 359, in http_response
    response = self.parent.error('http', request, response,
  File "/usr/lib/python3.8/urllib/request.py", line 569, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.8/urllib/request.py", line 649, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request

During handling of the above exception, another exception occurred:


Traceback (most recent call last):
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/commands/post.py", line 699, in post_request
    self._post_diff_history(review_request, diff_history)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/commands/post.py", line 1400, in _post_diff_history
    commits.upload_commit(validation_info,
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/api/decorators.py", line 26, in request_method
    return self._transport.execute_request_method(method_wrapper,
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/api/transport/sync.py", line 77, in execute_request_method
    return self._execute_request(request)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/api/transport/sync.py", line 86, in _execute_request
    rsp = self.server.make_request(request)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/api/request.py", line 808, in make_request
    self.process_error(e.code, e.read())
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/api/request.py", line 781, in process_error
    raise create_api_error(http_status, rsp['err']['code'], rsp,
rbtools.api.errors.BadRequestError: One or more fields had errors (HTTP 400, API Error 105)

    path: 'committer_date' is an invalid keyword argument for this function

During handling of the above exception, another exception occurred:


Traceback (most recent call last):
  File "/home/andre/tmp/rb/rb4/env/bin/rbt", line 8, in <module>
    sys.exit(main())
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/commands/main.py", line 120, in main
    command.run_from_argv([RB_MAIN, command_name] + args)
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/commands/__init__.py", line 740, in run_from_argv
    exit_code = self.main(*args) or 0
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/commands/post.py", line 1092, in main
    review_request_id, review_request_url = self.post_request(
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/commands/post.py", line 733, in post_request
    error_msg.append(force_unicode(e))
  File "/home/andre/tmp/rb/rb4/env/lib/python3.8/site-packages/rbtools/utils/encoding.py", line 49, in force_unicode
    raise ValueError('Provided string was neither bytes nor unicode')
ValueError: Provided string was neither bytes nor unicode

Christian Hammond

unread,
Aug 14, 2020, 7:34:11 PM8/14/20
to reviewb...@googlegroups.com
Hey André,

Thanks for these reports. We have them all tracked now, and will be getting fixes in over this coming week.

Christian

--

---
You received this message because you are subscribed to the Google Groups "Review Board Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to reviewboard-d...@googlegroups.com.


--
Christian Hammond
President/CEO of Beanbag
Makers of Review Board

André Klitzing

unread,
Aug 17, 2020, 8:38:13 AM8/17/20
to Review Board Development
Hi Christian,

thanks for the feedback. Last Review Board tests was with sqlite3. Maybe this is helpful.

I tried with our postgresql instance and get this error. Same procedure works with 3.0.x.

django.db.utils.ProgrammingError: relation "reviewboard_oauth_application" does not exist

André
pip.log
rb4.log
Reply all
Reply to author
Forward
0 new messages