Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

Cloudron Forum

Apps | Demo | Docs | Install

baserow error on file column upload

Scheduled Pinned Locked Moved Solved Baserow
13 Posts 4 Posters 209 Views
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    midm
    wrote on last edited by
    #1

    Hello,

    On a fresh install of Cloudron, I'm unable to upload files to Baserow, with followings error in logs :

    Dec 28 00:08:13 ERROR 2022-12-27 23:08:13,289 django.request.log_response:224- Internal Server Error: /api/user-files/upload-file/
    Dec 28 00:08:13 Traceback (most recent call last):
    Dec 28 00:08:13 File "/app/code/env/lib/python3.10/site-packages/asgiref/sync.py", line 482, in thread_handler
    Dec 28 00:08:13 raise exc_info[1]
    Dec 28 00:08:13 File "/app/code/env/lib/python3.10/site-packages/django/core/handlers/exception.py", line 38, in inner
    Dec 28 00:08:13 response = await get_response(request)
    Dec 28 00:08:13 File "/app/code/env/lib/python3.10/site-packages/django/core/handlers/base.py", line 233, in _get_response_async
    Dec 28 00:08:13 response = await wrapped_callback(request, *callback_args, **callback_kwargs)
    Dec 28 00:08:13 File "/app/code/env/lib/python3.10/site-packages/asgiref/sync.py", line 444, in __call__
    Dec 28 00:08:13 ret = await asyncio.wait_for(future, timeout=None)
    Dec 28 00:08:13 File "/usr/lib/python3.10/asyncio/tasks.py", line 408, in wait_for
    Dec 28 00:08:13 return await fut
    Dec 28 00:08:13 File "/app/code/env/lib/python3.10/site-packages/asgiref/current_thread_executor.py", line 22, in run
    Dec 28 00:08:13 result = self.fn(*self.args, **self.kwargs)
    Dec 28 00:08:13 File "/app/code/env/lib/python3.10/site-packages/asgiref/sync.py", line 486, in thread_handler
    Dec 28 00:08:13 return func(*args, **kwargs)
    Dec 28 00:08:13 File "/app/code/env/lib/python3.10/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
    Dec 28 00:08:13 return view_func(*args, **kwargs)
    Dec 28 00:08:13 File "/app/code/env/lib/python3.10/site-packages/django/views/generic/base.py", line 70, in view
    Dec 28 00:08:13 return self.dispatch(request, *args, **kwargs)
    Dec 28 00:08:13 File "/app/code/env/lib/python3.10/site-packages/rest_framework/views.py", line 509, in dispatch
    Dec 28 00:08:13 response = self.handle_exception(exc)
    Dec 28 00:08:13 File "/app/code/env/lib/python3.10/site-packages/rest_framework/views.py", line 469, in handle_exception
    Dec 28 00:08:13 self.raise_uncaught_exception(exc)
    Dec 28 00:08:13 File "/app/code/env/lib/python3.10/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
    Dec 28 00:08:13 raise exc
    Dec 28 00:08:13 File "/app/code/env/lib/python3.10/site-packages/rest_framework/views.py", line 506, in dispatch
    Dec 28 00:08:13 response = handler(request, *args, **kwargs)
    Dec 28 00:08:13 File "/usr/lib/python3.10/contextlib.py", line 79, in inner
    Dec 28 00:08:13 return func(*args, **kwds)
    Dec 28 00:08:13 File "/app/code/backend/src/baserow/api/decorators.py", line 90, in func_wrapper
    Dec 28 00:08:13 return func(*args, **kwargs)
    Dec 28 00:08:13 File "/app/code/backend/src/baserow/api/user_files/views.py", line 61, in post
    Dec 28 00:08:13 user_file = UserFileHandler().upload_user_file(request.user, file.name, file)
    Dec 28 00:08:13 File "/app/code/backend/src/baserow/core/user_files/handler.py", line 257, in upload_user_file
    Dec 28 00:08:13 storage.save(full_path, stream)
    Dec 28 00:08:13 File "/app/code/env/lib/python3.10/site-packages/django/core/files/storage.py", line 54, in save
    Dec 28 00:08:13 name = self._save(name, content)
    Dec 28 00:08:13 File "/app/code/backend/src/baserow/core/storage.py", line 8, in _save
    Dec 28 00:08:13 return super()._save(name, content)
    Dec 28 00:08:13 File "/app/code/env/lib/python3.10/site-packages/django/core/files/storage.py", line 279, in _save
    Dec 28 00:08:13 fd = os.open(full_path, self.OS_OPEN_FLAGS, 0o666)
    Dec 28 00:08:13 PermissionError: [Errno 13] Permission denied: '/app/data/media/user_files/sIjCc9JiqO2tnF3n7kcWdLaEJ3o1Geuv_a6e867bf79213cf4a792c688bfde862914c9faa44e1cb02e3c8c03ad89efc573.pdf'
    
    robiR 1 Reply Last reply
    0
  • girishG girish moved this topic from Support on
  • nebulonN nebulon marked this topic as a question on
  • nebulonN Offline
    nebulonN Offline
    nebulon Staff
    wrote on last edited by
    #2

    Was just looking into this and couldn't figure out where you were trying to upload files. I uploaded csv files for import and that worked fine at least, so I guess there is some other area on the app where one can upload other things?

    M 1 Reply Last reply
    0
  • robiR Offline
    robiR Offline
    robi
    replied to midm on last edited by
    #3

    @nebulon the error points to the path below with a .pdf

    [Errno 13] Permission denied: '/app/data/media/user_files/*.pdf

    Life of sky tech

    1 Reply Last reply
    0
  • M Offline
    M Offline
    midm
    replied to nebulon on last edited by
    #4

    @nebulon Yes there is a "file" column type on Baserow, to upload and store files. This is where I had this crash.

    robiR 1 Reply Last reply
    0
  • robiR Offline
    robiR Offline
    robi
    replied to midm on last edited by robi
    #5

    @nebulon I can reproduce this on the demo instance.. when you create a new table, you get some default rows and columns, you then scroll right to add a new column, and choose file type, then try uploading any file. It will fail.

    UPDATE:
    The directories in /app/data/media are owned by root for some reason, chown -R to cloudron:cloudron does the trick.

    Not sure why there is 62+MB of random images in user_files/, there's over a thousand files there!

    Some images are back to root permissions after I did the chown to cloudron.

    Life of sky tech

    1 Reply Last reply
    0
  • nebulonN Offline
    nebulonN Offline
    nebulon Staff
    wrote on last edited by nebulon
    #6

    Actually on a fresh install for me the uploads work just fine, also I can't quite see the permission issue. The start.sh has a chown -R cloudron:cloudron /app/data however as you indicated, something apparently changes ownership or creates files with root while the app is running.

    Also all processes besides nginx are run as cloudron user https://git.cloudron.io/cloudron/baserow-app/-/blob/master/supervisor.conf

    robiR 1 Reply Last reply
    0
  • robiR Offline
    robiR Offline
    robi
    replied to nebulon on last edited by robi
    #7

    @nebulon wow, not my experience at all with the demo instance.. it seemed like the baserow instance was doing things I didn't want it doing, like downloading 1000+ stock images (that's not what baserow is for!).

    Did something nefarious sneak in there? You can inspect the app at https://brow.demo.cloudron.io/ (cloudron/cloudron)

    It'd be nice to be able to see what all is running and changing permissions. Is there a way you can run execsnoop from startup?

    Here's more info on execsnoop and how to log all processes being executed (it may not work with our new kernels though).

    You can apparently follow a process using strace. If you know the PID of the process then you can do:

    strace -o strace-<pid>.out -f -p <pid>

    Notice the -f switch. It will help you to follow newly created processes that are descendants of the process whose PID was used in the command, above.

    https://github.com/a2o/snoopy also seems to record process execution, aside from doing full audit process accounting (psacct).

    Life of sky tech

    girishG 1 Reply Last reply
    0
  • nebulonN Offline
    nebulonN Offline
    nebulon Staff
    wrote on last edited by
    #8

    Hm really not sure how to reproduce this even in https://brow.demo.cloudron.io/database/13/table/70 (if that app instance still exists while others read this) I am able to upload files into the table just fine. PDFs as well as others, maybe something special about the file you try to upload?

    robiR 1 Reply Last reply
    0
  • robiR Offline
    robiR Offline
    robi
    replied to nebulon on last edited by
    #9

    @nebulon that's because I fixed the permissions earlier, try a new instance and monitor the directory just as you chown

    Life of sky tech

    1 Reply Last reply
    0
  • girishG Offline
    girishG Offline
    girish Staff
    wrote on last edited by
    #10

    I can confirm there is a whole bunch of files owned by root:

    7c05afa9-6e45-4df5-8388-d687c9ede696-image.png

    1 Reply Last reply
    1
  • girishG Offline
    girishG Offline
    girish Staff
    wrote on last edited by
    #11

    I think the issue is that we do this sync_templates in the background:

    echo "==> Syncing templates (in the background)"
    /app/code/env/bin/python /app/code/backend/src/baserow/manage.py sync_templates &
    

    And the above thing is also downloading a whole bunch of images from the web, not sure why.

    1 Reply Last reply
    0
  • girishG Offline
    girishG Offline
    girish Staff
    replied to robi on last edited by
    #12

    @robi said in baserow error on file column upload:

    @nebulon wow, not my experience at all with the demo instance.. it seemed like the baserow instance was doing things I didn't want it doing, like downloading 1000+ stock images (that's not what baserow is for!).

    Apparently, all those images are part of the "templates" - https://gitlab.com/bramw/baserow/-/tree/develop/backend/templates

    1 Reply Last reply
    0
  • girishG Offline
    girishG Offline
    girish Staff
    wrote on last edited by
    #13

    This is fixed in latest package.

    1 Reply Last reply
    1
  • girishG girish has marked this topic as solved on

  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Login

  • Don't have an account? Register

  • Login or register to search.