Revert "[VM / IO] - Reland : Assert when an OSError exception is reported with no error"

This reverts commit dc8002cc429ffbeccac3d7be9f497739ae551e7b.

Reason for revert: crashes internally (b/227727791) and externally (dartbug.com/48721)

Original change's description:
> [VM / IO] - Reland : Assert when an OSError exception is reported with no error
>
> 1. Add a Fatal assert when an OSError is reported with no error code (0).
> This is to ensure we get a coredum pwhen this happens so we can analyze
> it. (Please see https://github.com/flutter/flutter/issues/90921 for more
> details)
>
> TEST=ci
>
> Change-Id: I7146ac69ef8b1833f28bed8a23f0c27a2ece4bbf
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/239726
> Reviewed-by: Alexander Aprelev <aam@google.com>
> Commit-Queue: Siva Annamalai <asiva@google.com>

TBR=aam@google.com,asiva@google.com

Change-Id: Ic9302e7922b0ce2ea5ab81357804c3cd822a8052
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/239664
Reviewed-by: Slava Egorov <vegorov@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Slava Egorov <vegorov@google.com>
diff --git a/runtime/bin/dartutils.cc b/runtime/bin/dartutils.cc
index d73c065..5f2e056 100644
--- a/runtime/bin/dartutils.cc
+++ b/runtime/bin/dartutils.cc
@@ -680,9 +680,6 @@
   Dart_Handle type = GetDartType(kIOLibURL, "OSError");
   ASSERT(!Dart_IsError(type));
   Dart_Handle args[2];
-  if (os_error->code() == 0) {
-    FATAL("Fatal error OSError (code : 0)  DartUtils::NewDartOSError");
-  }
   args[0] = NewString(os_error->message());
   args[1] = Dart_NewInteger(os_error->code());
   return Dart_New(type, Dart_Null(), 2, args);
diff --git a/runtime/bin/socket.cc b/runtime/bin/socket.cc
index 708bda4..21bfadf 100644
--- a/runtime/bin/socket.cc
+++ b/runtime/bin/socket.cc
@@ -914,18 +914,7 @@
       Socket::GetSocketIdNativeField(Dart_GetNativeArgument(args, 0));
   OSError os_error;
   SocketBase::GetError(socket->fd(), &os_error);
-  if (os_error.code() != 0) {
-    Dart_SetReturnValue(args, DartUtils::NewDartOSError(&os_error));
-  } else {
-    Dart_SetReturnValue(args, Dart_Null());
-  }
-}
-
-void FUNCTION_NAME(Socket_Fatal)(Dart_NativeArguments args) {
-  Dart_Handle msg = Dart_GetNativeArgument(args, 0);
-  const char* msgStr =
-      (!Dart_IsNull(msg)) ? DartUtils::GetStringValue(msg) : nullptr;
-  FATAL("Fatal error in dart:io (socket): %s", msgStr);
+  Dart_SetReturnValue(args, DartUtils::NewDartOSError(&os_error));
 }
 
 void FUNCTION_NAME(Socket_GetFD)(Dart_NativeArguments args) {
diff --git a/sdk/lib/_internal/vm/bin/socket_patch.dart b/sdk/lib/_internal/vm/bin/socket_patch.dart
index d0bddf8..7c9925a 100644
--- a/sdk/lib/_internal/vm/bin/socket_patch.dart
+++ b/sdk/lib/_internal/vm/bin/socket_patch.dart
@@ -877,8 +877,8 @@
         // the SO_ERROR option at level SOL_SOCKET to determine whether
         // connect() completed successfully (SO_ERROR is zero) or
         // unsuccessfully.
-        final osError = socket.nativeGetError();
-        if (osError != null) {
+        final OSError osError = socket.nativeGetError();
+        if (osError.errorCode != 0) {
           socket.close();
           error ??= osError;
           connectNext();
@@ -1404,12 +1404,8 @@
 
         if (i == errorEvent) {
           if (!isClosing) {
-            final osError = nativeGetError();
-            if (osError == null) {
-              _nativeFatal("Reporting error with OSError code of 0");
-            } else {
-              reportError(osError, null, osError.message);
-            }
+            final err = nativeGetError();
+            reportError(err, null, err.message);
           }
         } else if (!isClosed) {
           // If the connection is closed right after it's accepted, there's a
@@ -1692,7 +1688,7 @@
   @pragma("vm:external-name", "Socket_GetFD")
   external int get fd;
   @pragma("vm:external-name", "Socket_GetError")
-  external OSError? nativeGetError();
+  external OSError nativeGetError();
   @pragma("vm:external-name", "Socket_GetOption")
   external nativeGetOption(int option, int protocol);
   @pragma("vm:external-name", "Socket_GetRawOption")
@@ -1707,8 +1703,6 @@
   @pragma("vm:external-name", "Socket_LeaveMulticast")
   external void nativeLeaveMulticast(
       Uint8List addr, Uint8List? interfaceAddr, int interfaceIndex);
-  @pragma("vm:external-name", "Socket_Fatal")
-  external static void _nativeFatal(msg);
 }
 
 class _RawServerSocket extends Stream<RawSocket> implements RawServerSocket {