Articulate icon indicating copy to clipboard operation
Articulate copied to clipboard

StackOverflow Exception browsing tag routes if more than (x) tags

Open nvisage-gf opened this issue 7 years ago • 2 comments

In testing with 314 posts and 78 unique tags browsing to the /tags route generates a StackOverflow exception within a few seconds. 308 posts and 35 tags does not seem to cause an issue.

It does not appear to be related to tag or post contents; the issue can be recreated creating dummy post and tag data with the import routines.

The stack trace available at the time shows recursive calls to serialisation; don't have any traces back to Articulate or Umbraco managed code.

nvisage-gf avatar May 16 '17 22:05 nvisage-gf

Attached dummy BlogML import feed allows problem to be recreated. It's just 75 numbered posts with same Id used to create 75 categories / tags.

Issue occurs when browsing the /tags or /categories route.

Active frame stack dump:

>	System.Runtime.Serialization.dll!System.Xml.XmlStreamNodeWriter.UnsafeGetUTF8Chars(char* chars, int charCount, byte[] buffer, int offset)	Unknown
 	System.Runtime.Serialization.dll!System.Xml.XmlStreamNodeWriter.UnsafeWriteUTF8Chars(char* chars, int charCount)	Unknown
 	System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.XmlJsonWriter.WriteEscapedJsonString(string str)	Unknown
 	System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.XmlJsonWriter.WriteString(string text)	Unknown
 	System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.XmlJsonWriter.WriteValue(string value)	Unknown
 	System.Runtime.Serialization.dll!System.Runtime.Serialization.StringDataContract.WriteXmlValue(System.Runtime.Serialization.XmlWriterDelegator writer, object obj, System.Runtime.Serialization.XmlObjectSerializerWriteContext context)	Unknown
 	System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.JsonDataContract.WriteJsonValueCore(System.Runtime.Serialization.XmlWriterDelegator jsonWriter, object obj, System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson context, System.RuntimeTypeHandle declaredTypeHandle)	Unknown
 	System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson.WriteDataContractValue(System.Runtime.Serialization.DataContract dataContract, System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, System.RuntimeTypeHandle declaredTypeHandle)	Unknown
 	System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeAndVerifyType(System.Runtime.Serialization.DataContract dataContract, System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, bool verifyKnownType, System.RuntimeTypeHandle declaredTypeHandle, System.Type declaredType)	Unknown
 	System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson.SerializeWithXsiType(System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, System.RuntimeTypeHandle objectTypeHandle, System.Type objectType, int declaredTypeID, System.RuntimeTypeHandle declaredTypeHandle, System.Type declaredType)	Unknown
 	System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize(System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, bool isDeclaredType, bool writeXsiType, int declaredTypeID, System.RuntimeTypeHandle declaredTypeHandle)	Unknown
 	System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContextComplex.InternalSerialize(System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, bool isDeclaredType, bool writeXsiType, int declaredTypeID, System.RuntimeTypeHandle declaredTypeHandle)	Unknown
 	[Lightweight Function]	
 	System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.JsonCollectionDataContract.WriteJsonValueCore(System.Runtime.Serialization.XmlWriterDelegator jsonWriter, object obj, System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson context, System.RuntimeTypeHandle declaredTypeHandle)	Unknown
 	System.Runtime.Serialization.dll!System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson.WriteDataContractValue(System.Runtime.Serialization.DataContract dataContract, System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, System.RuntimeTypeHandle declaredTypeHandle)	Unknown
 	System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(System.Runtime.Serialization.DataContract dataContract, System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, System.RuntimeTypeHandle declaredTypeHandle)	Unknown
 	System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize(System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, bool isDeclaredType, bool writeXsiType, int declaredTypeID, System.RuntimeTypeHandle declaredTypeHandle)	Unknown
 	System.Runtime.Serialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContextComplex.InternalSerialize(System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, bool isDeclaredType, bool writeXsiType, int declaredTypeID, System.RuntimeTypeHandle declaredTypeHandle)	Unknown
 	[Lightweight Function]	

dummy-blogml-import.zip

nvisage-gf avatar May 17 '17 11:05 nvisage-gf

We'll de-duplicate and merge tag groups during export/import as having too many tags causes other issues like UX and maintenance.

nvisage-gf avatar May 19 '17 05:05 nvisage-gf