VirtualBox

Opened 16 years ago

Closed 12 years ago

#1312 closed defect (fixed)

kmk fails on zfs

Reported by: Roger Fujii Owned by: bird
Component: other Version: VirtualBox Solaris Beta 1
Keywords: zfs kmk Cc:
Guest type: other Host type: other

Description

You cannot build virtualbox on solaris in a zfs filesystem because kmk will fail attempting to create directories with its builtin mkdir. Apparently, kmk's logic for directory existence is... less than optimal - it seems to try creating directories from /, whether or not they exist (unlike mkdir which tries to create the leaf dir and fails upward). The problem happens when it reaches a ZFS mountpoint, where mkdir(2) will return ENOSYS, instead of its expect EEXIST, causing kmk to bail out.

Only workaround is to build on a ufs filesystem, as kmk will do mkdirs whether or not the target exists.

Change History (5)

comment:1 by bird, 16 years ago

Owner: set to bird
Status: newassigned

Thanks for you bug report. I will try fix this later today. It may take little while before a binary gets promoted to VirtualBox usage, so stay tuned.

Just got a deja vu here, and realized that I've already made a similar fix for VirtualBox ( http://www.virtualbox.org/browser/trunk/src/VBox/Runtime/r3/posix/dir-posix.cpp#L87 ) where we encountered in on an nfs mount.

About that ENOSYS usage on Solaris. The mkdir man page does not list ENOSYS as a possible errno, at least not in build 81 and 71. The Single UNIX Specification (2004 Edition) doesn't list it either. The ENOSYS definition in SuS can be understood to mean that it should only be used if mkdir isn't implemented at all (see section 2.3). Which is probably why the mkdir code I've borrowed from BSD totally does not expect mkdir to return ENOSYS.

I'm left wondering if this is a problem in Solaris or if it's behaving as designed...

comment:2 by bird, 16 years ago

Exactly which solaris version is this? Our Solaris based developers has no problems, so they are very curious about which version/build this is happing on.

comment:3 by Roger Fujii, 16 years ago

at the time, it was s10u4 ( I think this was before the build requirements were fully out). Having said that, I just tried some quick sanity checks on the problem (ie truss mkdir existing_file_in_zfs) and that returns EEXISTS (as it should). I'm trying to get the build environment working to something that approximates working again (currently having problems with libqt.. sigh). Sun may have fixed this in a kernel patch. I'll look into this and follow up.

btw, it would be helpful if the email out would put a more bogus reply address so you know you have to go to the web page....

comment:4 by Technologov, 14 years ago

Is this still relevant for VBox 3.2.6 ?

-Technologov

comment:5 by Frank Mehnert, 12 years ago

Resolution: fixed
Status: assignedclosed

No response, closing.

Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use