Hi,

After upgrading ReviewBoard to 7.0.1, some users with file-uploaded avatars 
aren't able to access our ReviewBoard instance. Attached are an image of 
what users see when they try to access ReviewBoard and a section of the log 
related to the errors.

Also, when I try setting my avatar by uploading a file, it doesn't work as 
well (similar error messages).

Regards,
Huy



-- 
Supercharge your Review Board with Power Pack: 
https://www.reviewboard.org/powerpack/
Want us to host Review Board for you? Check out RBCommons: 
https://rbcommons.com/
Happy user? Let us know! https://www.reviewboard.org/users/
--- 
You received this message because you are subscribed to the Google Groups 
"Review Board Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to reviewboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/reviewboard/89a0c743-4865-436d-bb3e-30cf0ce7df87n%40googlegroups.com.
ERROR:djblets.log.middleware:Exception thrown for user dawilson at 
https://review.nuq.ion.nokia.net/r/186962/

Could not find backend 'builtin': builtin doesn't look like a module path
Traceback (most recent call last):
  File "/venv/lib/python3.11/site-packages/djblets/avatars/services/base.py", 
line 157, in get_avatar_urls
    urls = request._avatar_cache[key]
           ~~~~~~~~~~~~~~~~~~~~~^^^^^
KeyError: (269, 'file-upload', 32)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File 
"/venv/lib/python3.11/site-packages/django/core/files/storage/handler.py", line 
35, in __getitem__
    return self._storages[alias]
           ~~~~~~~~~~~~~~^^^^^^^
KeyError: 'default'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/venv/lib/python3.11/site-packages/django/utils/module_loading.py", 
line 25, in import_string
    module_path, class_name = dotted_path.rsplit(".", 1)
    ^^^^^^^^^^^^^^^^^^^^^^^
ValueError: not enough values to unpack (expected 2, got 1)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File 
"/venv/lib/python3.11/site-packages/django/core/files/storage/handler.py", line 
52, in create_storage
    storage_cls = import_string(backend)
                  ^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/utils/module_loading.py", 
line 27, in import_string
    raise ImportError("%s doesn't look like a module path" % dotted_path) from 
err
ImportError: builtin doesn't look like a module path

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/venv/lib/python3.11/site-packages/django/core/handlers/base.py", line 
220, in _get_response
    response = response.render()
               ^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/response.py", line 
114, in render
    self.content = self.rendered_content
                   ^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/response.py", line 
92, in rendered_content
    return template.render(context, self._request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/backends/django.py", 
line 61, in render
    return self.template.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 175, 
in render
    return self._render(context)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 167, 
in _render
    return self.nodelist.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, 
in render
    return SafeString("".join([node.render_annotated(context) for node in 
self]))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, 
in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in 
self]))
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 966, 
in render_annotated
    return self.render(context)
           ^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/loader_tags.py", 
line 157, in render
    return compiled_parent._render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 167, 
in _render
    return self.nodelist.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, 
in render
    return SafeString("".join([node.render_annotated(context) for node in 
self]))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, 
in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in 
self]))
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 966, 
in render_annotated
    return self.render(context)
           ^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/loader_tags.py", 
line 157, in render
    return compiled_parent._render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 167, 
in _render
    return self.nodelist.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, 
in render
    return SafeString("".join([node.render_annotated(context) for node in 
self]))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, 
in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in 
self]))
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 966, 
in render_annotated
    return self.render(context)
           ^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/loader_tags.py", 
line 208, in render
    return template.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 177, 
in render
    return self._render(context)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 167, 
in _render
    return self.nodelist.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, 
in render
    return SafeString("".join([node.render_annotated(context) for node in 
self]))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, 
in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in 
self]))
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 966, 
in render_annotated
    return self.render(context)
           ^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/defaulttags.py", 
line 321, in render
    return nodelist.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, 
in render
    return SafeString("".join([node.render_annotated(context) for node in 
self]))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, 
in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in 
self]))
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 966, 
in render_annotated
    return self.render(context)
           ^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/defaulttags.py", 
line 321, in render
    return nodelist.render(context)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, 
in render
    return SafeString("".join([node.render_annotated(context) for node in 
self]))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 1005, 
in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in 
self]))
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/base.py", line 966, 
in render_annotated
    return self.render(context)
           ^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/template/library.py", line 
237, in render
    output = self.func(*resolved_args, **resolved_kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/venv/lib/python3.11/site-packages/reviewboard/avatars/templatetags/avatars.py",
 line 64, in avatar
    return service.render(request=context['request'], user=user, size=size)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/djblets/avatars/services/base.py", 
line 227, in render
    'urls': self.get_avatar_urls(request, user, size),
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/djblets/avatars/services/base.py", 
line 159, in get_avatar_urls
    urls = self.get_avatar_urls_uncached(user, size)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/reviewboard/avatars/services.py", 
line 34, in get_avatar_urls_uncached
    urls = super(FileUploadService, self).get_avatar_urls_uncached(user,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/venv/lib/python3.11/site-packages/djblets/avatars/services/file_upload.py", 
line 153, in get_avatar_urls_uncached
    '1x': storage.url(configuration['file_path'])
          ^^^^^^^^^^^
  File "/venv/lib/python3.11/site-packages/django/utils/functional.py", line 
266, in inner
    self._setup()
  File 
"/venv/lib/python3.11/site-packages/django/core/files/storage/__init__.py", 
line 42, in _setup
    self._wrapped = storages[DEFAULT_STORAGE_ALIAS]
                    ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/venv/lib/python3.11/site-packages/django/core/files/storage/handler.py", line 
43, in __getitem__
    storage = self.create_storage(params)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/venv/lib/python3.11/site-packages/django/core/files/storage/handler.py", line 
54, in create_storage
    raise InvalidStorageError(f"Could not find backend {backend!r}: {e}") from e
django.core.files.storage.handler.InvalidStorageError: Could not find backend 
'builtin': builtin doesn't look like a module path

Reply via email to