Search Issue Tracker

By Design

Votes

2

Found in

2017.4

2019.1.8f1

2020.1

Issue ID

1203056

Regression

No

Crash on wakeup_pipes_init when a proxified HTTP request is made in Build with a present system wide traffic limitation

Mono

-

How to reproduce:
1. Open the attached project ("WebTestProject.zip")
2. Build the project (File -> Build Settings... -> Build)
3. Download the attached traffic limitation Snap-in file ("Console1.msc")
4. Open the Microsoft Management Console (search for "MMC" through Windows Search)
5. Locate and open the downloaded file through MMC (File -> Open...)
6. Assign the Snap-in called "Proxy only" (right-click -> Assign)
7. Run the built project

Reproducible with: 2017.4.36f1 (Mono), 2018.4.15f1, 2019.2.17f1, 2019.3.0f4, 2020.1.0a18

First 2 lines of the Stacktrace when built with IL2CPP from Player.log:
0x00007FFC910EC5CF (GameAssembly) [D:\Unity Versions\2020.1\2020.1.0a18_630f9adc3455\Editor\Data\il2cpp\libil2cpp\mono\ThreadPool\threadpool-ms-io.cpp:528] wakeup_pipes_init
0x00007FFC910EBFC1 (GameAssembly) [D:\Unity Versions\2020.1\2020.1.0a18_630f9adc3455\Editor\Data\il2cpp\libil2cpp\mono\ThreadPool\threadpool-ms-io.cpp:625] ves_icall_System_IOSelector_Add

Notes:
-Both Mono and IL2CPP Builds result in a crash
-Only IL2CPP Builds produce a crash with a Stacktrace
-Could not test 2017.4 with IL2CPP because it is not available when building for Standalone Windows Platform

  1. Resolution Note:

    mono needs to be able to create a socket on localhost or else it will return a no network error. This is in the design of mono https://github.com/mono/mono/blob/7a15b718735eccfac6ecd7467a09279d2f23e16e/mono/metadata/threadpool-io.c

    you can still block all outbound traffic and use your custom proxy, just add ::1 and localhost 127.0.0.0 to the allowed proxies and it should work fine.

Add comment

Log in to post comment