« Previous Next »

Thread: The I/O operation has been aborted because of either a thread exit or an application request

Last post 11-30-2009 7:15 PM by MattDuguid. 37 replies.

Average Rating Rate It (5)

RSS

Page 2 of 3 (38 items) < Previous 1 2 3 Next >

Sort Posts:

  • 07-15-2009, 11:37 AM In reply to

    • tmarq
    • Top 150 Contributor
    • Joined on 06-11-2002, 2:44 PM
    • 42
    • Posts 43

    Re: The I/O operation has been aborted because of either a thread exit or an application request

    It is "Windows SE 275030".

    Thanks,
    Thomas

  • 08-03-2009, 5:01 PM In reply to

    • MattDuguid
    • Top 500 Contributor
    • Joined on 05-25-2008, 7:00 PM
    • New Zealand
    • Posts 21

    Re: The I/O operation has been aborted because of either a thread exit or an application request

    We are seeing a similar issue with a recent move to Windows 2008 x64 Web Edition and IIS 7.0.

    The servers are running .NET 3.5, .NET 3.5 SP1 and KB959209 (.NET SP1 update) and KB967535 (fixes a known request blocking issue which under certain circumstances caues the request queue to halt).

    The number of errors are not huge compared to the number of page impressions we go through daily but something we'd still like to clean up.

    The problem 

    During ***some*** file uploads after a ***few seconds*** we get the following 500 error (located via failed request tracing),

    Error = The I/O operation has been aborted because of either a thread exit or an application request. (0x800703e3)

    Error Code = 2147943395

    Which produces the following exception,

    Exception: [System.Web.HttpException] Request timed out.

    Research

    http://forums.iis.net/p/1149787/1871363.aspx
    Some articles suggest this is a known issue and fixed with the application of .NET SP1 (we have this applied). Could it be the bug has been reintroduced through the application of the additional service packs, rather unlikely but not impossible as I have seen this happen before with other products.

    http://forums.asp.net/t/1248261.aspx
    Some articles suggest that the client is simply disconnecting their session which causes an exception at the server and is not being handled correctly. There are some code workarounds but the concensus seems to be that these are just covering up the issue and not fixing the root cause.

    Some articles suggest the execution timeout is being exceeded, in our case this is 90 seconds and in the traces I have seen to date the issue can happen in less than 15 seconds.

    Ideas

    If you have experienced the same issue and have possible ideas for solutions please let us know.

    Matt Duguid
  • 08-11-2009, 3:32 PM In reply to

    Re: The I/O operation has been aborted because of either a thread exit or an application request

    Thomas,

    Who can we contact to get this fix?  We have the same problem.

    Thanks,

    Mike

  • 08-27-2009, 9:57 AM In reply to

    • jb
    • Not Ranked
    • Joined on 08-27-2009, 1:36 PM
    • Posts 5

    Re: The I/O operation has been aborted because of either a thread exit or an application request

    We are seeing this error too, but our circumstances are a little differenct.  

    100-200 times a day we fail to get a complete post body of a request (I/O operation aborted).

    The real problem for us is that IIS locks the session object of the user who made that request. Further requests from that user are blocked until the original request times out (2 min default) causing our user to be blocked from the site and in the past causing many hits to our session database.

    I can see why msft might lock the session and start the aspx processing before reading the entire request, but it seems non-optimal/like a bug to us right now.

     Is there anything we can do to delay session locking or move reading the data off the wire earlier? Any advice is appreciated.

    We are looking at EnableSessionState=False or EnableSessionState=ReadOnly, but this will mean major changes to our application.

     Configuration/Usage:
       IIS 7, Windows Server 2008, .Net Framework 3.5 SP1 + KB953595, 958484
       10,000 non-anonymous users a day
        1.1 Million page views/ajax requests a day

  • 08-27-2009, 11:01 AM In reply to

    • tmarq
    • Top 150 Contributor
    • Joined on 06-11-2002, 2:44 PM
    • 42
    • Posts 43

    Re: The I/O operation has been aborted because of either a thread exit or an application request

    I'm sure that if you call back the same thing won't happen twice.  Here's more information about the bug: 

    Database:  Windows SE
    Bug ID:  275030
    Title: IHttpConnection::IsConnected Returns Invalid Results
    Path:   Windows SE\LongHorn\Server Technologies\IIS\App Server Engine\Web Core

    Thanks,
    Thomas

  • 08-27-2009, 11:25 AM In reply to

    • jb
    • Not Ranked
    • Joined on 08-27-2009, 1:36 PM
    • Posts 5

    Re: The I/O operation has been aborted because of either a thread exit or an application request

     So, just to confirm. You are saying that if IIS was informed that the connection was dropped, it would unlock the session more quickly? That makes sense.

     The test client I wrote that reproduces this did not close the connection, but that may not be real world behavior.

    I'll call support, get the fix and see if it helps.

    I'll also sniff the network and see if I can correlate the network traffic with the logs and tell whether the connections are closed when we stop getting data (or if they are open just not sending for some reason).

  • 08-27-2009, 11:58 AM In reply to

    • jb
    • Not Ranked
    • Joined on 08-27-2009, 1:36 PM
    • Posts 5

    Re: The I/O operation has been aborted because of either a thread exit or an application request

    I called support and unfortunately all they were able to find was a hotfix for kb275030 (which doesn't seem to be the same as bug 275030). It is in Czech. Web searches seem to indicate something about exchange or windows 2000 sp2.

  • 08-27-2009, 12:49 PM In reply to

    • anilr
    • Top 10 Contributor
    • Joined on 05-23-2006, 10:13 PM
    • Redmond, WA
    • Posts 2,343

    Re: The I/O operation has been aborted because of either a thread exit or an application request

    The hotfix for the bug that tmarq mentions has not yet been built or released.

    That said, I don't think your problem is at all related to the bug that tmarq mentioned (which only results in a spurious event log message/exception) - in your case, it seems like you are reading client request entity after the session has been locked and this is timing out after 2 mins and during those 2 mins, all other requests using that session are blocked - the only way to fix that would be to read the request entity before the OnAcquireRequestState event using a HttpModule rather than in your handler/aspx page like you are currently doing.  Also, like you mentioned, you may be able to disable auto session locking and then manually lock it in your code after reading the request entity.

    Anil Ruia
    Senior Software Design Engineer
    IIS Core Server
  • 08-27-2009, 1:13 PM In reply to

    • jb
    • Not Ranked
    • Joined on 08-27-2009, 1:36 PM
    • Posts 5

    Re: The I/O operation has been aborted because of either a thread exit or an application request

     Your understanding is exactly correct. tmarq emailed me and he too was concerned that the fix wouldn't fix this problem.

    I think I'm going to ask our developers to try reading the post body (or do something that causes it to be read) in the Application_OnBeginRequest handler in global.asax. I'm hoping this is early enough in the pipeline to be before OnAcquireRequestState. It looks like it should be early enough from the "Professional IIS7" book. I would like to avoid a custom HTTPModule just because we haven't done one before.

    I hadn't thought of getting AcquireRequestState because it is so early in the process. Thanks for pushing me in that direction.

     Let me know if you see a flaw in this plan. I'll let you/everyone know if it works.

  • 08-27-2009, 4:21 PM In reply to

    • jb
    • Not Ranked
    • Joined on 08-27-2009, 1:36 PM
    • Posts 5

    Re: The I/O operation has been aborted because of either a thread exit or an application request

    We have decided not to read the post body in the OnBeginRequest event. This would probably slow down all requests a tiny bit as it would wait for the post body before starting the pipeline (instead of starting processing while the post comes in).

    Instead we think we are going to set EnableSessionState=ReadOnly (which will be a hack at first). We will actually still be writing to the session on these pages and this will only work with inproc session storage. We haven't implemented and tested this fully yet, but it appears to work. Eventually we will confine our session updates to a few pages and mark those pages as session updateable pages. Then the "readonly" setting won't be a hack, the pages really will be readonly.

     

    Coming from another architecture into this one, this all seems a bit odd. The session object in other environments is not threadsafe just like the application object isn't in asp.net. This gives the developer the chance to screw themselves up, but it also lets them deal with (avoid) issues like this.

     

  • 09-12-2009, 8:50 PM In reply to

    Re: The I/O operation has been aborted because of either a thread exit or an application request

     I was getting this error about 50 times a day on a website that does about 35K impressions daily.  Something I read on another site was to make sure any web control that doesn't need to postback has enableviewstate set to false.  This will greatly reduce the size of your viewstate.  Since doing this I am only get 15 errors of this kind each day. So it helped by was not the silver bullet I was looking for. 

    I have created a post on my blog discussing this,

    fixing The remote host closed the connection. The error code is 0x80070057

     

    If anyone has any suggestions let me know.  All my other websites are running fine except this one.  Seems to be some problem with .IIS7WorkerRequest.ExplicitFlush()

  • 09-17-2009, 12:35 AM In reply to

    • MattDuguid
    • Top 500 Contributor
    • Joined on 05-25-2008, 7:00 PM
    • New Zealand
    • Posts 21

    Re: The I/O operation has been aborted because of either a thread exit or an application request

    We set enableviewstate to false at site level via the web.config and still get this error. I believe you may have a slightly different problem to us as your error is 0x80070057 and ours is 0x800703e3.

    We sre still trying to track this down...

    The I/O operation has been aborted because of either a thread exit or an application request. (0x800703e3)

    ErrorCode 2147943395

     

    Matt Duguid
  • 10-22-2009, 1:38 AM In reply to

    Re: The I/O operation has been aborted because of either a thread exit or an application request

    Hi All,

    I had read all the comments on this blog, Even i having same error with the following enviorment.

    --> Window server 2008 64bit, .Net 3.5 with SP1, IIS7

    In my web application, it give me error when following line excute.

    Response.Flush()

    Response.End()

    Even in some blog i had read to remove flush statment but it didn't work.  even end statement give me same error(An error occurred while communicating with the remote host. The error code is 0x80070057).

    So, If any one having idea related to this issue. Please please inform me.

    I required it ASAP.

    Thanks all in advance.

    Gunjan  

     

  • 10-22-2009, 1:51 AM In reply to

    Re: The I/O operation has been aborted because of either a thread exit or an application request

     Let me take a wild guess,

    You are getting this error and your W3WP.exe is really big

    Disable the viewstate on your label controls.

    Once I did this the problem web away.

    I wrote a blog entry on some possible solutions

    w3wp.exe using too much memory and resources

  • 10-22-2009, 2:51 AM In reply to

    Re: The I/O operation has been aborted because of either a thread exit or an application request

    hi whitesites,

    Thanks for your response, But let me tell you one thing, i had check my W3WP process and it is not so much big which close the session.

    Enve i had check that befor executing flush command IsCilentConnect property give me true value and after executing flush statment it give me false value.

    This code is perfectlly run under Window server 2003, .net 3.5sp1, iis6.

     

Page 2 of 3 (38 items) < Previous 1 2 3 Next >
Microsoft Communities