VirtualBox

Opened 6 years ago

Closed 4 years ago

Last modified 4 years ago

#17299 closed defect (fixed)

Guest Additions fail to start in openSUSE Leap 42.1 guest

Reported by: Reiner Brodbeck Owned by: Frank Batschulat (Oracle)
Component: guest additions Version: VirtualBox 5.2.0
Keywords: Cc:
Guest type: Linux Host type: Windows

Description

GuestAdditions fail to start during boot of openSUSE Leap 42.1 guest.
After login into guest system an X message pops up:

VBoxClient: VBoxClient (seamless): failed to start. Stage: Setting guest IRQ filter mask Error: VERR_INTERNAL_ERROR

Output of systemctl status vboxadd-service.service is:

vboxadd-service.service

Loaded: loaded (/opt/VBoxGuestAdditions-5.2.1/init/vboxadd-service; enabled)
Active: failed (Result: exit-code) since Tue 2017-11-21 09:41:36 UTC; 3min 17s ago

Process: 806 ExecStart=/opt/VBoxGuestAdditions-5.2.1/init/vboxadd-service start (code=exited, status=1/FAILURE)

Nov 21 09:41:35 atsmtester systemd[1]: Starting vboxadd-service.service...
Nov 21 09:41:35 atsmtester vboxadd-service[806]: vboxadd-service.sh: Starting VirtualBox Guest Addition service.
Nov 21 09:41:35 atsmtester vboxadd-service.sh[824]: Starting VirtualBox Guest Addition service.
Nov 21 09:41:36 atsmtester systemd[1]: vboxadd-service.service: control process exited, code=exited status=1
Nov 21 09:41:36 atsmtester systemd[1]: Failed to start vboxadd-service.service.
Nov 21 09:41:36 atsmtester systemd[1]: Unit vboxadd-service.service entered failed state.

Attachments (4)

vboxadd-setup.log (12.6 KB ) - added by Reiner Brodbeck 5 years ago.
vboxadd-install.log (1.0 KB ) - added by Reiner Brodbeck 5 years ago.
uname.txt (12.4 KB ) - added by Frank Batschulat (Oracle) 4 years ago.
vboxadd-install.2.log (7.3 KB ) - added by Frank Batschulat (Oracle) 4 years ago.

Download all attachments as: .zip

Change History (19)

comment:1 by Reiner Brodbeck, 6 years ago

Meanwhile V5.2.4 of VirtualBox is released and still the same problem. I even tried actual test build 5.2.5-120181.

For some reason today the guest did not switch time several months into the past during startup, and so I got some more information as output of journalctl -xn:

Jan 11 07:57:23 atsmtester kernel: VGDrvCommonIoCtl: Unknown request iFunction=0x5609 stripped size=0xc0005609

Jan 11 07:57:28 atsmtester kernel: VGDrvCommonIoCtl: Unknown request iFunction=0xc02c5600 stripped size=0xc0005600

Jan 11 07:57:28 atsmtester kernel: VGDrvCommonIoCtl: Unknown request iFunction=0xc020560c stripped size=0xc000560c

Jan 11 07:57:28 atsmtester kernel: VGDrvCommonIoCtl: Unknown request iFunction=0x5609 stripped size=0xc0005609

Jan 11 07:57:33 atsmtester kernel: VGDrvCommonIoCtl: Unknown request iFunction=0xc02c5600 stripped size=0xc0005600

Jan 11 07:57:33 atsmtester kernel: VGDrvCommonIoCtl: Unknown request iFunction=0xc020560c stripped size=0xc000560c

Jan 11 07:57:33 atsmtester kernel: VGDrvCommonIoCtl: Unknown request iFunction=0x5609 stripped size=0xc0005609

Jan 11 07:57:38 atsmtester kernel: VGDrvCommonIoCtl: Unknown request iFunction=0xc02c5600 stripped size=0xc0005600

Jan 11 07:57:38 atsmtester kernel: VGDrvCommonIoCtl: Unknown request iFunction=0xc020560c stripped size=0xc000560c

Jan 11 07:57:38 atsmtester kernel: VGDrvCommonIoCtl: Unknown request iFunction=0x5609 stripped size=0xc0005609

comment:2 by Frank Batschulat (Oracle), 5 years ago

This sounds to me like a missmatch between the guest kernel and the Vbox guest additions. Apparently we receive garbage commands as ioctls in the guest and refuse what we dont know.

openSUSE Leap 42.1 was a Linux 4.1 kernel based distro. Maybe someting got backported into that kernel.

Currently we are at revision 5.2.32 of the 5.2.X guest additions, dont know if that'd change anything. I wonder if we failt o compile the newer gesut additions during installation somehow or the recompile fails.

Is this still an issue?

comment:3 by Reiner Brodbeck, 5 years ago

I meanwhile use revision 6.0.12. The issue changed in revision 6.x, but guest additions still only compile partially. May I add the actual log to this ticket, or should I create a new one for revision 6.x?

comment:4 by Frank Batschulat (Oracle), 5 years ago

Thanks please add the failing compile log here to this bug, plus host and guest details so we can have a look. The failure to compile the guest additions is very likely the red hering here. Lets use this bug for now.

comment:5 by Reiner Brodbeck, 5 years ago

Actual host: Windows 10 Pro 1903 build 18362.365, AMD FX-8350 Eight-Core Processor

Actual guest: openSUSE Leap 42.1 (x86_64), kernel 4.1.39-56-default

Virtual Box revision is 6.0.12 r133076.

I will attach the files vboxadd-setup.log and vboxadd-install.log

by Reiner Brodbeck, 5 years ago

Attachment: vboxadd-setup.log added

by Reiner Brodbeck, 5 years ago

Attachment: vboxadd-install.log added

comment:6 by paulson, 5 years ago

This same error:

/tmp/vbox.0/utils.c: In function ‘vbsf_inode_setattr’:
/tmp/vbox.0/utils.c:812:5: error: implicit declaration of function ‘inode_change_ok’ [-Werror=implicit-function-declaration]
     rc = inode_change_ok(pInode, iattr);
     ^

was seen on Debian Jessie (kernel 3.16) when some upstream kernel changes were backported which required VirtualBox changes to allow the Guest Additions to compile again as documented in ticket #18697.

comment:7 by Frank Batschulat (Oracle), 5 years ago

nevermind my previous comment, as the fix of #18697 currently does not apply here because we compile against a lower kernel version:

Building the main Guest Additions 6.0.12 module for kernel 4.1.39-56-default.

whereas the fix for #18697 changed:

https://www.virtualbox.org/changeset?reponame=vbox&new=79594%40trunk%2Fsrc%2FVBox%2FAdditions%2Flinux%2Fsharedfolders%2Futils.c&old=78860%40trunk%2Fsrc%2FVBox%2FAdditions%2Flinux%2Fsharedfolders%2Futils.c

#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 39) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0))
LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)

comment:8 by Frank Batschulat (Oracle), 5 years ago

Owner: set to Frank Batschulat (Oracle)
Status: newaccepted

comment:9 by Frank Batschulat (Oracle), 4 years ago

Yes, this bug really reproduces even with 6.0.14 on sch an old kernel like running with openSUSE Leap 42.1

Linux linux-9798 4.1.39-56-default #1 SMP PREEMPT Mon May 1 04:41:25 UTC 2017 (5f49ec2) x86_64 x86_64 x86_64 GNU/Linux
NAME="openSUSE Leap"
VERSION="42.1"
VERSION_ID="42.1"
PRETTY_NAME="openSUSE Leap 42.1 (x86_64)"

By default this comes with:

[  387.372057] vboxguest: misc device minor 58, IRQ 20, I/O port d040, MMIO at 00000000f2400000 (size 0x400000)
[  387.372058] vboxguest: Successfully loaded version 5.0.40_SUSE (interface 0x00010004)
[    0.000000] DMI: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
[  387.115255] systemd[1]: Starting Setup Virtual Console...
[  388.130465] usb 2-1: Manufacturer: VirtualBox
[  388.151838] input: VirtualBox USB Tablet as /devices/pci0000:00/0000:00:06.0/usb2/2-1/2-1:1.0/0003:80EE:0021.0001/input/input4
[  388.152295] hid-generic 0003:80EE:0021.0001: input,hidraw0: USB HID v1.10 Mouse [VirtualBox USB Tablet] on usb-0000:00:06.0-1/input0

GA installation fails, vboxadd-install.log shows (full log attached:

depmod: ERROR: fstatat(5, vboxguest.ko): No such file or directory
depmod: ERROR: fstatat(5, vboxsf.ko): No such file or directory
depmod: ERROR: fstatat(5, vboxvideo.ko): No such file or directory
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel 
modules.  This may take a while.
VirtualBox Guest Additions: To build modules for other installed kernels, run
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup <version>
VirtualBox Guest Additions: or
VirtualBox Guest Additions:   /sbin/rcvboxadd quicksetup all
VirtualBox Guest Additions: Building the modules for kernel 4.1.39-56-default.

VirtualBox Guest Additions: Look at /var/log/vboxadd-setup.log to find out what 
went wrong
depmod: ERROR: fstatat(5, vboxguest.ko): No such file or directory
depmod: ERROR: fstatat(5, vboxsf.ko): No such file or directory
depmod: ERROR: fstatat(5, vboxvideo.ko): No such file or directory
VirtualBox Guest Additions: Running kernel modules will not be replaced until 
the system is restarted

trying to compile the new 8.0.14 shared folder code from the GA fails:

/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14

make:

linux-9798:/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14 # make
=== Building 'vboxguest' module ===
make[1]: Entering directory '/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest'
make V= CONFIG_MODULE_SIG= -C /lib/modules/4.1.39-56-default/build M=/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest SRCROOT=/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest -j2 modules
make[2]: Entering directory '/usr/src/linux-4.1.39-56-obj/x86_64/default'
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/VBoxGuest-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/VBoxGuest.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/VBoxGuestR0LibGenericRequest.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/VBoxGuestR0LibHGCMInternal.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/VBoxGuestR0LibInit.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/VBoxGuestR0LibPhysHeap.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/VBoxGuestR0LibVMMDev.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/alloc-r0drv.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/initterm-r0drv.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/memobj-r0drv.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/mpnotification-r0drv.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/powernotification-r0drv.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/alloc-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/assert-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/initterm-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/memobj-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/memuserkernel-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/mp-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/mpnotification-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/process-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/semevent-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/semeventmulti-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/semfastmutex-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/semmutex-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/spinlock-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/thread-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/thread2-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/time-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/timer-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/linux/RTLogWriteDebugger-r0drv-linux.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/r0drv/generic/semspinmutex-r0drv-generic.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/alloc/alloc.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/err/RTErrConvertFromErrno.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/err/RTErrConvertToErrno.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/err/errinfo.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/log/log.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/log/logellipsis.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/log/logrel.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/log/logrelellipsis.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/log/logcom.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/log/logformat.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/misc/RTAssertMsg1Weak.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/misc/RTAssertMsg2.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/misc/RTAssertMsg2Add.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/misc/RTAssertMsg2AddWeak.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/misc/RTAssertMsg2AddWeakV.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/misc/RTAssertMsg2Weak.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/misc/RTAssertMsg2WeakV.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/misc/assert.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/misc/thread.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/string/RTStrCat.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/string/RTStrCmp.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/string/RTStrCopy.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/string/RTStrCopyEx.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/string/RTStrCopyP.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/string/RTStrICmpAscii.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/string/RTStrNICmpAscii.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/string/RTStrNCmp.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/string/RTStrNLen.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/string/stringalloc.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/string/strformat.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/string/strformatnum.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/string/strformatrt.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/string/strformattype.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/string/strprintf.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/string/strtonum.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/string/utf-8.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/table/avlpv.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/time/time.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/generic/RTAssertShouldPanic-generic.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/generic/RTLogWriteStdErr-stub-generic.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/generic/RTLogWriteStdOut-stub-generic.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/generic/RTMpGetCoreCount-generic.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/generic/RTSemEventWait-2-ex-generic.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/generic/RTSemEventWaitNoResume-2-ex-generic.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/generic/RTSemEventMultiWait-2-ex-generic.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/generic/RTSemEventMultiWaitNoResume-2-ex-generic.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/generic/rtStrFormatKernelAddress-generic.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/generic/errvars-generic.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/generic/mppresent-generic.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/VBox/log-vbox.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/VBox/logbackdoor.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/common/alloc/heapsimple.o
  LD [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/vboxguest.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/vboxguest.mod.o
  LD [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest/vboxguest.ko
make[2]: Leaving directory '/usr/src/linux-4.1.39-56-obj/x86_64/default'
make[1]: Leaving directory '/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxguest'

=== Building 'vboxsf' module ===
make[1]: Entering directory '/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf'
make V= CONFIG_MODULE_SIG= -C /lib/modules/4.1.39-56-default/build M=/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf SRCROOT=/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf -j2 modules
make[2]: Entering directory '/usr/src/linux-4.1.39-56-obj/x86_64/default'
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf/vfsmod.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf/dirops.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf/lnkops.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf/regops.o
  CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf/utils.o
/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf/utils.c: In function ‘vbsf_inode_setattr’:
/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf/utils.c:812:5: error: implicit declaration of function ‘inode_change_ok’ [-Werror=implicit-function-declaration]
     rc = inode_change_ok(pInode, iattr);
     ^
cc1: some warnings being treated as errors
/usr/src/linux-4.1.39-56/scripts/Makefile.build:274: recipe for target '/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf/utils.o' failed
make[5]: *** [/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf/utils.o] Error 1
make[5]: *** Waiting for unfinished jobs....
/usr/src/linux-4.1.39-56/Makefile:1411: recipe for target '_module_/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf' failed
make[4]: *** [_module_/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf] Error 2
Makefile:146: recipe for target 'sub-make' failed
make[3]: *** [sub-make] Error 2
Makefile:24: recipe for target '__sub-make' failed
make[2]: *** [__sub-make] Error 2
make[2]: Leaving directory '/usr/src/linux-4.1.39-56-obj/x86_64/default'
/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf/Makefile-footer.gmk:111: recipe for target 'vboxsf' failed
make[1]: *** [vboxsf] Error 2
make[1]: Leaving directory '/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf'
Makefile:48: recipe for target 'vboxsf' failed
make: *** [vboxsf] Error 1

So the error in detail for the shared folder code is:

 CC [M]  /opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf/utils.o
/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf/utils.c: In function ‘vbsf_inode_setattr’:
/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14/vboxsf/utils.c:812:5: error: implicit declaration of function ‘inode_change_ok’ [-Werror=implicit-function-declaration]
     rc = inode_change_ok(pInode, iattr);
     ^

The fix for #18697 changed:

https://www.virtualbox.org/changeset?reponame=vbox&new=79594%40trunk%2Fsrc%2FVBox%2FAdditions%2Flinux%2Fsharedfolders%2Futils.c&old=78860%40trunk%2Fsrc%2FVBox%2FAdditions%2Flinux%2Fsharedfolders%2Futils.c

-- 809	 	#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) 
+++ 	809	#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 39) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0))
+++ || LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) 
810	810	    rc = setattr_prepare(dentry, iattr); 

So we use setattr_prepare() instead of inode_change_ok() for:

>= KERNEL_VERSION(3, 16, 39) && < KERNEL_VERSION(3, 17, 0) || >= KERNEL_VERSION(4, 9, 0)

Our kernel is: 4.1.39 which is not in the 3.X range and lower then 4.9

The change originally happened in Linux:

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit?id=50b070e8224f7bf86622ede1abee9fa3d3dc2f10

and 4.1.39 indeed has setattr_prepare() as well:

https://elixir.bootlin.com/linux/v4.1.39/source/fs/attr.c#L33

while 4.1 does not have it. It first appears in 4.1.37:

https://elixir.bootlin.com/linux/v4.1.37/source/fs/attr.c#L33

The 4.2 branch does not have it at all. The 4.3 branch does not have it at all. The 4.4 branch does not have it at all. The 4.5 branch does not have it at all. The 4.6 branch does not have it at all. The 4.7 branch does not have it at all. The 4.8 branch does not have it at all.

And it first appears again in the 4.9 branch:

https://elixir.bootlin.com/linux/v4.9/source/fs/attr.c#L33

So we need to include 4.1.37 up to < 4.2 as well.

by Frank Batschulat (Oracle), 4 years ago

Attachment: uname.txt added

by Frank Batschulat (Oracle), 4 years ago

Attachment: vboxadd-install.2.log added

comment:10 by Frank Batschulat (Oracle), 4 years ago

the problematic code is in:

VBox-6.0/src/VBox/Additions/linux/sharedfolders/utils.c:vbsf_inode_setattr()

 809 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 39) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)) || LINUX_VERSION_COD     E >= KERNEL_VERSION(4, 9, 0)
 810     rc = setattr_prepare(dentry, iattr);
 811 #else
 812     rc = inode_change_ok(pInode, iattr);
 813 #endif

comment:11 by Frank Batschulat (Oracle), 4 years ago

trunk$ svn diff

Index: src/VBox/Additions/linux/sharedfolders/utils.c
===================================================================
--- src/VBox/Additions/linux/sharedfolders/utils.c	(revision 135151)
+++ src/VBox/Additions/linux/sharedfolders/utils.c	(working copy)
@@ -806,7 +806,7 @@
      * from futimes() when asked to preserve times, see ticketref:18569.
      */
     iattr->ia_valid |= ATTR_FORCE;
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 39) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)) || LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 39) && LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)) || LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0) || (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 37) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0))
     rc = setattr_prepare(dentry, iattr);
 #else
     rc = inode_change_ok(pInode, iattr);
Last edited 4 years ago by Frank Batschulat (Oracle) (previous) (diff)

comment:12 by Frank Batschulat (Oracle), 4 years ago

Once we apply this fix and can compile the guest GAs we fail during modload of the vboxsf module:

linux-9798:/opt/VBoxGuestAdditions-6.0.14/src/vboxguest-6.0.14 # make load

rmmod: ERROR: Module vboxvideo is not currently loaded
rmmod: ERROR: Module vboxvfs is not currently loaded
rmmod: ERROR: Module vboxsf is not currently loaded
rmmod: ERROR: Module vboxguest is in use
insmod: ERROR: could not insert module vboxguest.ko: File exists
Makefile:100: recipe for target 'load' failed
make: *** [load] Error 1

[ 1425.435543] vboxguest: misc device minor 58, IRQ 20, I/O port d040, MMIO at 00000000f2400000 (size 0x400000)
[ 1425.435547] vboxguest: Successfully loaded version 6.0.14 (interface 0x00010004)
[ 1425.445975] vboxsf: Unknown symbol noop_backing_dev_info (err 0)

Now we know that one already from Ticket #18926

That kernel function is not exported in the 4.1 kernel branch.

So we also need the fix for Ticket #18926 to verify vboxsf successfuly here.

With this changeset also applied, I could verify the inital fix and the shared folder code works now on this distribution/kernel.

Last edited 4 years ago by Frank Batschulat (Oracle) (previous) (diff)

comment:13 by Frank Batschulat (Oracle), 4 years ago

fix putbacked into trunc, revision r135166

fix putbacked into 6.X branch, revision r135173

Last edited 4 years ago by Frank Batschulat (Oracle) (previous) (diff)

comment:14 by Frank Batschulat (Oracle), 4 years ago

Resolution: fixed
Status: acceptedclosed

comment:15 by Frank Batschulat (Oracle), 4 years ago

The bug does not apply to the 5.X branch.

Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use