Octodiff fails and breaks deployment

ServerTasks-397.log.txt (19 KB)

Hi Kudrin

Sorry to hear that!

Have you re-pushed a different package with the same version numbers which might have broken the delta ?

Can you try deleting the relevant files (the alba ones) in the package cache ? (C:\Octopus\OctopusServer\PackageCache) and rerun ?

Let me know how you go

Regards

Damian

It failes on random projects and not every run. Clearing files helps, but not for long.

We have TeamCity pushing packages - there were definitely no pushes with the same numbers.

The main goal now is to get deployments working. Is there any way to disable octodiff completely?

Sent from iPhone

22 июля 2015 г., в 16:50, Damian Maclennan <tender2+d561b837dd@tenderapp.commailto:tender2+d561b837dd@tenderapp.com> написал(а):

That is weird http://screencast.com/t/XdbHe7Y8A

Looks like a bug https://www.dropbox.com/s/6uvxau76w4dg2gt/ServerTasks-1604.log.txt?dl=0

Also, we have different projects like Danone and DanonBy - and Danone packages are mixed in DanoneBy deployments.

Hi Kudrin

“It failes on random projects and not every run. Clearing files helps, but not for long.”.

This sounds like a pointer to something. Is there anything on that server that could be modifying those files. If it works after you’ve cleared the cache then the deltas are working, but after a while the checksum fails.

“That is weird”

If you read the full log it makes sense, we possibly have that message at Info when it could be verbose.

“Also, we have different projects like Danone and DanonBy - and Danone packages are mixed in DanoneBy deployments.”

I don’t understand what this means, can you please elaborate ?

We’re doing some extra investigations on our end to see why this might be failing, we may have an additional fix soon.

If anyone also have this problem you can use a workaround.

You must clean C:\Octopus\Files folder on every server to force packages to be uploaded without using octodiff.

I’ve put this powershell script in scheduler and run it every minute:

$servers = ("Server1 Server2").Split(" ")
foreach ($server in $servers)
{
    Get-ChildItem "\\$server\C$\Octopus\Files" -ErrorAction SilentlyContinue | Where {$_.LastWriteTime -le (Get-Date).AddMinutes(-5)} | Remove-Item
}

Damian,

I think the problem is that octodiff thinks that package “Project.Tests” is the same as package “Project” - it is clear in my screenshot (look at arrows) and full log confirms this.

It is probably because you try to find maching (but not equal) package name. It would be better to check xml inside nuget package to find same packages.

Status: Octopus Deploy v3.0.4 now correctly handles fallback to use the full package if Octodiff fails so you should not need to do any workarounds.

The root cause is, as you point out @kudrin, a name mismatch problem. We have created an issue to track fixing that here: https://github.com/OctopusDeploy/Issues/issues/1755

Thanks for your help tracking down this issue.

Ian

Actually, 3.0.4 does not fix the problem - I mentioned it in github issue.

Sent from iPhone

24 июля 2015 г., в 0:01, Ian Mercer <tender2+d561b837dd@tenderapp.commailto:tender2+d561b837dd@tenderapp.com> написал(а):

Thanks, just saw that after replying, sorry, both issues are being looked at.