Bug 6344

Summary: ADT installer - failed to mount proc for QEMU x86 and arm
Product: [Yocto Project Subprojects] ADT Reporter: Ada Solcan <ada-mihaela.solcan>
Component: adtAssignee: Richard Purdie <richard.purdie>
Status: RESOLVED OBSOLETE QA Contact:
Severity: normal    
Priority: Medium CC: jessica.zhang, poky.adt.watcher, poky.watcher
Version: 1.4.4   
Target Milestone: 1.7   
Hardware: x86   
OS: Multiple   
Whiteboard: Moved from Laurentiu to Unassigned
OS type for building Yocto: --- Type of Regression: Regression (Used to work)
Verified: Documentation change: No (bug/feature does not impact docs)
Attachments:
Description Flags
output from console none

Description Ada Solcan 2014-05-16 15:10:20 UTC
Created attachment 1965 [details]
output from console

HOST: Fedora 20 & Ubuntu 13.10
poky: 42a5b0cbd1fc316e8b8e3ef1629271619c74b2d3
adt-installer: http://autobuilder.yoctoproject.org/pub/releases/yocto-1.4.4/adt-installer-QA/adt_installer.tar.bz2

STEPS TO REPRODUCE:
1. Download the Tarball from http://autobuilder.yoctoproject.org/pub/releases/yocto-1.4.4/adt-installer-QA/adt_installer.tar.bz2 to any directory
2. Unpack the tarball: tar -xjf adt_installer.tar.bz2 and go to the directory where you unpack it: cd adt_installer
3. Don't modify the default configuration file: adt-installer.conf
4. Run the installer: ./adt_installer
5. Launch QEMU

EXPECTED RESULT:
QEMU launches successfully.

ACTUAL RESULT:
QEMU doen't launch and the following is displayed in the console: mount: only root can mount proc on /proc 
See attachment for full log.
Comment 1 Laurentiu Palcu 2014-05-19 13:06:16 UTC
I reproduced the issue. Doing a local build to make sure it's not an AB issue.
Comment 2 Laurentiu Palcu 2014-05-20 07:50:59 UTC
It happens on a local build too.
Comment 3 Laurentiu Palcu 2014-05-20 14:33:30 UTC
It turns out the problem was passing a relative path to YOCTOADT_TARGET_SYSROOT_LOC and 'pseudo' is not able to save the db files in the right location. Passing an absolute path fixes this.

I'll try to prepare a patch that converts the YOCTOADT_TARGET_SYSROOT_LOC path to absolute.
Comment 4 Jessica 2014-05-21 17:12:57 UTC
So this is a 1.4.4 only issue?
Comment 5 Laurentiu Palcu 2014-05-29 13:43:21 UTC
This issue exists in all versions. We only used absolute paths in adt-installer.conf.
Comment 6 Richard Purdie 2014-07-01 12:10:46 UTC
Further digging on this is that 1.6.1 does not have this issue, 1.4.4 will reproduce if you use a relative path in adt_installer.conf but 1.6.1 will not.

It appears its the rootfs extraction which breaks things since the 1.6.1 binaries pointed at a broken 1.4.4 extracted image will show the same error. The error is likely some kind of issue in the pseudo database, incorrectly handling the relative paths. There were fixes to pseudo for link()/linkat() which are probably related.

Its also worth noting that 1.6 calls readlink on the paths so absolute paths are used, I couldn't reproduce even when I disabled that and used relative ones.

So marking this as obsolete for want of a better description. There is a workaround for 1.4.4 (use absolute paths) and there isn't much demand to go back and fix it.