COU-332 - Courier deploy throws exception

Created by Kenneth Jakobsen 25 May 2016, 06:49:20 Updated by Sebastiaan Janssen 19 Jan 2017, 10:10:03

Tags: Star

On our staging environment Courier suddenly broke! I'm given this error everytime i try to deploy to that environment: {"Message":"System.Web.Services.Protocols.SoapException: Server was unable to process request. ---\u003e System.InvalidOperationException: A call to SetContextId must occur before getting/setting a context\n at Umbraco.Courier.Core.GlobalExecutionContextManager.get_CurrentContext()\n at Umbraco.Courier.Core.GlobalExecutionContextManager.GetContext(Boolean createIfNoneExists)\n at Umbraco.Courier.RepositoryProviders.Webservices.Repository.Extract(String sessionKey, Byte[] item, ItemIdentifier itemId, Boolean overwrite, String user, String pass)\n --- End of inner exception stack trace ---","StackTrace":" at Umbraco.Courier.Core.TaskManager.GetSuccessfulProcessedTasks()\r\n at Umbraco.Courier.UI.Pages.ViewTaskManager.GetProcessed()","ExceptionType":"System.Web.Services.Protocols.SoapException"}

Our production still works though, but for how long? Also I need to recycle the apppool before any changes appear on the deployment sites! Is this intended

1 Attachments

Comments

Kenneth Jakobsen 01 Jun 2016, 10:32:23

@pploug Are you guys working on this?


Claus Jensen 20 Jun 2016, 08:58:03

@kennethxyz Can you make sure you are running the latest version of Courier (v2.52.8) and please confirm if you are still seeing these issues?


Kenneth Jakobsen 20 Jun 2016, 10:40:00

@claus Well something new definitely happened! i was trying to deploy (as usual) and then suddenly i got redirected from mydomain.com/umbraco to mydomain.com. And when i tried again I got this message: Here is some technical information that might help shed some light on whats happened:

Message: Internal Server Error

Exception Message: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.InvalidOperationException: Tried opening session with id: 60402bc4-f4a3-4748-a443-10c5892a6d09. - There is already an active session with id: 404d901d-dc4e-46e6-966d-0c1f49b91320 and there can only be one at Umbraco.Courier.Persistence.V6.NHibernate.NHibernateGlobalSessionManager.set_CurrentSessionId(String value) at Umbraco.Courier.Persistence.V6.NHibernate.NHibernateProvider.CloseSession(String key) at Umbraco.Courier.RepositoryProviders.Local.CloseSession(String key) at Umbraco.Courier.RepositoryProviders.Webservices.Repository.CloseSession(String sessionKey, String username, String password) --- End of inner exception stack trace ---

Exception Type: System.Web.Services.Protocols.SoapException

Stack Trace: at Umbraco.Courier.Core.TaskManager.GetSuccessfulProcessedTasks() at Umbraco.Courier.UI.Dialogs.CommitItem.GetTask(String id)


Kenneth Jakobsen 20 Jun 2016, 10:41:55

@claus Courier (v2.52.8)is not on our yet, just 2.52.7


Kenneth Jakobsen 20 Jun 2016, 10:53:57

@claus I got this error, but two times?!?! on 2.52.7

{"Message":"System.Web.Services.Protocols.SoapException: Server was unable to process request. ---\u003e System.InvalidOperationException: Tried opening session with id: cc12b3c7-4814-4684-92c7-0a019719214c. - There is already an active session with id: e22d7228-8818-470a-9f26-6139a87f0530 and there can only be one\n at Umbraco.Courier.Persistence.V6.NHibernate.NHibernateGlobalSessionManager.set_CurrentSessionId(String value)\n at Umbraco.Courier.Persistence.V6.NHibernate.NHibernateProvider.CloseSession(String key)\n at Umbraco.Courier.RepositoryProviders.Local.CloseSession(String key)\n at Umbraco.Courier.RepositoryProviders.Webservices.Repository.CloseSession(String sessionKey, String username, String password)\n --- End of inner exception stack trace ---","StackTrace":" at Umbraco.Courier.Core.TaskManager.GetSuccessfulProcessedTasks()\r\n at Umbraco.Courier.UI.Pages.ViewTaskManager.GetProcessed()","ExceptionType":"System.Web.Services.Protocols.SoapException"}


Kenneth Jakobsen 20 Jun 2016, 13:00:02

@claus new development still calling GetProcessed 2 times! first time i get no error:

{"d":[{"__type":"Umbraco.Courier.Core.TaskManager+TaskEntry","State":"completed","UniqueId":"dd1b1ac9-a025-480b-b892-338ebc7cc26c","User":null,"TimeStamp":"/Date(1466426943501)/","Completed":"/Date(-62135596800000)/","TaskType":"Umbraco.Courier.Core.Tasks.PackagingTask","Message":"Completed on: 6/20/2016 12:49:15 PM","RevisionAlias":"__e1ba7fcd-c03e-45a9-8f4e-de05308efb4a","Progress":0,"FriendlyName":"Packaging 7372e1f7-3d96-4c91-a095-420de6d423a4","Exception":null}]}

Next time i get this:

{"Message":"System.Web.Services.Protocols.SoapException: Server was unable to process request. ---\u003e System.InvalidOperationException: Tried opening session with id: 44214da3-8f3d-4539-9d09-bf87475dd6aa. - There is already an active session with id: d1dc0b93-3ddf-418d-86b8-d5c8e71a5bed and there can only be one\n at Umbraco.Courier.Persistence.V6.NHibernate.NHibernateGlobalSessionManager.set_CurrentSessionId(String value)\n at Umbraco.Courier.Persistence.V6.NHibernate.NHibernateProvider.CloseSession(String key)\n at Umbraco.Courier.RepositoryProviders.Local.CloseSession(String key)\n at Umbraco.Courier.RepositoryProviders.Webservices.Repository.CloseSession(String sessionKey, String username, String password)\n --- End of inner exception stack trace ---","StackTrace":" at Umbraco.Courier.Core.TaskManager.GetSuccessfulProcessedTasks()\r\n at Umbraco.Courier.UI.Pages.ViewTaskManager.GetProcessed()","ExceptionType":"System.Web.Services.Protocols.SoapException"}


Claus Jensen 20 Jun 2016, 13:01:03

@kennethxyz 2.52.7 should be okay as well - the *.8 might not be released on Our yet.

It looks like you have an open session already and try to do a deployment before that one has finished. If you get stuck with a session open, one way to clear it is to bump the web.config/restart the website at the website you are trying to deploy to.

There's really not a lot of clues in the log entry you have added here, as to why this might be happening. Is it happening randomly or is it consistent and reproduceable?

Also - is this a plain Courier setup or is it a Umbraco as a Service project?


Kenneth Jakobsen 20 Jun 2016, 13:06:02

@claus It happens every time i try to deploy! even after a restart of the server. I can head by your office tomorrow if you have time to look at it?


Claus Jensen 20 Jun 2016, 13:13:28

@kennethxyz Sorry - I don't - it will have to be included in the sprint planning for the next sprint.

Is this happening on a UaaS site or a plain Courier setup?


Kenneth Jakobsen 20 Jun 2016, 13:18:07

@claus i'm running a 3 environment Azure setup so plain courier?


Simon Bays 19 Jul 2016, 11:31:57

I'm also experiencing this error. Running Courier 2.52.13 with a 2 environment Azure setup. We cannot deploy from staging to production as I get this error every time GetProcessed is called. Was any progress made on this?


Umbraco 01 Aug 2016, 12:11:09

Hi all,

We've tested this setup with new Umbraco installs with latest Courier and cannot replicate. Can you please ensure that you are definitely running the latest courier + umbraco versions. Also if you can test setting up a new Umbraco install with Courier and testing with this setup. If you do not have this problem with a new install then we would need to figure out what it is about your actual website that is causing the problem. We are actively working on a Courier 3.0 and should have a beta out very soon for you to test, this version should fix a lot of issues, perhaps related to this too.


Jayjay Cayetano 11 Oct 2016, 01:21:11

Hello All, I've experienced this one as well on 2.52.14. This is a plain Courier setup. I was trying to Courier a Media Type with an umbracoFile property. That particular media type has a 200mb file with it.

{"Message":"System.Web.Services.Protocols.SoapException: Server was unable to process request. ---\u003e System.InvalidOperationException: A call to SetContextId must occur before getting/setting a context \n at Umbraco.Courier.Core.GlobalExecutionContextManager.get_CurrentContext()\n at Umbraco.Courier .Core.GlobalExecutionContextManager.GetContext(Boolean createIfNoneExists)\n at Umbraco.Courier.RepositoryProviders .Webservices.Repository.Extract(String sessionKey, Byte[] item, ItemIdentifier itemId, Boolean overwrite , String user, String pass)\n --- End of inner exception stack trace ---","StackTrace":" at Umbraco .Courier.Core.TaskManager.GetSuccessfulProcessedTasks()\r\n at Umbraco.Courier.UI.Pages.ViewTaskManager .GetProcessed()","ExceptionType":"System.Web.Services.Protocols.SoapException"}


Warren Buckley 09 Dec 2016, 13:46:50

@claus I was going to pick this up from the backlog as the effort/points assigned of 0.5 seemed small & ideal for me to pick up.

But I am missing some context of what the problem is & the potential resolution is, so without these details I am not sure what the considered fix/solution is to this


Sebastiaan Janssen 23 Dec 2016, 10:50:14

With the release of Courier v3 this problem is now fixed. You can fine the latest version here: https://our.umbraco.org/projects/umbraco-pro/umbraco-courier/

And some more info about v3 is in this blog post: https://umbraco.com/follow-us/blog-archive/2016/12/22/courier-version-3-a-lot-faster-and-more-reliable/


Priority: Normal

Type: Bug

State: Closed

Assignee:

Difficulty:

Category:

Backwards Compatible: True

Fix Submitted:

Affected versions:

Due in version:

Sprint: Sprint 49

Story Points: 0.5

Cycle: