Shuttle / Shuttle.Esb

A highly extensible service bus implementation.
http://shuttle.github.io/shuttle-esb/
BSD 3-Clause "New" or "Revised" License
95 stars 30 forks source link

Shuttle.Esb 8.0.13 NuGet Package contains 9.1.3 DLL #33

Closed eric-bicknell closed 6 years ago

eric-bicknell commented 6 years ago

The version of the DLL contained in Shuttle.Esb.8.0.13\lib\net462-full is stamped with version information for 9.1.3, and does not appear to contain the fix for clearing RM and TM on receive processing.

Attached is the contents of the NuGet package.

Shuttle.Esb.8.0.13.zip

claytona-armstrong5 commented 6 years ago

Yes, just in case it's not clear Eben, 8.0.13 was the update that you did on the old version for us to resolve the issue with messages getting reprocessed after a database access failure while polling.

Some of our services are using .NET 4.6.2, and we noticed that they still exhibit the problem if there is a database failure. ie. they replay the last message.

Eric determined that it was because the assembly in the nuget package for .NET 4.6.2 does not appear to have the fix. Not sure how this could happen, but it's as though the assemblies for the different .Net versions were built from different versions of the code?

eben-roux commented 6 years ago

I'll have a look and get back to you as soon as I can.

eben-roux commented 6 years ago

OK, it seems as though Shuttle.Esb 8.0.13 should not be listed. I have unlisted it so you could go back to 8.0.12. I have a suspicion I inadvertently built and released 8.0.13 since I deleted the release from GitHub but I never unlisted in NuGet (build and publish happen in the same release msbuild script).

However, the actual fix was done in Shuttle.Esb.Sql.Queue on release 9.0.1. Perhaps you can check whether the same issue is present there. The code really should be the same since the build script simply iterates through the frameworks over the same code so it would be super odd if there are differences.

I'll be on https://gitter.im/Shuttle/Lobby if you'd like to chat.

eric-bicknell commented 6 years ago

All our production services are built to the 8.0.13 DLL you have pulled from NuGet, which puts us in a rather uncomfortable position should we need to patch them.

From what I can see, 8.0.12 does not contain the fix Clayton outlined above, and does not include a 462 DLL anyway, so downgrading is not an option.

Since we were running against the 9.1.3 DLL, and it still presented the "reprocessing of old messages" behaviour Clayton mentioned, can you please advise which version we should be looking to upgrade to in order to resolve the issue?

Can you also advise as to whether we need to upgrade all services at the same time, or if it is safe to run some on the old 8.0.13 version, and some on whatever the new version is?

eben-roux commented 6 years ago

Hi Eric,

I'm terribly sorry. It appears as though I wasn't quite concentrating yesterday :(

The reason why the .NET 4.6.2 was 9.1.3 is that the .NET 4.6.2 builds came in later and when I did the 8.0.13 build that assembly was still in the output folder from the 9.1.3 build.

Anyhow, I have relisted 8.0.13 although one can always get an unlisted version by explicitly specifying the version.

I have also created a new 8.0.14 version that also includes a .NET 4.6.2 build although I don't think any of the other components at that time had a 4.6.2 build

Apologies for the misunderstanding. Let me know if it works out.

eben-roux commented 6 years ago

Did you guys manage to this sorted?

eric-bicknell commented 6 years ago

I am updating to 8.0.14 and getting some tests run against it today - have been out of the office for a couple of days