Search Unity

Bug NOTIMPLEMENTEDEXCEPTION is thrown when using System.IO.Pipes when building with IL2CPP

Discussion in 'Windows' started by TJD269, May 22, 2020.

  1. TJD269

    TJD269

    Joined:
    Oct 17, 2017
    Posts:
    19
    Supposedly this was fixed back in 2018.4.4f1, yet I am still getting the same error. This is preventing me from building out my software on IL2CPP and every time I need to try it on another Unity editor version, it takes roughly 8 or so hours to import.

    This is a massive resource depriver and it takes days to test a single version. I am trying this on 2018.4.8f1, which is 4 versions later. These are all obviously LTS releases. I am not using the newest LTS as it has known performance issues with the animator and it will be detrimental considering I have up to 30 different characters with an animator attached on screen at once.

    Here's the patch note in 2018.4.4f1:
    IL2CPP: Added support for NamedPipeClientStream on Windows platforms. (1159863, 1160512)

    and here is the corresponding issue tracker thread where it also says it has been fixed:

    https://issuetracker.unity3d.com/is...on-is-thrown-when-use-system-dot-io-dot-pipes

    Error printed out in output_log:

    Code (CSharp):
    1. NotImplementedException: The method or operation is not implemented.
    2.   at System.IO.Pipes.NamedPipeServerStream..ctor (System.String pipeName, System.IO.Pipes.PipeDirection direction, System.Int32 maxNumberOfServerInstances, System.IO.Pipes.PipeTransmissionMode transmissionMode, System.IO.Pipes.PipeOptions options, System.Int32 inBufferSize, System.Int32 outBufferSize) [0x00000] in <00000000000000000000000000000000>:0
    3.   at System.IO.Pipes.NamedPipeServerStream..ctor (System.String pipeName, System.IO.Pipes.PipeDirection direction, System.Int32 maxNumberOfServerInstances, System.IO.Pipes.PipeTransmissionMode transmissionMode, System.IO.Pipes.PipeOptions options) [0x00000] in <00000000000000000000000000000000>:0
    4.   at System.IO.Pipes.NamedPipeServerStream..ctor (System.String pipeName, System.IO.Pipes.PipeDirection direction, System.Int32 maxNumberOfServerInstances, System.IO.Pipes.PipeTransmissionMode transmissionMode) [0x00000] in <00000000000000000000000000000000>:0
    5.   at System.IO.Pipes.NamedPipeServerStream..ctor (System.String pipeName, System.IO.Pipes.PipeDirection direction, System.Int32 maxNumberOfServerInstances) [0x00000] in <00000000000000000000000000000000>:0
    6.   at WindowsController.PipesLoop () [0x00000] in <00000000000000000000000000000000>:0
    7.   at UnityEngine.Canvas+WillRenderCanvases.Invoke () [0x00000] in <00000000000000000000000000000000>:0
    8.   at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <00000000000000000000000000000000>:0
    9.   at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x00000] in <00000000000000000000000000000000>:0
    10.   at UnityEngine.Canvas+WillRenderCanvases.Invoke () [0x00000] in <00000000000000000000000000000000>:0
    11. UnityEngine.Logger:LogException(Exception, Object)
    12. UnityEngine.Debug:LogException(Exception)
    13. UnityEngine.EventSystems.EventFunction`1:Invoke(T1, BaseEventData)
    It obviously looks like the Unity devs may have only NamedPipeClientStream and not NamedPipeServerStream... however I have literally no clue why they'd do such a thing considering they're under the same namespace.

    Also, as with further IL2CPP testing today, not being able to use the Process class for Process.Start() and Proccess.GetProcessByName() is pretty terrible too. If I got all 3 of those problems fixed I think I'd be peachy keen.

    I appreciate the time anyone takes to help me here as I am starting to go into panic mode due to the fact that this completely breaks the functionality I've spent months developing. I also need to switch from mono to IL2CPP for other reasons and this specifically is holding me back.

    Thanks.
     
    Last edited: May 22, 2020
  2. TJD269

    TJD269

    Joined:
    Oct 17, 2017
    Posts:
    19
  3. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    8,989
    It's likely you're hitting another bug there. Can you report it to us via the bug reporter?
     
  4. plmx

    plmx

    Joined:
    Sep 10, 2015
    Posts:
    296
    I get this error for NamedPipeClientStream with IL2CPP (- Mono works fine -) on 2019.4.22 (LTS) on an Android device:

    Code (CSharp):
    1. 03-20 16:03:36.924  5207  5279 E Unity   : NotImplementedException: The method or operation is not implemented.
    2. 03-20 16:03:36.924  5207  5279 E Unity   :   at System.IO.Pipes.NamedPipeClientStream..ctor (System.String serverName, System.String pipeName, System.IO.Pipes.PipeAccessRights desiredAccessRights, System.IO.Pipes.PipeOptions options, System.Security.Principal.TokenImpersonationLevel impersonationLevel, System.IO.HandleInheritability inheritability) [0x00000] in <00000000000000000000000000000000>:0
    3. 03-20 16:03:36.924  5207  5279 E Unity   :   at System.IO.Pipes.NamedPipeClientStream..ctor (System.String serverName, System.String pipeName, System.IO.Pipes.PipeDirection direction, System.IO.Pipes.PipeOptions options) [0x00000] in <00000000000000000000000000000000>:0
    As @TJD269 was saying, the bug seems to have been reported and fixed before (https://issuetracker.unity3d.com/is...on-is-thrown-when-use-system-dot-io-dot-pipes)

    I am unsure how to proceed here. @Tautvydas-Zilys are you saying this SHOULD work? If so, would this be fixed in the 2019.4.XX LTS branch (which we are stuck to atm) if I submit a bug for this?
     
    Last edited: Mar 20, 2021
  5. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    8,989
    The original bug that was reported was specific to Windows. You should report a separate bug if you're running into issues on Android.
     
unityunity