{"action":"created","issue":{"url":"https://api.github.com/repos/Particular/NServiceBus.NHibernate/issues/241","repository_url":"https://api.github.com/repos/Particular/NServiceBus.NHibernate","labels_url":"https://api.github.com/repos/Particular/NServiceBus.NHibernate/issues/241/labels{/name}","comments_url":"https://api.github.com/repos/Particular/NServiceBus.NHibernate/issues/241/comments","events_url":"https://api.github.com/repos/Particular/NServiceBus.NHibernate/issues/241/events","html_url":"https://github.com/Particular/NServiceBus.NHibernate/issues/241","id":189357081,"number":241,"title":"OutboxCleaner.PerformCleanup tears down the endpoint","user":{"login":"timbussmann","id":3524870,"avatar_url":"https://avatars.githubusercontent.com/u/3524870?v=3","gravatar_id":"","url":"https://api.github.com/users/timbussmann","html_url":"https://github.com/timbussmann","followers_url":"https://api.github.com/users/timbussmann/followers","following_url":"https://api.github.com/users/timbussmann/following{/other_user}","gists_url":"https://api.github.com/users/timbussmann/gists{/gist_id}","starred_url":"https://api.github.com/users/timbussmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timbussmann/subscriptions","organizations_url":"https://api.github.com/users/timbussmann/orgs","repos_url":"https://api.github.com/users/timbussmann/repos","events_url":"https://api.github.com/users/timbussmann/events{/privacy}","received_events_url":"https://api.github.com/users/timbussmann/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/Particular/NServiceBus.NHibernate/milestones/39","html_url":"https://github.com/Particular/NServiceBus.NHibernate/milestones/7.0.2","labels_url":"https://api.github.com/repos/Particular/NServiceBus.NHibernate/milestones/39/labels","id":2143742,"number":39,"title":"7.0.2","description":"","creator":{"login":"MarcinHoppe","id":475629,"avatar_url":"https://avatars.githubusercontent.com/u/475629?v=3","gravatar_id":"","url":"https://api.github.com/users/MarcinHoppe","html_url":"https://github.com/MarcinHoppe","followers_url":"https://api.github.com/users/MarcinHoppe/followers","following_url":"https://api.github.com/users/MarcinHoppe/following{/other_user}","gists_url":"https://api.github.com/users/MarcinHoppe/gists{/gist_id}","starred_url":"https://api.github.com/users/MarcinHoppe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MarcinHoppe/subscriptions","organizations_url":"https://api.github.com/users/MarcinHoppe/orgs","repos_url":"https://api.github.com/users/MarcinHoppe/repos","events_url":"https://api.github.com/users/MarcinHoppe/events{/privacy}","received_events_url":"https://api.github.com/users/MarcinHoppe/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":1,"state":"open","created_at":"2016-11-18T09:40:41Z","updated_at":"2016-12-01T09:17:06Z","due_on":null,"closed_at":null},"comments":11,"created_at":"2016-11-15T10:41:32Z","updated_at":"2016-12-05T07:41:01Z","closed_at":"2016-12-01T09:17:06Z","body":"It seems that a connection failure during `OutboxCleaner.PerformCleanup` will tear down the endpoint, as exceptions aren't catched and will bubble up to the executing thread. See the issue here: https://github.com/Particular/NServiceBus/issues/4293\r\n\r\nGiven the fact, that we use circuit breakers to handle persistence failures in other places (e.g. the timeout manager) before directly shutting down the endpoint, I think it would be reasonable to do the same with the cleanup task. It probably makes sense to still fail the endpoint after the cleanup task wasn't able to run for a specified amount of time (several hours?).\r\n\r\nping @Particular/nhibernate-persistence-maintainers \r\n\r\n### Plan of Attack\r\n\r\n- [x] Add a circuit breaker to the Outbox cleanup task: #242 \r\n- [x] Decide on how to configure the time to wait before triggering the circuit breaker\r\n- [ ] Update the doco\r\n  - [ ] [Critical exception wait time](https://docs.particular.net/nservicebus/recoverability/critical-exception-for-timeout-outages)\r\n  - [ ] [Outbox with NHibernate persistence](https://docs.particular.net/nservicebus/nhibernate/outbox)"},"comment":{"url":"https://api.github.com/repos/Particular/NServiceBus.NHibernate/issues/comments/264786498","html_url":"https://github.com/Particular/NServiceBus.NHibernate/issues/241#issuecomment-264786498","issue_url":"https://api.github.com/repos/Particular/NServiceBus.NHibernate/issues/241","id":264786498,"user":{"login":"SzymonPobiega","id":163318,"avatar_url":"https://avatars.githubusercontent.com/u/163318?v=3","gravatar_id":"","url":"https://api.github.com/users/SzymonPobiega","html_url":"https://github.com/SzymonPobiega","followers_url":"https://api.github.com/users/SzymonPobiega/followers","following_url":"https://api.github.com/users/SzymonPobiega/following{/other_user}","gists_url":"https://api.github.com/users/SzymonPobiega/gists{/gist_id}","starred_url":"https://api.github.com/users/SzymonPobiega/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SzymonPobiega/subscriptions","organizations_url":"https://api.github.com/users/SzymonPobiega/orgs","repos_url":"https://api.github.com/users/SzymonPobiega/repos","events_url":"https://api.github.com/users/SzymonPobiega/events{/privacy}","received_events_url":"https://api.github.com/users/SzymonPobiega/received_events","type":"User","site_admin":false},"created_at":"2016-12-05T07:41:01Z","updated_at":"2016-12-05T07:41:01Z","body":"Well, it feels kind of awkward to document this by saying users are required to modify `NServiceBus/Outbox/NHibernate/TimeToWaitBeforeTriggeringCriticalErrorWhenCleanupTaskFails` application setting. Should we add a public extension method for setting this?"}}
{"actor":{"display_login":"SzymonPobiega"}}