Lucene.Net.Store.AlreadyClosedException: this IndexReader is closed
Hi,
We're experiencing issues with our 8.6 Umbraco version from time to time:
I think it's the same issue but we're getting 3 kinds of errors:
1) When searching in Umbraco backoffice:
Error: this IndexReader is closed
Details: Lucene.Net.Store.AlreadyClosedException: this IndexReader is
closed StackTrace: at Lucene.Net.Index.IndexReader.EnsureOpen() in
d:\Lucene.Net\FullRepo\trunk\src\core\Index\IndexReader.cs:line 204
at Lucene.Net.Index.DirectoryReader.GetFieldNames(FieldOption
fieldNames) in
d:\Lucene.Net\FullRepo\trunk\src\core\Index\DirectoryReader.cs:line
1055 at
Examine.LuceneEngine.Providers.LuceneSearcher.GetAllIndexedFields() in
C:\projects\examine-qvx04\src\Examine\LuceneEngine\Providers\LuceneSearcher.cs:line
101 at
Examine.LuceneEngine.Providers.BaseLuceneSearcher.CreateQuery(String
category, BooleanOperation defaultOperation, Analyzer luceneAnalyzer,
LuceneSearchOptions searchOptions) in
C:\projects\examine-qvx04\src\Examine\LuceneEngine\Providers\BaseLuceneSearcher.cs:line
64 at
Examine.LuceneEngine.Providers.BaseLuceneSearcher.CreateQuery(String
category, BooleanOperation defaultOperation) in
C:\projects\examine-qvx04\src\Examine\LuceneEngine\Providers\BaseLuceneSearcher.cs:line
49 at Umbraco.Web.Search.UmbracoTreeSearcher.ExamineSearch(String
query, UmbracoEntityTypes entityType, Int32 pageSize, Int64 pageIndex,
Int64& totalFound, String searchFrom, Boolean ignoreUserStartNodes) in
D:\a\1\s\src\Umbraco.Web\Search\UmbracoTreeSearcher.cs:line 128 at
Umbraco.Web.Trees.ContentTreeController.Search(String query, Int32
pageSize, Int64 pageIndex, Int64& totalFound, String searchFrom) in
D:\a\1\s\src\Umbraco.Web\Trees\ContentTreeController.cs:line 331 at
Umbraco.Web.Editors.EntityController.SearchAll(String query) in
D:\a\1\s\src\Umbraco.Web\Editors\EntityController.cs:line 152 at
lambdamethod(Closure , Object , Object[] ) at
System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>cDisplayClass62.
2) when saving a document:
Error: Exceptions were thrown by listed actions. Details:
System.AggregateException: Exceptions were thrown by listed actions.
Stacktrace: at Umbraco.Core.Scoping.ScopeContext.ScopeExit(Boolean
completed) in D:\a\1\s\src\Umbraco.Core\Scoping\ScopeContext.cs:line
38 at
Umbraco.Core.Scoping.Scope.<>cDisplayClass710.2() in
D:\a\1\s\src\Umbraco.Core\Scoping\Scope.cs:line 437 at
Umbraco.Core.Scoping.Scope.TryFinally(Int32 index, Action[] actions)
in D:\a\1\s\src\Umbraco.Core\Scoping\Scope.cs:line 472 at
Umbraco.Core.Scoping.Scope.TryFinally(Int32 index, Action[] actions)
in D:\a\1\s\src\Umbraco.Core\Scoping\Scope.cs:line 476 at
Umbraco.Core.Scoping.Scope.TryFinally(Int32 index, Action[] actions)
in D:\a\1\s\src\Umbraco.Core\Scoping\Scope.cs:line 476 at
Umbraco.Core.Scoping.Scope.RobustExit(Boolean completed, Boolean
onException) in D:\a\1\s\src\Umbraco.Core\Scoping\Scope.cs:line 420
at Umbraco.Core.Scoping.Scope.DisposeLastScope() in
D:\a\1\s\src\Umbraco.Core\Scoping\Scope.cs:line 400 at
Umbraco.Core.Scoping.Scope.Dispose() in
D:\a\1\s\src\Umbraco.Core\Scoping\Scope.cs:line 363 at
Umbraco.Core.Services.Implement.ContentService.SaveAndPublish(IContent
content, String[] cultures, Int32 userId, Boolean raiseEvents) in
D:\a\1\s\src\Umbraco.Core\Services\Implement\ContentService.cs:line
951 at
Umbraco.Web.Editors.ContentController.PublishInternal(ContentItemSave
contentItem, String defaultCulture, String cultureForInvariantErrors,
Boolean& wasCancelled, String[]& successfulCultures) in
D:\a\1\s\src\Umbraco.Web\Editors\ContentController.cs:line 1263 at
Umbraco.Web.Editors.ContentController.PostSaveInternal(ContentItemSave
contentItem, Func2 saveMethod, Func2 mapToDisplay) in
D:\a\1\s\src\Umbraco.Web\Editors\ContentController.cs:line 728 at
Umbraco.Web.Editors.ContentController.PostSave(ContentItemSave
contentItem) in
D:\a\1\s\src\Umbraco.Web\Editors\ContentController.cs:line 599 at
lambdamethod(Closure , Object , Object[] ) at
System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>cDisplayClass6_2.2(Object
instance, Object[] methodParameters) at
System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object
instance, Object[] arguments) at
System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext
controllerContext, IDictionary2 arguments, CancellationToken
cancellationToken)
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()
Inner Exception System.ObjectDisposedException: The
CancellationTokenSource has been disposed. at
System.Threading.CancellationTokenSource.ThrowObjectDisposedException()
at
Examine.LuceneEngine.Providers.LuceneIndex.SafelyProcessQueueItems(Action1
onComplete) in
C:\projects\examine-qvx04\src\Examine\LuceneEngine\Providers\LuceneIndex.cs:line
783 at
Examine.LuceneEngine.Providers.LuceneIndex.PerformIndexItems(IEnumerable1
values, Action1 onComplete) in
C:\projects\examine-qvx04\src\Examine\LuceneEngine\Providers\LuceneIndex.cs:line
302 at
Umbraco.Examine.UmbracoContentIndex.PerformIndexItems(IEnumerable1
values, Action1 onComplete) in
D:\a\1\s\src\Umbraco.Examine\UmbracoContentIndex.cs:line 102 at
Examine.Providers.BaseIndexProvider.IndexItems(IEnumerable1 values)
in
C:\projects\examine-qvx04\src\Examine\Providers\BaseIndexProvider.cs:line
76 at
Umbraco.Web.Search.ExamineComponent.DeferedReIndexForContent.Execute(ExamineComponent
examineComponent, IContent content, Boolean isPublished) in
D:\a\1\s\src\Umbraco.Web\Search\ExamineComponent.cs:line 603 at
Umbraco.Web.Search.ExamineComponent.DeferedReIndexForContent.Execute()
in D:\a\1\s\src\Umbraco.Web\Search\ExamineComponent.cs:line 598 at
Umbraco.Web.Search.ExamineComponent.DeferedActions.Execute() in
D:\a\1\s\src\Umbraco.Web\Search\ExamineComponent.cs:line 572 at
Umbraco.Web.Search.ExamineComponent.DeferedActions.<>c.<Get>b__1_1(Boolean
completed, DeferedActions actions) in
D:\a\1\s\src\Umbraco.Web\Search\ExamineComponent.cs:line 561 at
Umbraco.Core.Scoping.ScopeContext.EnlistedObject1.Execute(Boolean
completed) in D:\a\1\s\src\Umbraco.Core\Scoping\ScopeContext.cs:line
69 at Umbraco.Core.Scoping.ScopeContext.ScopeExit(Boolean
completed) in D:\a\1\s\src\Umbraco.Core\Scoping\ScopeContext.cs:line
26
I guess the original exception is here:
System.ObjectDisposedException: The CancellationTokenSource has been
disposed. at
System.Threading.CancellationTokenSource.ThrowObjectDisposedException()
at
Examine.LuceneEngine.Providers.LuceneIndex.SafelyProcessQueueItems(Action1
onComplete) in
C:\projects\examine-qvx04\src\Examine\LuceneEngine\Providers\LuceneIndex.cs:line
783 at
Examine.LuceneEngine.Providers.LuceneIndex.PerformIndexItems(IEnumerable1
values, Action1 onComplete) in
C:\projects\examine-qvx04\src\Examine\LuceneEngine\Providers\LuceneIndex.cs:line
302 at
Umbraco.Examine.UmbracoContentIndex.PerformIndexItems(IEnumerable1
values, Action1 onComplete) in
D:\a\1\s\src\Umbraco.Examine\UmbracoContentIndex.cs:line 102 at
Examine.Providers.BaseIndexProvider.IndexItems(IEnumerable1 values)
in
C:\projects\examine-qvx04\src\Examine\Providers\BaseIndexProvider.cs:line
76 at
Umbraco.Web.Search.ExamineComponent.DeferedReIndexForContent.Execute(ExamineComponent
examineComponent, IContent content, Boolean isPublished) in
D:\a\1\s\src\Umbraco.Web\Search\ExamineComponent.cs:line 603 at
Umbraco.Web.Search.ExamineComponent.DeferedReIndexForContent.Execute()
in D:\a\1\s\src\Umbraco.Web\Search\ExamineComponent.cs:line 598 at
Umbraco.Web.Search.ExamineComponent.DeferedActions.Execute() in
D:\a\1\s\src\Umbraco.Web\Search\ExamineComponent.cs:line 572 at
Umbraco.Web.Search.ExamineComponent.DeferedActions.<>c.
When we're trying to access the Settings -> Examine management we're also getting an exception so we can't manage indexes.
Once we touch the web.config everything works fine for a few hours and then the above issues appear again.
I'm having the exact same issue. Did you ever get to the bottom of this?
In addition to the stack trace shown on screen, the Umbraco logs shows this inner exception:
System.AggregateException: Exceptions were thrown by listed actions. ---> System.ObjectDisposedException:
The CancellationTokenSource has been disposed.
at System.Threading.CancellationTokenSource.ThrowObjectDisposedException()
at Examine.LuceneEngine.Providers.LuceneIndex.SafelyProcessQueueItems(Action`1 onComplete)
Yes it is hosted in Azure as a web app. It is not load balanced but is using the medium scalable Azure template where the front-end and back-office Umbraco applications are running as separate web apps, the output cache/session state are stored in a Redis cache, and file storage is using Azure blob storage. At the moment only the back office application is actually in use, though. Does this still require load balanced configuration changes? Any suggestions?
We have live setup very similar to yours so we have a backend webhead and frontend web head, so not load balancing but 2 instances sharing a db. We are on 8.4.1
Can you explain why that package is necessary? It seems from it's readme like it's for allowing you to configure indexes from config file again (lost in v8), but I have no custom indexes and the SyncTempEnvDirectoryFactory setting is surely an existing built-in setting?
Did this package solve the above issue for you? Is there any additional configuration required if so?
Also, there are tons of fixes in Umbraco relating to scopes, indexing, etc... from 8.6x to vLatest. I would recommend you upgrade. See here for a comparison of fixes: https://our.umbraco.com/download/releases/compare?from=8.6.0&to=8.15.1. You can see there's plenty of scope and indexing issues fixed since that version.
This has been taunting me for awhile, and to the point that I thought we may have to cancel our back-end switch to Umbraco we were hoping to launch "yesterday".
Thanks to this thread, upgraded Umbraco (8.6.4 -> 8.16) and Examine via NuGet, and so far it's running faster than usual in Azure, and the Examine Engine functionality I'm tapped into are working great.
Time will still tell, but I'm slightly more confident now.
Question: It appears that I "SHOULD" be able to have auto-scaling for the azure app set to, say, 3 instances instead of 1, and not have an issue? I know there's quite a bit more involved for load balancing, but multiple instances should be ok, correct? I want to take advantage of the 2 or more for EULA backing.
Lucene.Net.Store.AlreadyClosedException: this IndexReader is closed
Hi,
We're experiencing issues with our 8.6 Umbraco version from time to time:
I think it's the same issue but we're getting 3 kinds of errors:
1) When searching in Umbraco backoffice:
2) when saving a document:
I guess the original exception is here:
When we're trying to access the Settings -> Examine management we're also getting an exception so we can't manage indexes.
Once we touch the web.config everything works fine for a few hours and then the above issues appear again.
We're running in Azure, we followed the instructions from https://our.umbraco.com/documentation/getting-started/setup/server-setup/azure-web-apps
Other details: Examine 1.0.3 Lucene.Net: 3.0.3
Please help!
Hi Potcoava,
I'm having the exact same issue. Did you ever get to the bottom of this?
In addition to the stack trace shown on screen, the Umbraco logs shows this inner exception:
Thanks, Conor Breen
Is this site on azure? Also are you load balancing?
Hi Ismail,
Yes it is hosted in Azure as a web app. It is not load balanced but is using the medium scalable Azure template where the front-end and back-office Umbraco applications are running as separate web apps, the output cache/session state are stored in a Redis cache, and file storage is using Azure blob storage. At the moment only the back office application is actually in use, though. Does this still require load balanced configuration changes? Any suggestions?
I've seen similar posts reference this as a potential solution: https://github.com/Shazwazza/Examine/issues/80
Does that seem like it would help in this scenario?
Thanks, Conor
Conor,
Can you check that indexes are setup for azure, you need to ensure they use
You will need to use https://github.com/callumbwhyte/umbraco-examine-config
We have live setup very similar to yours so we have a backend webhead and frontend web head, so not load balancing but 2 instances sharing a db. We are on 8.4.1
Hi Ishmail,
Can you explain why that package is necessary? It seems from it's readme like it's for allowing you to configure indexes from config file again (lost in v8), but I have no custom indexes and the SyncTempEnvDirectoryFactory setting is surely an existing built-in setting?
Did this package solve the above issue for you? Is there any additional configuration required if so?
FYI we are using Umbraco 8.6.0.
Thanks, Conor
I had to do this plus had issue with nucache when using slots, with examine by default the analyser is not synchtemp afaik
OK, thanks Ishmail - will give it a go. FYI I had followed this guide for setup, so that config setting was already there https://our.umbraco.com/documentation/getting-started/setup/server-setup/azure-web-apps.
We are not using Azure slots so hopefully won't run into your other issue. Will update this thread when I found out if this has fixed the issue.
Thanks, Conor
Any updates on this? I have the same problem with 8.6, i have tried both options: TempEnvDirectoryFactory and SyncTempEnvDirectoryFactory
combined with these:
But at some point it seems examine is locked and i get errors when saving a document. I also use Azure web app, using S2 tier.
Any updates on this? Keep getting this from time to time. 8.6.4 running on Azure (not load-balanced) with proper config according to https://our.umbraco.com/documentation/Getting-Started/Setup/Server-Setup/azure-web-apps
we have the same issue with a website in Umbraco version 8.6.1 running on azure and not running load-balancing. have any resolved this issue ?
Please make sure you are using the latest Examine version: 1.2.1 https://www.nuget.org/packages/Examine/1.2.1
Also, there are tons of fixes in Umbraco relating to scopes, indexing, etc... from 8.6x to vLatest. I would recommend you upgrade. See here for a comparison of fixes: https://our.umbraco.com/download/releases/compare?from=8.6.0&to=8.15.1. You can see there's plenty of scope and indexing issues fixed since that version.
Also, please make sure you follow the configuration required to run in Azure https://our.umbraco.com/documentation/Fundamentals/Setup/Server-Setup/azure-web-apps and if load balancing see https://our.umbraco.com/documentation/Fundamentals/Setup/Server-Setup/Load-Balancing/azure-web-apps
Hi. i did an upgrade to 8.12 and that does seem to have resolved these issues. we have had no index fails since then.
This has been taunting me for awhile, and to the point that I thought we may have to cancel our back-end switch to Umbraco we were hoping to launch "yesterday".
Thanks to this thread, upgraded Umbraco (8.6.4 -> 8.16) and Examine via NuGet, and so far it's running faster than usual in Azure, and the Examine Engine functionality I'm tapped into are working great.
Time will still tell, but I'm slightly more confident now.
Question: It appears that I "SHOULD" be able to have auto-scaling for the azure app set to, say, 3 instances instead of 1, and not have an issue? I know there's quite a bit more involved for load balancing, but multiple instances should be ok, correct? I want to take advantage of the 2 or more for EULA backing.
You can only scale front-end instances. The back office cannot scale, you will have problems.
See LB docs: https://our.umbraco.com/documentation/Fundamentals/Setup/Server-Setup/Load-Balancing/azure-web-apps
Thanks for the link. I'll research more.
is working on a reply...