From: abudovski@... Date: 2015-08-19T06:18:57+00:00 Subject: [ruby-core:70454] [Ruby trunk - Bug #11462] [Open] win32 readlink doesn't support dedup Issue #11462 has been reported by Alex Budovski. ---------------------------------------- Bug #11462: win32 readlink doesn't support dedup https://bugs.ruby-lang.org/issues/11462 * Author: Alex Budovski * Status: Open * Priority: Normal * Assignee: * ruby -v: latest master * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- During build: ./tool/mkconfig.rb:13:in `require': Invalid argument @ rb_readlink - E:/dev/ruby/lib/fileutils.rb (Errno::EINVAL) from ./tool/mkconfig.rb:13:in `
' NMAKE : fatal error U1077: '.\miniruby.exe' : return code '0x1' Stop. This is due to: ~~~ # Child-SP RetAddr Call Site 00 000000a8`1191d540 00007ff7`14929486 miniruby!rb_w32_wreadlink+0x209 [e:\dev\ruby\win32\win32.c @ 4743] 01 000000a8`1191dde0 00007ff7`1476c941 miniruby!rb_readlink+0x196 [e:\dev\ruby\win32\file.c @ 681] 02 000000a8`1191e080 00007ff7`14767400 miniruby!realpath_rec+0x7a1 [e:\dev\ruby\file.c @ 3791] 03 000000a8`1191e230 00007ff7`1475da4a miniruby!rb_realpath_internal+0x5b0 [e:\dev\ruby\file.c @ 3895] 04 000000a8`1191e320 00007ff7`1475dbfb miniruby!rb_load_internal0+0x1ba [e:\dev\ruby\load.c @ 610] 05 000000a8`1191e4f0 00007ff7`1475bdff miniruby!rb_load_internal+0x2b [e:\dev\ruby\load.c @ 646] 06 000000a8`1191e530 00007ff7`1475b99b miniruby!rb_require_internal+0x22f [e:\dev\ruby\load.c @ 1016] 07 000000a8`1191e700 00007ff7`1475b96f miniruby!rb_require_safe+0x1b [e:\dev\ruby\load.c @ 1062] 08 000000a8`1191e740 00007ff7`148e2053 miniruby!rb_f_require+0x1f [e:\dev\ruby\load.c @ 830] 09 000000a8`1191e770 00007ff7`148e32eb miniruby!call_cfunc_1+0x33 [e:\dev\ruby\vm_insnhelper.c @ 1444] 0a 000000a8`1191e7a0 00007ff7`148e35d6 miniruby!vm_call_cfunc_with_frame+0x38b [e:\dev\ruby\vm_insnhelper.c @ 1604] 0b 000000a8`1191e8b0 00007ff7`148e3a1e miniruby!vm_call_cfunc+0x66 [e:\dev\ruby\vm_insnhelper.c @ 1700] 0c 000000a8`1191e8e0 00007ff7`148de787 miniruby!vm_call_method+0x12e [e:\dev\ruby\vm_insnhelper.c @ 1984] 0d 000000a8`1191ea00 00007ff7`148e92db miniruby!vm_call_general+0x27 [e:\dev\ruby\vm_insnhelper.c @ 2146] 0e 000000a8`1191ea30 00007ff7`148f18ec miniruby!vm_exec_core+0x304b [e:\dev\ruby\insns.def @ 976] 0f 000000a8`1191f740 00007ff7`148da6cc miniruby!vm_exec+0xdc [e:\dev\ruby\vm.c @ 1472] 10 000000a8`1191f9a0 00007ff7`14758cd9 miniruby!rb_iseq_eval_main+0x2c [e:\dev\ruby\vm.c @ 1714] 11 000000a8`1191f9e0 00007ff7`147574dd miniruby!ruby_exec_internal+0xe9 [e:\dev\ruby\eval.c @ 250] 12 000000a8`1191fb80 00007ff7`14756e83 miniruby!ruby_exec_node+0x1d [e:\dev\ruby\eval.c @ 313] 13 000000a8`1191fbb0 00007ff7`14701041 miniruby!ruby_run_node+0x33 [e:\dev\ruby\eval.c @ 304] 14 000000a8`1191fbf0 00007ff7`1492a1dd miniruby!main+0x41 [e:\dev\ruby\main.c @ 38] 15 000000a8`1191fc30 00007ff7`1492a30e miniruby!__tmainCRTStartup+0x19d [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c @ 626] 16 000000a8`1191fca0 00007ffd`1e3413d2 miniruby!mainCRTStartup+0xe [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c @ 466] 17 000000a8`1191fcd0 00007ffd`20295454 KERNEL32!BaseThreadInitThunk+0x22 [d:\9147\base\win32\client\thread.c @ 78] 18 000000a8`1191fd00 00000000`00000000 ntdll!RtlUserThreadStart+0x34 [d:\blue\minkernel\ntdll\rtlstrt.c @ 1026] ~~~ ~~~ 0:000> dt rp Local var @ 0xa81191d5b0 +0x000 ReparseTag : 0x80000013 +0x004 ReparseDataLength : 0x7c +0x006 Reserved : 0 +0x008 SymbolicLinkReparseBuffer : +0x008 MountPointReparseBuffer : ~~~ 0x80000013 is IO_REPARSE_TAG_DEDUP. I am using Windows Server Data Dedup on this volume. (http://blogs.technet.com/b/filecab/archive/2012/05/21/introduction-to-data-deduplication-in-windows-server-2012.aspx) So we return EINVAL ~~~ else if (rp.ReparseTag != IO_REPARSE_TAG_SYMLINK && rp.ReparseTag != IO_REPARSE_TAG_MOUNT_POINT){ e = EINVAL; } ~~~ -- https://bugs.ruby-lang.org/