VirtualBox

Opened 7 years ago

#17757 new defect

writev() blocks over vboxsf on Linux 4.16 guest

Reported by: larsch2 Owned by:
Component: other Version: VirtualBox 5.2.12
Keywords: Cc:
Guest type: other Host type: other

Description

VirtualBox 5.2.8

# uname -r
4.16.8-1-ARCH
# cat test.c
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/uio.h>

char data[8192];

int main() {
	struct iovec iov[2];
	int fd = open("/media/sf_sf/test.txt", O_WRONLY|O_CREAT|O_TRUNC|O_CLOEXEC, 0666);
	iov[0].iov_base = data;
	iov[0].iov_len = sizeof(data);
	iov[1].iov_base = data;
	iov[1].iov_len = sizeof(data);
	writev(fd, iov, 2);
	close(fd);
	return 0;
} 

Result:

# strace ./a.out
openat(AT_FDCWD, "/media/sf_sf/test.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
writev(3, [{iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=8192}, {iov_base="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., iov_len=8192}], 2

This blocks forever. Writing with write() works. Only writev() blocks.

Kernel modules are from either virtualbox-guest-modules-arch or virtualbox-guest-dkms (Arch Linux).

Downgrading to 4.14.x kernel works around the problem with same version of VirtualBox & host.

Was unable to test with guest additions CD (doesn't compile on 4.16.8).

Attachments (1)

archbox-2018-05-11-10-59-28.log (135.7 KB ) - added by larsch2 7 years ago.

Download all attachments as: .zip

Change History (1)

by larsch2, 7 years ago

Note: See TracTickets for help on using tickets.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette