Skip to content
Snippets Groups Projects
  1. Dec 20, 2024
    • Bernhard Übelacker's avatar
    • Bernhard Übelacker's avatar
      ws2_32: Do not fail in closesocket for unknown socket. · bf98241c
      Bernhard Übelacker authored and Joel Holdsworth's avatar Joel Holdsworth committed
      This makes cygwin64's rsync happy. It seems to fork a child process
      of itself which wants to close sockets derived from the parent process.
      
      Kind of related Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54995
      Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56927
      
      rsync -aq --delete-before dir-a dir-b
        rsync: [Receiver] Failed to dup/close: Socket operation on non-socket (108)
        rsync error: error in IPC code (code 14) at pipe.c(157) [Receiver=3.2.7]
        rsync: connection unexpectedly closed (0 bytes received so far) [sender]
        rsync error: error in rsync protocol data stream (code 12) at io.c(231) [sender=3.2.7]
      Unverified
      bf98241c
    • Bernhard Übelacker's avatar
      ntdll: Add read and write to commited guard pages. · e7977f43
      Bernhard Übelacker authored
      Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55138
      
      wine bash.exe
      notepad.exe
      wine: Unhandled page fault on write access to 00000007FFFF81F8 at address 0000000180265986 (thread 0130), starting debugger...
      
      wine bash.exe -c 'WIN_ROOT="$(PATH=${MSYS2_PATH} exec /usr/bin/cygpath -Wu)"; echo $WINROOT'
      /usr/bin/bash: Zeile 1: /usr/bin/cygpath: Bad address
      /usr/bin/bash: Zeile 1: /usr/bin/cygpath: No error
      
      Based on: https://bugs.winehq.org/attachment.cgi?id=70483
        (Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47808)
      Unverified
      e7977f43
    • Bernhard Übelacker's avatar
      server: Reset reported_events if socket gets reused. · becdb91a
      Bernhard Übelacker authored
      MSYS setup tries to setup some pacman/gpg key configuration.
      This involves starting dirmngr.exe which unfortunately hangs.
      Therefore gpg reports:
          gpg: connecting dirmngr at '/etc/pacman.d/gnupg/S.dirmngr' failed: IPC connect call failed
      And fails therefore "silently".
      
      The hang in dirmngr.exe looks to be a result of reusing a socket twice.
      When the first connection attempt failed, wineserver still has
      the reported_events set.
      Therefore on the second attempt WSAEnumNetworkEvents does no longer
      report those events.
      But fhandler_socket_wsock::wait_for_events gets just left when
      there are some events received.
      
      Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53574
      
      dirmngr.exe --server --no-detach --homedir /etc/pacman.d/gnupg --verbose
      
      (gdb) bt
      (gdb) print evts.lNetworkEvents
      $1 = 0
      Unverified
      becdb91a
    • Bernhard Übelacker's avatar
      ws2_32: Disable check for local socket handles. · c1a0adda
      Bernhard Übelacker authored
      MSYS does a `dup(sockfd)` via DuplicateHandle.
      Unfortunately that way the new handle is not contained in
      the ws2_32.socket_list.
      
      This change just disables this check to workaround this.
      
      
      Kind of related: https://bugs.winehq.org/show_bug.cgi?id=54413
      
      
      wine c:/msys64/usr/bin/git.exe clone --mirror git://sourceware.org/git/newlib-cygwin.git /home/bernhard/MSYS2-packages/msys2-runtime/msys2-runtime
      
      
      (rr) list fhandler_base::dup
      1320    int
      1321    fhandler_base::dup (fhandler_base *child, int flags)
      1322    {
      1323      debug_printf ("in fhandler_base dup");
      1324
      1325      HANDLE nh;
      1326      if (!nohandle () && !archetype)
      1327        {
      1328          if (!DuplicateHandle (GetCurrentProcess (), get_handle (),
      1329                                GetCurrentProcess (), &nh,
      1330                                0, !(flags & O_CLOEXEC), DUPLICATE_SAME_ACCESS))
      1331            {
      1332              debug_printf ("dup(%s) failed, handle %p, %E",
      1333                            get_name (), get_handle ());
      1334              __seterrno ();
      1335              return -1;
      1336            }
      1337
      1338          VerifyHandle (nh);
      1339          child->set_handle (nh);
      1340        }
      1341      return 0;
      1342    }
      (rr) print x
      $29 = (HANDLE) 0x150
      (rr) bt
      #0  fhandler_base::set_handle (this=0x800027a28, x=0x150) at /home/Benutzer1/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/local_includes/fhandler.h:238
      #1  0x000000018011315a in fhandler_base::dup (this=0x800027318, child=0x800027a28, flags=32768) at /home/Benutzer1/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/fhandler/base.cc:1339
      #2  0x000000018015a8c8 in fhandler_socket_wsock::dup (this=0x800027318, child=0x800027a28, flags=32768) at /home/Benutzer1/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/fhandler/socket_inet.cc:558
      #3  0x000000018005f6ec in dtable::dup_worker (this=0x800004858, oldfh=0x800027318, flags=32768) at /home/Benutzer1/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/dtable.cc:707
      #4  0x000000018005fa56 in dtable::dup3 (this=0x800004858, oldfd=3, newfd=4, flags=32768) at /home/Benutzer1/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/dtable.cc:774
      #5  0x00000001800dd567 in dup (fd=3) at /home/Benutzer1/MSYS2-packages/msys2-runtime/src/msys2-runtime/winsup/cygwin/syscalls.cc:96
      #6  0x00000001801c348b in _sigfe () at sigfe.s:36
      #7  0x0000000a00000003 in ?? ()
      #8  0x0000000000000040 in ?? ()
      #9  0x0a0a0a0a0a0a0a0a in ?? ()
      #10 0x0000000a00003e66 in ?? ()
      #11 0x0000000a00003e90 in ?? ()
      #12 0x000000010050d4b2 in git_connect_git (fd=fd@entry=0xa00003c40, hostandport=0xa00003e70 "sourceware.org", path=0xa00003e50 "/git/newlib-cygwin.git", prog=prog@entry=0x10067bcd9 <junk_leave_repo_msg+1913> "git-upload-pack", version=version@entry=protocol_v2, flags=flags@entry=0) at connect.c:1257
      #13 0x000000010050e4ad in git_connect (fd=fd@entry=0xa00003c40, url=0xa000033e0 "git://sourceware.org/git/newlib-cygwin.git", prog=0x10067bcd9 <junk_leave_repo_msg+1913> "git-upload-pack", flags=0) at connect.c:1437
      #14 0x0000000100622f65 in connect_setup (transport=transport@entry=0xa000038a0, for_push=for_push@entry=0) at transport.c:278
      #15 0x0000000100623043 in handshake (transport=0xa000038a0, for_push=0, options=0x67dfc800, must_list_refs=must_list_refs@entry=1) at transport.c:313
      #16 0x0000000100623254 in get_refs_via_connect (transport=<optimized out>, for_push=<optimized out>, options=<optimized out>) at transport.c:360
      #17 0x0000000100624f9c in transport_get_remote_refs (transport=transport@entry=0xa000038a0, transport_options=transport_options@entry=0x67dfc800) at transport.c:1474
      #18 0x0000000100426005 in cmd_clone (argc=<optimized out>, argv=<optimized out>, prefix=<optimized out>) at builtin/clone.c:1274
      #19 0x0000000100401330 in run_builtin (p=0x10065a218 <commands+504>, argc=argc@entry=4, argv=argv@entry=0x67dfcc08) at git.c:445
      #20 0x00000001004015e2 in handle_builtin (argc=4, argv=0x67dfcc08) at git.c:699
      #21 0x0000000100402aa3 in run_argv (argcp=argcp@entry=0x67dfcb70, argv=argv@entry=0x67dfcb78) at git.c:763
      #22 0x0000000100402f28 in cmd_main (argc=<optimized out>, argc@entry=5, argv=<optimized out>, argv@entry=0x67dfcc00) at git.c:898
      #23 0x00000001004ce4d7 in main (argc=5, argv=0x67dfcc00) at common-main.c:57
      Unverified
      c1a0adda
    • Bernhard Übelacker's avatar
      server: Allow access with PROCESS_QUERY_INFORMATION. · 395d920e
      Bernhard Übelacker authored
      0128:fixme:sync:QueryUnbiasedInterruptTimePrecise (000000000031BB50): semi-stub.
            0 [main] gpg 1017 fixup_mmaps_after_fork: VirtualQueryEx failed for MAP_PRIVATE address 0x7FFC0000, Win32 error 5
        15823 [main] gpg 1017 C:\msys64\usr\bin\gpg.exe: *** fatal error in forked process - recreate_mmaps_after_fork_failed
      0128:trace:unixpid:NtTerminateProcess unixpid=120034 L"\"C:\\msys64\\usr\\bin\\gpg.exe\" --homedir /etc/pacman.d/gnupg/ --no-permission-warning -K --with-colons" self=1 NtCurrentTeb()=0x67fe0000 NtCurrentTeb()->Peb=0x67ff0000 :999
      8064141 [main] gpg 1016 dofork: child -1 - forked process 292 died unexpectedly, retry 0, exit code 0x100, errno 11
      00d4:fixme:virtual:get_extended_params Not supported requirements LowestStartingAddress 0x1000000000, Alignment (nil).
      gpg: Fehler beim "Forken" des Prozess: Resource temporarily unavailable
      gpg: failed to start agent '/usr/bin/gpg-agent': Resource temporarily unavailable
      gpg: can't connect to the agent: Resource temporarily unavailable
      gpg: error: GnuPG agent unusable. Please check that a GnuPG agent can be started.
      gpg: migration aborted
      00d4:trace:unixpid:NtTerminateProcess unixpid=120008 L"\"C:\\msys64\\usr\\bin\\gpg.exe\" --homedir /etc/pacman.d/gnupg/ --no-permission-warning -K --with-colons" self=1 NtCurrentTeb()=0x67fe0000 NtCurrentTeb()->Peb=0x67ff0000 :999
      Unverified
      395d920e
  2. Dec 13, 2024
  3. Dec 12, 2024
  4. Dec 11, 2024
  5. Dec 10, 2024
Loading