Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • David Prothero 23 posts 106 karma points
    Apr 02, 2014 @ 21:48
    David Prothero
    0

    Umbraco cannot start - Error Republishing - Thread was being aborted

    Our Umbraco 6.1.6 instances in our dev, test, and staging environments are all unable to be started. They are getting the following error, which is repeated multiple times in the log...

    2014-04-02 12:38:12,166 [6] INFO  umbraco.content - [Thread 24] Loading content from database...
    2014-04-02 12:38:42,180 [6] ERROR umbraco.content - [Thread 24] Error Republishing
    System.Threading.ThreadAbortException: Thread was being aborted.
       at SNIReadSyncOverAsync(SNI_ConnWrapper* , SNI_Packet** , Int32 )
       at SNINativeMethodWrapper.SNIReadSyncOverAsync(SafeHandle pConn, IntPtr& packet, Int32 timeout)
       at System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync()
       at System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket()
       at System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer()
       at System.Data.SqlClient.TdsParserStateObject.TryReadByteArray(Byte[] buff, Int32 offset, Int32 len, Int32& totalRead)
       at System.Data.SqlClient.TdsParserStateObject.TryReadString(Int32 length, String& value)
       at System.Data.SqlClient.TdsParser.TryReadSqlStringValue(SqlBuffer value, Byte type, Int32 length, Encoding encoding, Boolean isPlp, TdsParserStateObject stateObj)
       at System.Data.SqlClient.TdsParser.TryReadSqlValue(SqlBuffer value, SqlMetaDataPriv md, Int32 length, TdsParserStateObject stateObj)
       at System.Data.SqlClient.SqlDataReader.TryReadColumnData()
       at System.Data.SqlClient.SqlDataReader.TryReadColumnInternal(Int32 i, Boolean readHeaderOnly)
       at System.Data.SqlClient.SqlDataReader.TryReadColumn(Int32 i, Boolean setTimeout, Boolean allowPartiallyReadColumn)
       at System.Data.SqlClient.SqlDataReader.ReadColumn(Int32 i, Boolean setTimeout, Boolean allowPartiallyReadColumn)
       at System.Data.SqlClient.SqlDataReader.GetString(Int32 i)
       at umbraco.DataLayer.RecordsReaderAdapter`1.GetString(String fieldName)
       at umbraco.content.LoadContentFromDatabase()
    2014-04-02 12:38:42,180 [6] ERROR umbraco.content - [Thread 24] Error Republishing
    System.Threading.ThreadAbortException: Thread was being aborted.
       at umbraco.content.LoadContentFromDatabase()

    Has anyone seen this before?

  • Jason Prothero 422 posts 1243 karma points c-trib
    Apr 03, 2014 @ 00:58
    Jason Prothero
    0

    Was this after a Deploy or some sort of push?

     

     

  • David Prothero 23 posts 106 karma points
    Apr 03, 2014 @ 01:32
    David Prothero
    0

    Yes, after which we rolled it back, but the problem remains. We've even restores the database with no luck. The same version ofthe solution and database runs fine in production and on our local dev machines. Some kind of server-specific corruption?

  • Jason Prothero 422 posts 1243 karma points c-trib
    Apr 03, 2014 @ 01:54
    Jason Prothero
    0

    Have you tried deleting the umbraco.config and examine indexes, recycling the app pool, then seeing if it works?

    Sounds sort of like the Xml in the database got corrupted and now its trying to regenerate with bad data.

     

     

  • Craig Noble 41 posts 584 karma points c-trib
    Apr 03, 2014 @ 09:54
    Craig Noble
    0

    This may sound strange, but clear your cookies and cache.  I have the same problem in 6.1.6 when sometimes accessing the login page and doing that seems to fix it for me.  I dont know if its the same issue but its worth a try.

  • Jason Prothero 422 posts 1243 karma points c-trib
    Apr 03, 2014 @ 14:20
  • David Prothero 23 posts 106 karma points
    Apr 03, 2014 @ 16:55
    David Prothero
    102

     

    So the problem, I believe, was due to the loading of the content taking longer than 90 seconds, which is the default execution timeout for an ASP.NET request. After thinking to google for the error we were getting without the Umbraco keyword, I found this post which hinted at that:

    http://stackoverflow.com/questions/19855019/threadabortexception-on-retrieving-data-from-entities-db-context

    Notice it’s exactly the same error. So the SQL request was getting killed because ASP.NET was aborting the thread because it exceeded the 90 second timeout. I extended the timeout in web.config:

         <httpRuntime requestValidationMode="2.0" enableVersionHeader="false" executionTimeout="600" />

    That did the trick. It gave the “Loading content from database…” task time to complete. The reason it worked in production is likely due to the increased server resources, it hadn’t exceeded 90 seconds yet. The reason it worked on our local machines is because in debug mode, the execution timeout is not enforced.

    The length of time it takes for Umbraco to load all the content into one big XML file is concerning to me and doesn't seem very scalable, but at least our current crisis is averted.

    Thanks for the suggestions.

Please Sign in or register to post replies

Write your reply to:

Draft