9.5.10 Pre Upgrade Check fails

When I execute the 9.5.10 Pre Upgrade Check task it gets to the last step and fails. The log shows this:

  • Retry error, attempt 9 failed for MoveFile (E:\BigFix Enterprise\BES Server\preupgrade.out ,E:\BigFix Enterprise\BES Server\preupgrade-9.5.10.out)
  • actionsite (http://bigfix:52311/cgi-bin/bfgather.exe/actionsite) Command failed (Move of ‘E:\BigFix Enterprise\BES Server\preupgrade.out’ to ‘E:\BigFix Enterprise\BES Server\preupgrade-9.5.10.out’ failed (2 - File error “class FileNotFoundError” on “E:\BigFix Enterprise\BES Server\preupgrade.out” : “Windows Error 0x2%: The system cannot find the file specified.”)) move “E:\BigFix Enterprise\BES Server\preupgrade.out” “E:\BigFix Enterprise\BES Server\preupgrade-9.5.10.out” (action:48239)

When I check the 'E:\BigFix Enterprise\BES Server folder, the preupgrade.out file does not exist.

If I run the BESAdmin tool manually (“BESAdmin.exe /preupgrade /standalone”) it creates the 'E:\BigFix Enterprise\BES Server\preupgrade.out file.

There are other threads about this issue on older versions but no solutions. Does anybody know why this is failing and what needs to be done to correct it?

Has anybody else has come across this issue with the latest update?

I have the same issue. Looking at the fixlet the last few steps look to be related for Linux install.
I’m running Windows 2016. Looks to be a problem with the fixlet itself.
In Relevance 6
Show collapsed relevance
if
(
windows of operating system
)
then
not exists file “preupgrade-9.5.10.out” of parent folder of file of main gather service
else
not exists file "/var/opt/BESServer/preupgrade-9.5.10.out"
Show indented relevance
if (windows of operating system) then not exists file “preupgrade-9.5.10.out” of parent folder of file of main gather service else not exists file “/var/opt/BESServer/preupgrade-9.5.10.out”

That should tell it to ignore the .out file. then at the bottom of Action 1. Which is related to Linux and it fails since I’m running Windows. Most likely you are as well.
Not sure if this actually helps anyone really.

parameter “exitCode”="{exists true whose (if true then (exit code of action = 0) else false)}"

if {"True" = parameter "exitCode"} 
	//rename the preupgrade.out to preupgrade-9.5.10.out
	move "{parameter "installDir" & "/preupgrade.out"}" "{parameter "installDir" & "/preupgrade-9.5.10.out"}"
else
	//rename the preupgrade.out to preupgrade-9.5.10-datetime.err
	move "{parameter "installDir" & "/preupgrade.out"}" "{parameter "installDir" & "/preupgrade-9.5.10-" & parameter "currentDate" & "-" & parameter "currentTime" & ".err"}"
endif

found out where the fixlet log is
windows - C:\Program Files\BigFix Enterprise\BES Client__BESData__Global\Logs

and my error is

Command failed (Move of ‘D:\Program Files\BigFix Enterprise\BES Server\preupgrade.out’ to ‘D:\Program Files\BigFix Enterprise\BES Server\preupgrade-9.5.10.out’ failed (2 - File error “class FileNotFoundError” on “D:\Program Files\BigFix Enterprise\BES Server\preupgrade.out” : “Windows Error 0x2%: The system cannot find the file specified.”)) move (action:7212)

I have opened a case with Support about it. If i’m able to help you I’ll post but hopefully this helps you to check the log or something.

If the log file doesn’t exist, it suggests the check failed. Do you see this file instead: preupgrade-Version 9.5.10-.err ?

I have the same issue (Windows). That means, that the file preupgrade.out doesn’t exist, then the move command in the task fails. If I run the command (on the CLI) manually, it executes very briefly, and doesn’t produce any output on the CLI nor any file:

C:\Program Files (x86)\BigFix Enterprise\BES Client__BESData\BES Support__Local\PreCheck>besadmin.exe /username=#masked# /password=#masked# /preupgrade /standalone

The same, running the command without the username & password parameters.

If my environment no, that file does not exist.

We’re running into the same issue. The file doesn’t exist to begin with. Looking at the fixlet, it should have created the file, but it never does.

I have a support case opened for this. I’m waiting on reply. I think it’s an issue with the fixlet. I’ll post when it gets resolved.

1 Like

Thanks, please let us know what they say.

Have you gotten a response from support?

We have been back and forth and supplying log files and screenshots. The support tech has tested in his environment and no problems. One thing he noted today if I supplied DB credentials which I did. In his test environment he did not, so I’m going to try without DB creds. But my issue as I explained to him a few times is the log shows all steps completed successfully it just fails on creating the .err log file, also my installation is not on C:\ with default path. It’s installed on D:\program files\ instead so not sure if it has anything to do with it.

well that didn’t work either, failed with the same message.
Command failed (Move of ‘D:\Program Files\BigFix Enterprise\BES Server\preupgrade.out’ to ‘D:\Program Files\BigFix Enterprise\BES Server\preupgrade-9.5.10.out’ failed (2 - File error “class FileNotFoundError” on “D:\Program Files\BigFix Enterprise\BES Server\preupgrade.out” : “Windows Error 0x2%: The system cannot find the file specified.”)) move (action:8038)
At 08:48:11 -0500 -

Tech support is having difficulties finding the issue. They don’t have or receive any errors when they run the fixlet. I pointed out that my DB is remote SQL and service account has DB_Owner rights but the tech support setup is default path c:\program files\ and local DB. My install is on D:\program files\ same dir structure but not drive so not sure if that has anything to do with it. Or, if my remote DB has anything to do with it.
I tried to run using the command: besadmin.exe /preupgrade /standalone but it requires SA creds to the remote DB which SQL team will not input. I don’t even have the option to try domain\serviceaccount and password. So at this point i’m stuck.

Checking the fixlet, it’s possible to send specific credentials to the BESAdmin.exe /preupgrade:

BESAdmin.exe /username={parameter "secret1" of action} /password={parameter "secret2" of action} /preupgrade /standalone

When sending the task action, did you fill in credentials (on the “Description” tab’s form)?

Is the BES Root Server running using and account other than LocalSystem? Fixlet 3484 “Updated Windows Server/Console Components - Manual Upgrade Required - IBM BigFix version 9.5.10” indicates a manual upgrade would be required in that case; I’m not sure whether the preupgrade check would work either. Also, Remote DB isn’t mentioned in the description, but the Relevance indicates the manual upgrade might be required if UseRemoteDB is set. There’s also no mention of DSA, but I’ve always upgraded manually in my DSA configuration.

1 Like

The fixlet ‘Pre Upgrade Check’ works downloading some stuff under the following folder

BES Client\__BESData\BES Support\__Local\PreCheck

then attempting to run the exec under that directory ( is nothing else than the 9.1 patch 10 admin tool )
using the credential of the agent ( the user in the LogOn tab among the service properties )

To check if this exec runs successfully could be checked the log file that, if the agent is running as local system account ( the default ), is:

C:\Windows\System32\config\systemprofile\AppData\Local\BigFix\BESAdminDebugOut.txt

or the following one if it runs with the ‘userlogin’ account instead:

C:\Users\<userlogin>\AppData\Local\BigFix\BESAdminDebugOut.txt

On Linux the log file is the following instead ( independently the user running the tool ):
/var/log/BESAdminDebugOut.txt

If for such reason the admin tool does not run with success, the file preugprade.out is never created, so any attempt to rename it as preupgrade-9.5.10.out or preupgrade-9.5.10.err will fail.

Common reasons the attempt to run this exec can fail could be because

  • the download of this exec or related libraries has failed
  • the user the agent is running have no enough privileges to connect to the database
  • the user the agent is running have no privileges to create a file in the BES Server directory
  • on Linux the user the agent is running have no exec privileges in the PreCheck folder

and so on …

The user/password option fields the fixlet provide make sense just in case of sql authentication, otherwise they are not taken in count.

At now it is not clear if have the server installed on a drive different from C: on Windows can be a problem, in any case the installDir parameter is evaluated with the following relevance expression ( could be double checked with the fixlet debugger ):

parent folder of file of main gather service

2 Likes

Yes, I tried running the fixlet with filling in the credentials to remote sql. I don’t have SA access to the DB but we use a domain\service account which has DB_Owner. The sql team will not input the SA password. I do see errors in the BESAdminDebugOut log file:
11044 – There was an error connecting to the database. Check that you have sufficient database privileges:
Database Error: [Microsoft][SQL Server Native Client 11.0][SQL Server]Login failed for user ‘sa’. (28000: 18,456)

Strangely this error is logged even if I supply the domain\service account and password in the fixlet description.

I have no idea how to use the fixlet debugger so not sure about that one.

I tried running this but nothing happens

BESAdmin.exe /username={parameter “secret1” of action} /password={parameter “secret2” of action} /preupgrade /standalone

1 Like

This confirm there’s a problem connecting to the database … that should be because the ‘local system user’ used to run the agent service is not part of the domain or have not enough privileged to access to the database

A valid Windows user is the LogOn user with which run the server and the filldb services if they successfully connect to the remote database … or that with which the admin tool under BES Server folder connect successfully to the remote database …

If none of these options work, better involve the support team for a deeper analysis …

1 Like

I’d like to open this thread back up for discussion. We still have the same issue where the 9.5.10 Pre Upgrade Check fails, and now even the 9.5.11 Pre Upgrade Check fails… with the exact same error.

Just to refresh memories, the errors are as follows (for 9.5.10 and 9.5.11):

Error from Log when running the Pre Upgrade Check Version 9.5.10:

At 08:09:10 -0600 - actionsite (http://rootserver.com:52311/cgi-bin/bfgather.exe/actionsite)
Command failed (Move of ‘D:\Program Files\BigFix Enterprise\BES Server\preupgrade.out’ to ‘D:\Program Files\BigFix Enterprise\BES Server\preupgrade-9.5.10.out’ failed (2 - File error “class FileNotFoundError” on “D:\Program Files\BigFix Enterprise\BES Server\preupgrade.out” : “Windows Error 0x2%: The system cannot find the file specified.”)) move (action:30505)

Error from Log when running the Pre Upgrade Check Version 9.5.11:

At 08:27:45 -0600 - actionsite (http://rootserver.com:52311/cgi-bin/bfgather.exe/actionsite)
Command failed (Move of ‘D:\Program Files\BigFix Enterprise\BES Server\preupgrade.out’ to ‘D:\Program Files\BigFix Enterprise\BES Server\preupgrade-9.5.11.out’ failed (2 - File error “class FileNotFoundError” on “D:\Program Files\BigFix Enterprise\BES Server\preupgrade.out” : “Windows Error 0x2%: The system cannot find the file specified.”)) move (action:30506)

I get these errors whether I provide a valid DB login and password or leave it empty.

We do use a remote SQL database.

Obviously the preupgrade.out file is not getting created, but why not?

Anyone else have this problem? Has anyone solved this problem? I do have a case opened with support. If/when I get an answer I’ll update this forum.

Thanks,
Eric

Check the BESAdminDebugOut.txt file as mentioned a couple posts up to see what errors you are encountering: 9.5.10 Pre Upgrade Check fails