[SOLVED] "Error '0' occured while receiving the doument" when uploading an iso as pve user

Martec

Member
Jul 10, 2019
20
0
21
What are the rights a pve user needs, to upload an iso file to the storage local


1664278387249.png


syslog:
problem with client ::ffff:xxx.xxx.xxx.xxx; No space left on device

99% of space is empty by now

I assume that there need to be a specific permission on the user or group, What permissions should that be?
 
Last edited:
The syslog line seems to indicate the issue is with the available disk space. Please verify how much space you got left, and whether the upload works after freeing some files.
 
  • Like
Reactions: Martec
The syslog line seems to indicate the issue is with the available disk space. Please verify how much space you got left, and whether the upload works after freeing some files.
Thanks for your reply. That was too my first idea, but there is enough space left (more then 99% are empty).
 
Could you show the output of df -h?
Do I understand you right, when you upload as root, it works?
 
  • Like
Reactions: Martec
yes, as root it's is working
The user/group can have roles assigned. Privileges are assigned to these roles.
Which one is/are responsible for the permission to upload?

root@pve:~# df -h Filesystem Size Used Avail Use% Mounted on udev 63G 0 63G 0% /dev tmpfs 13G 1.3M 13G 1% /run rpool/ROOT/pve-1 640G 4.1G 636G 1% / tmpfs 63G 46M 63G 1% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sdc1 3.6T 2.0T 1.5T 59% /mnt/pve/backupintern rpool 636G 128K 636G 1% /rpool rpool/ROOT 636G 128K 636G 1% /rpool/ROOT rpool/data 636G 128K 636G 1% /rpool/data /dev/fuse 128M 20K 128M 1% /etc/pve tmpfs 13G 0 13G 0% /run/user/0
 
Last edited:
Great! Out of curiosity, what permission did the user have before? The GUI shouldn't be allowing an upload with wrong perms, so there might be a bug.
 
  • Like
Reactions: Martec
To be honest, I gave the user almost all permissions now :) So I need to reproduce it in an Test environment. 1664354736546.png

I also added the user to the permission tab of the storage.
1664354935525.png

Thanks again!
 
Hmmm. I have the OP's exact problem, but I get it while in root...

Code:
root@proxmox:/# df -h
Filesystem            Size  Used Avail Use% Mounted on
udev                   63G     0   63G   0% /dev
tmpfs                  13G  1.3M   13G   1% /run
/dev/mapper/pve-root   94G  3.3G   86G   4% /
tmpfs                  63G   46M   63G   1% /dev/shm
tmpfs                 5.0M     0  5.0M   0% /run/lock
/dev/fuse             128M   16K  128M   1% /etc/pve
tmpfs                  13G     0   13G   0% /run/user/0
zfsa                  923G  256K  923G   1% /zfsa
zfsa/ZFSA             923G  256K  923G   1% /mnt/ZFSA

Any advice?

--

Update I was able to download via a URL without any problems. But if I try to upload the image the above error reocurrs.
 
Last edited:
Hi, what's the output of pveversion -v
Size of the iso? If you have a direct, public link to the iso, please share that
Can you upload via API?
Is there anything interesting in the syslog during the upload?
 
Hi, exactly the same with me as @TempusThales mentioned, my syslog says:

Code:
Jan  9 22:16:30 my-machine pveproxy[962374]: unable to create temporary upload file '/var/tmp/pveupload-be543e2305ef78c381846f1ea4b2fd40' at /usr/share/perl5/PVE/APIServer/AnyEvent.pm line 1478.
Jan  9 22:16:30 my-machine pveproxy[962374]: unable to create temporary upload file '/var/tmp/pveupload-242730bbc6f9075fc68902cd68c3a33d' at /usr/share/perl5/PVE/APIServer/AnyEvent.pm line 1478.
Jan  9 22:16:30 my-machine pveproxy[962374]: problem with client ::ffff:<my-ip>; No space left on device

plenty of space left on device (~3,6T)
output of pveversion -v:
Bash:
> pveversion -v                                                                                                                                                                                                                   jan 09, 22:18:00
proxmox-ve: 7.2-1 (running kernel: 5.15.30-2-pve)
pve-manager: 7.2-3 (running version: 7.2-3/c743d6c1)
pve-kernel-helper: 7.2-2
pve-kernel-5.15: 7.2-1
pve-kernel-5.15.30-2-pve: 5.15.30-3
ceph-fuse: 15.2.16-pve1
corosync: 3.1.5-pve2
criu: 3.15-1+pve-1
glusterfs-client: 9.2-1
ifupdown2: 3.1.0-1+pmx3
ksm-control-daemon: 1.4-1
libjs-extjs: 7.0.0-1
libknet1: 1.22-pve2
libproxmox-acme-perl: 1.4.2
libproxmox-backup-qemu0: 1.2.0-1
libpve-access-control: 7.1-8
libpve-apiclient-perl: 3.2-1
libpve-common-perl: 7.1-6
libpve-guest-common-perl: 4.1-2
libpve-http-server-perl: 4.1-1
libpve-storage-perl: 7.2-2
libspice-server1: 0.14.3-2.1
lvm2: 2.03.11-2.1
lxc-pve: 4.0.12-1
lxcfs: 4.0.12-pve1
novnc-pve: 1.3.0-3
proxmox-backup-client: 2.1.8-1
proxmox-backup-file-restore: 2.1.8-1
proxmox-mini-journalreader: 1.3-1
proxmox-widget-toolkit: 3.4-10
pve-cluster: 7.2-1
pve-container: 4.2-1
pve-docs: 7.2-2
pve-edk2-firmware: 3.20210831-2
pve-firewall: 4.2-5
pve-firmware: 3.4-1
pve-ha-manager: 3.3-4
pve-i18n: 2.7-1
pve-qemu-kvm: 6.2.0-5
pve-xtermjs: 4.16.0-1
qemu-server: 7.2-2
smartmontools: 7.2-pve3
spiceterm: 3.2-2
swtpm: 0.7.1~bpo11+1
vncterm: 1.7-1
zfsutils-linux: 2.1.4-pve1

It is actually the same for 50MB file as well as big ISO image.

Direct permissions provided for user/group on the storage have made no difference.

Thank you in advance,
Ľudovít
 
Last edited:
What does df -hi /var/tmp say?
When you upload as root, it works?
What permissions does your non-root account have?What does df -hi /var/tmp say?

There might be old upload files in /var/tmp, check with ls /var/tmp/pveupload*. You can remove those.
 
What does df -hi /var/tmp say?
When you upload as root, it works?
What permissions does your non-root account have?What does df -hi /var/tmp say?

There might be old upload files in /var/tmp, check with ls /var/tmp/pveupload*. You can remove those.
Hey Matthias, I'm working with Ludovit on this issue...

We are using root account to upload the ISO files via GUI.

Code:
 ~ df -hi /var/tmp
 rpool/var/tmp   zfs    7,2G    12  7,2G    1% /var/tmp

Thank you.
 
Last edited:
I missed that earlier, your system is still on PVE 7.2. Current version is 7.3, so please upgrade and report back if you still encounter the issue.
 
I encountered this also on 7.3 (pve-manager/7.3-4/d69b70d4) with a 15GB ISO that would fail at different points at 4-5GB or so using the web GUI. However, I was able to use scp from the client to transfer the ISO over to the PVE server instead.

While monitoring the transfer, there were several multi-second stalls with no network data transfer, before the transfer would again continue (at 125MB/sec Gigabit ethernet speed). My rpool where the ISO directory is located is a ZFS mirror of 2x 7200 RPM disks with 100GB+ of available space.

I suspect that that multi-second stalls from writing chunks of the ISO to the disk from the web UI temp location caused the web UI to time out, giving this error. SCP seems to deal with the stalls more effectively, allowing a successful transfer first time.
 
Yes, that's a possible reason.
I currently can't reproduce the issue, but you could try fixing it yourself by finding the following line in /usr/share/perl5/PVE/APIServer/AnyEvent.pm
Perl:
$reqstate->{hdl}->on_read(sub {
and insert the line $reqstate->{hdl}->timeout(60); so it looks like that :
Perl:
$reqstate->{hdl}->timeout(60);
$reqstate->{hdl}->on_read(sub {
This sets the server side timeout to 60 seconds, which should be plenty.

Execute systemctl restart pveproxy.service.
Now upload the file.

If you do, please report back whether that fixes the issue.

To undo the changes, run apt install --reinstall libpve-http-server-perl
 
Yes, that's a possible reason.
I currently can't reproduce the issue, but you could try fixing it yourself by finding the following line in /usr/share/perl5/PVE/APIServer/AnyEvent.pm
Perl:
$reqstate->{hdl}->on_read(sub {
and insert the line $reqstate->{hdl}->timeout(60); so it looks like that :
Perl:
$reqstate->{hdl}->timeout(60);
$reqstate->{hdl}->on_read(sub {
This sets the server side timeout to 60 seconds, which should be plenty.

Execute systemctl restart pveproxy.service.
Now upload the file.

If you do, please report back whether that fixes the issue.

To undo the changes, run apt install --reinstall libpve-http-server-perl
Just wanted to say this worked for this, and a detail I ran into was only windows based ISO's ran into the issue strangely. This was on 7.4-3
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!