Erratic behavior displaying (un)published or protected pages
We are experiencing some very wierd and erratic behavior when we (un)publish or (un)protect pages. We think they are related, so I'm describing in a single post. The two scenario's are described below.
In the first scenario at least the behavior is consistent (although wrong). In the second scenario I can't predict whether I will see the protected page on the next refresh or not.
This only happens in our production environment, but we have no idea where to start looking. We're currently at Umbraco 4.03 on (I presume) Windows 2008, IIS 7.0, and ASP.NET 3.5 SP1 (this is a hosted environment).
(un)publish scenario:
Create a page
Publish page
View page
Unpublish page
View it -> page visible
Refresh -> page (still) visible
Refresh -> error "page not available"
Refresh --> page visible
Refresh --> page visible
So after step 7 the page remains visible, even though it is unpublished. Audit trail shows Saves and Publishes, but no Unpublish. And we see the following error message:
Error indexing node: (System.IndexOutOfRangeException: Index was outside the bounds of the array. at Lucene.Net.Util.BitVector.Get(Int32 bit) at Lucene.Net.Index.SegmentReader.IsDeleted(Int32 n) at Lucene.Net.Index.SegmentMerger.MergeFields() at Lucene.Net.Index.SegmentMerger.Merge() at Lucene.Net.Index.IndexWriter.MergeSegments(Int32 minSegment, Int32 end) at Lucene.Net.Index.IndexWriter.MaybeMergeSegments() at Lucene.Net.Index.IndexWriter.AddDocument(Document doc, Analyzer analyzer) at Lucene.Net.Index.IndexWriter.AddDocument(Document doc) at umbraco.cms.businesslogic.index.Indexer.IndexNode(Guid ObjectType, Int32 Id, String Text, String UserName, DateTime CreateDate, Hashtable Fields, Boolean Optimize) in d:\TeamCity\buildAgent\work\7380c184e9fcd3ea\umbraco\cms\businesslogic\index\Indexer.cs:line 198)
protect page scenario:
Create page
Publish page
View page
Protect page (role based)
View page -> refered to login
Login
View page -> Access Denied page is shown
Refresh -> page is shown
Refresh -> Access Denied page is shown
Refresh -> page is shown
etc.
So after the page has been secured, it intermittently is shown or access is denied. Audit trail is similar to the other scenario.
Hmm, I can't offer a great deal of info to be honest, but the one thing I probably would ask is whether the hosting environment is on any kind of load balanced server, or similar architecture as it could be that it's not being updated on all nodes and so on one request it's one thing, and on the other its another.
As I say, that's pretty much the only suggestion I can offer. But worth checking.
We've checked with the hosting company, there is no load balancing or anyhting else that could explain this behavior.
We just retested and used different browsers, and different browsers at the same time. It looked for an instant that the problem was solved, but it was not. We can hide the page, but even then in some cases the "old" menu pops up and you can still navigate to it. This is really frustrating...
We thought we solved this by running in a dedicated app pool, but after a while the problem returned. Now recycling the app pool no longer helps either.
Update: The hoster is running Windows 2003 R2 with IIS 6.0. We are now teporarily moving to another server (Windows 2008 R2 with IIS 7.0) to see if the issue persists. Since we don't have any problems in dev and test environments (which are all Windows 2008), out assumption is that we will not have the problem there.
With the above said, we are very much looking for anybody who can shed some light on why the **** this is happening!
Erratic behavior displaying (un)published or protected pages
We are experiencing some very wierd and erratic behavior when we (un)publish or (un)protect pages. We think they are related, so I'm describing in a single post. The two scenario's are described below.
In the first scenario at least the behavior is consistent (although wrong). In the second scenario I can't predict whether I will see the protected page on the next refresh or not.
This only happens in our production environment, but we have no idea where to start looking. We're currently at Umbraco 4.03 on (I presume) Windows 2008, IIS 7.0, and ASP.NET 3.5 SP1 (this is a hosted environment).
(un)publish scenario:
So after step 7 the page remains visible, even though it is unpublished. Audit trail shows Saves and Publishes, but no Unpublish. And we see the following error message:
Error indexing node: (System.IndexOutOfRangeException: Index was outside the bounds of the array. at Lucene.Net.Util.BitVector.Get(Int32 bit) at Lucene.Net.Index.SegmentReader.IsDeleted(Int32 n) at Lucene.Net.Index.SegmentMerger.MergeFields() at Lucene.Net.Index.SegmentMerger.Merge() at Lucene.Net.Index.IndexWriter.MergeSegments(Int32 minSegment, Int32 end) at Lucene.Net.Index.IndexWriter.MaybeMergeSegments() at Lucene.Net.Index.IndexWriter.AddDocument(Document doc, Analyzer analyzer) at Lucene.Net.Index.IndexWriter.AddDocument(Document doc) at umbraco.cms.businesslogic.index.Indexer.IndexNode(Guid ObjectType, Int32 Id, String Text, String UserName, DateTime CreateDate, Hashtable Fields, Boolean Optimize) in d:\TeamCity\buildAgent\work\7380c184e9fcd3ea\umbraco\cms\businesslogic\index\Indexer.cs:line 198)
protect page scenario:
So after the page has been secured, it intermittently is shown or access is denied. Audit trail is similar to the other scenario.
Hi Michiel,
Hmm, I can't offer a great deal of info to be honest, but the one thing I probably would ask is whether the hosting environment is on any kind of load balanced server, or similar architecture as it could be that it's not being updated on all nodes and so on one request it's one thing, and on the other its another.
As I say, that's pretty much the only suggestion I can offer. But worth checking.
Cheers
Matt
We've checked with the hosting company, there is no load balancing or anyhting else that could explain this behavior.
We just retested and used different browsers, and different browsers at the same time. It looked for an instant that the problem was solved, but it was not. We can hide the page, but even then in some cases the "old" menu pops up and you can still navigate to it. This is really frustrating...
We thought we solved this by running in a dedicated app pool, but after a while the problem returned. Now recycling the app pool no longer helps either.
Update: The hoster is running Windows 2003 R2 with IIS 6.0. We are now teporarily moving to another server (Windows 2008 R2 with IIS 7.0) to see if the issue persists. Since we don't have any problems in dev and test environments (which are all Windows 2008), out assumption is that we will not have the problem there.
With the above said, we are very much looking for anybody who can shed some light on why the **** this is happening!
is working on a reply...