mattmcspirit / azurestack

Azure Stack Resources
80 stars 41 forks source link

Several jobs fail when using the offline download method #61

Closed gijs007 closed 5 years ago

gijs007 commented 5 years ago

I've successfully used the offline download script on 7 November. However I'm experiencing several failed steps when executing the ConfigASDK.ps1 script.

I've started the script with:

.\ConfigASDK.ps1 -azureDirectoryTenantName "XXXX" -authenticationType AzureAD `
-downloadPath "D:\ASDKpostdeploytemp" -"D:\ASDKdependencies_offlinedownload\ConfigASDKfiles.zip" -azureStackAdminPwd "XXXX" `
-VMpwd "XXXX" -azureAdUsername "XXXX" -azureAdPwd "XXXX" `
-registerASDK -useAzureCredsForRegistration -azureRegSubId "XXXX" -skipMySQL -skipCustomizeHost

The tasks which fail:

`Current number of failed jobs: 12

Name                StartTime             EndTime               Duration
----                ---------             -------               --------
AddUbuntuImage      11/14/2018 2:15:11 PM 11/14/2018 2:15:13 PM 0m:1s
AddServerCoreImage  11/14/2018 2:15:13 PM 11/14/2018 2:15:13 PM 0m:0s
AddServerFullImage  11/14/2018 2:15:13 PM 11/14/2018 2:15:14 PM 0m:0s
AddMySQLAzpkg       11/14/2018 2:15:13 PM 11/14/2018 2:15:14 PM 0m:0s
AddSQLServerAzpkg   11/14/2018 2:15:14 PM 11/14/2018 2:15:14 PM 0m:0s
DeployMySQLHost     11/14/2018 2:15:16 PM 11/14/2018 2:15:17 PM 0m:1s
DeploySQLServerHost 11/14/2018 2:15:16 PM 11/14/2018 2:15:18 PM 0m:1s
AddMySQLHosting     11/14/2018 2:15:17 PM 11/14/2018 2:15:18 PM 0m:1s
AddSQLHosting       11/14/2018 2:15:17 PM 11/14/2018 2:15:19 PM 0m:1s
DeployAppServiceFS  11/14/2018 2:15:17 PM 11/14/2018 2:15:19 PM 0m:1s
DeployAppServiceDB  11/14/2018 2:15:18 PM 11/14/2018 2:15:19 PM 0m:0s
DeployAppService    11/14/2018 2:15:19 PM 11/14/2018 2:15:20 PM 0m:0s
`

After several retries I was still experiencing this issue. In the end I did a redeployment and ran the script without the -configAsdkOfflineZipPath parameter.

mattmcspirit commented 5 years ago

I take it you no longer have the log file for the deployment?

Is that file name for the zip correct, with the space and s.zip? I’ll recreate in my environment, that’s all.

gijs007 commented 5 years ago

I'm afraid I don't have the log files, sorry.

The space s shouldn't be there. I'm pretty sure I used the copy path function and if I'm not mistaken your script validates if the file exists. So it's probably caused by formatting it trough my email and then copying and pasting it here. I'll edit my first post.

mattmcspirit commented 5 years ago

No worries. Here’s what I’ll do.

When I get to the office in a little while (Still 7am here) I’ll push my latest stable build to master. I’ll then run the offline zip creator script. I’ll ask you to do the same on the machine you originally generated the zip file on. What I want to check for is that a) we get the same files and b) none of your downloads are getting skipped and c) if they are, why the script isn’t catching that.

Once we know what’s going on there, I will run with my zip file against a freshly deployed ASDK (1809) and see what fails. I’ll use your exact commands from your failed run above.

All of those jobs fail because the initial ones fail - the Ubuntu image, WS images etc. if they fail, pretty much all others are set to fail automatically.

gijs007 commented 5 years ago

I've just checked and the argument I had saved, and thus which I've used is indeed correct. So there was a formatting error when I posted it here previously.

Sure thing, just let me know what I'll have to do. Its 18:25 here right now, I can do it later today or else it will be done tomorrow.

mattmcspirit commented 5 years ago

OK, I've just performed a download run with the newest 1809.1 version that I've recently pushed to master. It downloaded everything, I think, and there were no errors. Right-clicking the zip, and examining the properties shows it to be 13.1GB in size.

Looking in the ConfigASDKfiles folder (not the zipped one) then right-clicking on the ASDK folder, properties, it shows 6.62GB, and 94 files/12 folders.

Does yours show the same if you rerun with this newest 1809.1 version?

I'm now going to test the deployment using this zip file and will see what happens.

Thanks! Matt

gijs007 commented 5 years ago

For the previous version (the files which I used for the offline method which failed) the zip file was: 12.9 GB. The ConfigASDKfiles folder was 6.44GB, also with 94 files and 12 folder.

I'll re-download everything with the new version now and post the results once the download script is done.

gijs007 commented 5 years ago

The new download has the following size:

ConfigASDKfiles folder: 6.63GB (7.120.273.116 bytes). Contains 94 files and 12 folders.

The zip file is 13.1GB (14.092.516.038 bytes)

mattmcspirit commented 5 years ago

Hmm, could you run this, and return the results:

$RootFolder = 'C:\SOFTWARE\Scripts\Offline\ConfigASDKfiles\ASDK'

function Get-FormattedSize{
    param(
        [parameter( Mandatory = $true )]
        [int64]$Size
        )

    switch( $Size ){
        { $Size -gt 1GB }{ '{0:N2} GB' -f ( $Size  / 1GB ); break }
        { $Size -gt 1MB }{ '{0:N2} MB' -f ( $Size  / 1MB ); break }
        { $Size -gt 1KB }{ '{0:N2} KB' -f ( $Size  / 1KB ); break }
        default { "$Size B"; break }
        }
    }

$Results = New-Object -TypeName System.Collections.ArrayList

$RootSize = Get-ChildItem -Path $RootFolder -Recurse |
        Where-Object { -not $_.PSIsContainer } |
        Measure-Object -Property Length -Sum |
        Select-Object -ExpandProperty Sum

$null = $Results.Add(( New-Object -TypeName psobject -Property @{
    Path = $RootFolder
    Size = Get-FormattedSize -Size $RootSize
    } ))

$null = $Results.Add( '' )

$Folders = Get-ChildItem -Path $RootFolder |
    Where-Object { $_.PSIsContainer } |
    Select-Object -ExpandProperty FullName

$null = foreach( $Folder in $Folders ){
    $FolderSize = Get-ChildItem -Path $Folder -Recurse |
        Where-Object { -not $_.PSIsContainer } |
        Measure-Object -Property Length -Sum |
        Select-Object -ExpandProperty Sum

    $Results.Add(( New-Object -TypeName psobject -Property @{
    Path = $Folder
    Size = Get-FormattedSize -Size $FolderSize
    } ))

    $Files = Get-ChildItem -Path $Folder | Where-Object { -not $_.PSIsContainer }

    foreach( $File in $Files ){
        $Results.Add(( New-Object -TypeName psobject -Property @{
            Path = $File.Name
            Size = Get-FormattedSize -Size $File.Length
            } ))
        }

    $Results.Add( '' )
    }

$Results | Select-Object -Property Path, Size | Out-File "C:\FolderSizeList.txt"

Mine is attached.

FolderSizeList.txt

gijs007 commented 5 years ago

Sure. I ran the same command (although with an adjusted path). My FolderSizeList is attached:

FolderSizeList.txt

gijs007 commented 5 years ago

After comparing both lists, it seems that there is a file size difference for the Python3.exe file. Everything else is identical.

mattmcspirit commented 5 years ago

OK, that should be ok. I'm not sure why they are different, but I doubt it'll affect things, especially since you are using the -skipHostCustomization anyway, so it won't actually get installed.

I've made some adjustments to the dependencies downloader, and I am now running a test with the exact same command (with same folder names) as you. I will let you know if it succeeds, but if it does, it may have just been something in your environment.

I'll let you know. Thanks!

mattmcspirit commented 5 years ago

Worked without issue:

ASDK Configurator setup completed successfully, taking 03h:02m:16s.
You started the ASDK Configurator deployment at 11/17/2018 2:16 AM.
ASDK Configurator deployment completed at 11/17/2018 5:18 AM.
Transcript stopped, output file is C:\ConfigASDK\Logs\20181117\ConfigASDKLog1117-021638.txt

If it fails next time for you, we'll examine the logs, but for now, because your jobs failed after 1s, i suspect just a random issue.

Let's close this out for now, and re-open if a future run fails (when using the zip file).

Thanks!

gijs007 commented 5 years ago

I just retried this, and I'm still experiencing the same issue on a fresh deployment.

mattmcspirit commented 5 years ago

Hi. I really can’t help unless you please send me the log files, including the main ConfigASDK progress log file. The fact it works for me using your exact command (as previously shown in the comment above) tells me that there is something in your environment either with the zip file download or the running of the script itself and it may not be something I can fix. Share the logs and I will investigate it when I get time.

gijs007 commented 5 years ago

I'm afraid I only made a copy of the ASDK directory from the download path. So I don't have the main log file, since I just did a redeployment again (only have two machines at my disposal and I need a working ASDK. The other one is inactive, awaiting app service team's response).

Anyway, my educated guess is that the script can't find the jobs PowerShell scripts (in C:\ConfigASDK\Scripts). Since the jobs failed instantly and I don't see their logs in the downloadpath's ASDK directory.

If I'm not mistaken we've seen this error before, even though the files were actually present in (C:\ConfigASDK\Scripts).