1 Reply Latest reply on Jan 21, 2010 12:01 PM by Epigoni

    Error #2048 (Sandbox Violation) in AIR prevents future hostname resolution

    Epigoni

      Scenario:

       

      Create an application which tries opening 100 socket connections. This in turn triggers an Error #2031(Socket Error) on a few of them, I believe this is a limitation in Flash? or something similar? After a few seconds, those same socket connections will trigger an Error #2048 (Security Sandbox Violation).

       

      If the hostname which you used to connect to the sockets is a name (ex: "localhost") it will prevent any new connections from opening at all and will trigger an Error #2048 on all those future connections even though they are completely unrelated to the first.

       

      If the hostname which you use is an IP Address ("127.0.0.1") those individual connections will have failed but no future interaction will be affected.

       

      Problem:

       

      1) Why is an AIR application triggering a security sandbox error at all?

      2) Why is this error locking up hostname resolution?

      3) Is this in fact a hostname resolution problem since there are no issues when using an IP address?

      3a) In my testing it appears that once the Error #2048 "locks" resolution, it can be "unlocked" by using an IP Address on any socket (any successful socket connection really) which will restore the name resolution capability. Or so it seems.

       

      Any help would be greatly appreciated. Until I nailed down the specific cases where this was happening the errors appeared very byzantine.

       

      It is not only the Error #2031 from too many connections that triggers the Error #2048. The main problem is that Error #2048 is triggered by unspecified socket errors (unexpected close for example) and hence locks up future connections.

       

      The reason this is such a problem is that I'm creating an application specifically for the purpose of monitoring a custom server so errors do happen, and if future requests cannot complete a connection due to name lookup failure it can cause a huge problem for monitoring validity.