<< Back to previous view

[QB-2162] "wrapper.conf" incorrectly identifies architecture of machine (with Mac OS X) and fails to start
Created: 27/Aug/14  Updated: 21/Dec/14

Status: Resolved
Project: QuickBuild
Component/s: None
Affects Version/s: 5.1.30
Fix Version/s: 6.0.0

Type: Bug Priority: Major
Reporter: Andrei Kortsak Assigned To: Robin Shen
Resolution: Fixed Votes: 0
Remaining Estimate: Unknown Time Spent: Unknown
Original Estimate: Unknown
Environment: QuickBuild buildagent 5.1.30
Mac OS X Yosemite (10.10)


 Description   
After installation of the latest QB buildagent (5.1.30) on Mac machine with "Yosemite Mac OS X (10.10)" on it, agent wasn't able to start and failed with next error:
...
wrapper | Launching a JVM...
wrapper | JVM exited while loading the application.
jvm 5 | Error: This Java instance does not support a 32-bit JVM.
jvm 5 | Please install the desired version.
wrapper | There were 5 failed launches in a row, each lasting less than 300 seconds. Giving up.
wrapper | There may be a configuration problem: please check the logs.

Quick search on PMEase forum showed that it is known issue:
* Forum: http://forum.pmease.com/viewtopic.php?f=1&t=2959
* Issue Tracker: http://track.pmease.com/browse/QB-1858

Though, previous time it affected machines with "Mavericks Mac OS X (10.9)". After DEBUG level for buildagent was enabled, it gave a bit more information:
...
wrapper | Launching a JVM...
wrapper | Java Command Line:
wrapper | Command[0] : /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java
wrapper | Command[1] : -d32
...

Very strange that it identifies machine as "-d32", though it is 64-bit.

PS. Commenting out "wrapper.java.additional.auto_bits=TRUE" line in "wrapper.conf" helped to bypass the problem

 Comments   
Comment by Robin Shen [ 28/Aug/14 03:46 AM ]
Thanks for the info. Unfortunately we are not able to test again Yosemite as it has not been released yet. Will come up with the fix once it is released.
Comment by Matt Kingman [ 14/Nov/14 02:22 AM ]
The real issue here is that in agent.sh, the $OS_VER check is a string comparison of the full version string. If it compared the major/minor version numbers separately then it would work fine.

# Resolve the architecture
if [ "$DIST_OS" = "macosx" ]
then
    OS_VER=`sw_vers | grep 'ProductVersion:' | grep -o '[0-9]*\.[0-9]*\.[0-9]*|[0-9]*\.[0-9]*'`
    DIST_ARCH="universal"
    if [[ "$OS_VER" < "10.5.0" ]]
    then
        DIST_BITS="32"
    else
...
Comment by Robin Shen [ 15/Nov/14 12:49 AM ]
Thanks for the info. Latest version of JSW will get this fixed. And we will do an upgrade.
Generated at Fri May 31 23:17:11 UTC 2024 using JIRA 189.