-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add test for: Windows output redirection trouble #11727
Comments
Grrr, yes. I remember this. I'm pretty sure it has something to do with the way libuv handles cygwin pipes on windows. |
|
Yes, at 298231e this is still happening. Cygwin64 build of win64 Julia (last month was win32 but looked the same), windows 7. I have I do recall this being picky about not always happening in an incremental build, are you running the exact command verbatim including the |
This reverts commit dbacfa2. This broke on the Windows buildbots due to #11727, ref #13069 (comment)
this time with a JULIA_ENABLE_DOCBUILD flag to allow disabling this step on the buildbots where JuliaLang#11727 causes trouble on windows ref JuliaLang#13069
This seems to be an implementation error with the implementation of UV_HANDLE_EMULATE_IOCP in libuv commit libuv/libuv@54982a2 . In particular, overlapped->hEvent was not initialized prior to ReadFile / WriteFile per https://msdn.microsoft.com/en-us/library/windows/desktop/ms686358(v=vs.85).aspx, so it is still NULL when passed to RegisterWaitForSingleObject, which thus returns ERROR_INVALID_PARAMETER. This happens here because the NamedPipe handle is getting passed to multiple libuv (Julia) processes and apparently only one process may make an IOCompletionPort for a NamedPipe (not documented, although the restrictions given are pretty troubling -- for example, the handle should not be duplicated, shared, or passed to CreateProcess: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363862(v=vs.85).aspx), forcing libuv to use the fallback emulation code. (partially related, this appear to also indirectly be caused by a resource leak in the Windows kernel where the OS is failing to destroy |
I've just encountered this error when building the Julia release-0.4 branch with Cygwin. Does this mean that building with Cygwin is currently broken? If there's no immediate prospect of having this corrected, should the build instructions be updated to warn about this? |
you just can't build with output going to a pipe |
Additional comments from @vtjnash about this issue:
|
^ care to comment or explain there? this needs doing to allow running windows tests on buildbot. does @ihnorton or anyone else know how? don't just unassign yourself from an important issue you know how to fix without any explanation. |
@tkelman can you please verify that this PR fixes the problem on windows for you: https://github.com/JuliaLang/libuv/pull/44 In my testing, it seems to have worked, but I'd like to be doubly sure. :) |
It can start running tests, but cmdlineargs is freezing. |
Are you sure it's actually cmdlineargs and not just the Julia waiting for a
worker to join that never does? cmdlineargs is the last test, so if we've
got some kind of join() lockup, that might be the problem.
-E
…On Thu, Jun 1, 2017 at 3:09 AM, Tony Kelman ***@***.***> wrote:
It can start running tests, but cmdlineargs is freezing.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#11727 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAH_aDyuOURVS-6qf_YSj3BNV5re-iVfks5r_o32gaJpZM4FEybF>
.
|
it hasn't been the last test in a while afaik |
run in a single worker, it definitely isn't the last to start |
Ah, I see, so you're saying that running the tests in a single worker freezes on |
It's looking like it's an unrelated problem. |
the freeze in the cmdlineargs tests looks like it was caused by 94acb6f |
fixes UV_HANDLE_EMULATE_IOCP handling for Windows pipes close #11727
fixes UV_HANDLE_EMULATE_IOCP handling for Windows pipes close #11727
upstream's problem now |
it will regress if not tested here. come on, what is so hard about following the standard policy we've always had of adding a test when you fix a bug? |
This issue has been fixed. We can now show docbuild output even if the build fails.
This issue has been fixed. We can now show docbuild output even if the build fails.
This issue has been fixed. We can now show docbuild output even if the build fails.
Fixes: JuliaLang/julia#11727 Fixes: libuv#629
Fixes: JuliaLang/julia#11727 Fixes: libuv#629
Steps to reproduce (this is in Cygwin cross-compile, I'll also check in MSYS2 to see if it's any different there):
Full output is at https://gist.github.com/tkelman/4d9717ae288c637a6432 - note the
jl_uv_writecb() ERROR: invalid argument EINVAL
during the later bootstrap stages which seems to be non-fatal, but when running the tests it is fatal.ts
is a perl script, but we have similar messages on the Windows buildbots where I think python is driving the process and logging: http://buildbot.e.ip.saba.us:8010/builders/package_win8.1-x64/builds/864/steps/make/logs/stdioThis has been happening for quite a while, I think @staticfloat and I hit this error the last time we tried to enable running the tests on the Windows buildbots so this is probably a blocker to doing that.
versioninfo:
edit: minimal reproduction:
The text was updated successfully, but these errors were encountered: