Skip to content
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

Pacman Retrieving packages error with QueryUnbiasedInterruptTime function call #2407

Closed
1 task done
rdjondo opened this issue Nov 15, 2019 · 8 comments
Closed
1 task done

Comments

@rdjondo
Copy link

rdjondo commented Nov 15, 2019

  • I was not able to find an open or closed issue matching what I'm seeing

Setup

  • Which version of Git for Windows are you using? Is it 32-bit or 64-bit?
$ git --version --build-options

git version 2.24.0.windows.2
cpu: x86_64
built from commit: 02af2cc5bfc37d4500e8a09333269e57f442198a
sizeof-long: 4
sizeof-size_t: 8
  • Which version of Windows are you running? Vista, 7, 8, 10? Is it 32-bit or 64-bit?
$ cmd.exe /c ver

Microsoft Windows [Version 6.1.7601]

(Windows 7)

  • What options did you set as part of the installation? Or did you choose the
    defaults?

I installed git-for-windows through MSYS2. My pacman sources (/etc/pacman.conf) are configured to use the addresses just like the git-for-windows project recommends:
https://github.com/git-for-windows/git/wiki/Install-inside-MSYS2-proper

  • Any other interesting things about your environment that might be related
    to the issue you're seeing?
pacman --version 
Pacman v5.2.1 - libalpm v12.0.1

Details

  • Which terminal/shell are you running Git from? e.g Bash/CMD/PowerShell/other

I am using the MSYS2 bash terminal.

$ pacman -Syuu # Run once
$ pacman -Syuu # Run a second time
  • What did you expect to occur after running these commands?

Pacman should synchronise without throwing an error.

  • What actually happened instead?
pacman.exe: *** fatal error - couldn't dynamically determine load address for 'QueryUnbiasedInterruptTime'
  • Now I cannot sync or install packages anymore.

I am not using a project repository. I setup git-for-windows as recommended here:
https://github.com/git-for-windows/git/wiki/Install-inside-MSYS2-proper

I previously submitted this issue to the MSYS2 repository (msys2/MSYS2-packages#1783) and I was informed that the solution might be to "check, if msys2-runtime is up-to-date with" the pacman from the MSYS2 project .

@dscho
Copy link
Member

dscho commented Nov 16, 2019

Since when does this happen? Which pacman version is this? Does that really work with plain MSYS2, even on Windows 7 SP1 (whose End-Of-Life came around on January 13, 2015 as per https://support.microsoft.com/en-us/help/13853/windows-lifecycle-fact-sheet)?

I was under the impression that MSYS2 also switched to Cygwin v3.x, as did Git for Windows, and we do not really have any Git for Windows-specific patch that mentions that symbol.

Besides, QueryUnbiasedInterruptTime() is supposed to be available in Windows 7 according to the documentation? See https://docs.microsoft.com/en-us/windows/win32/api/realtimeapiset/nf-realtimeapiset-queryunbiasedinterrupttime for further details.

@rdjondo
Copy link
Author

rdjondo commented Nov 17, 2019

Hello @dscho,

Is the root cause of this issue linked to this by any chance ?
msys2/MSYS2-packages#1651 (comment)

Many thanks

@dscho
Copy link
Member

dscho commented Nov 17, 2019

@rdjondo quite possibly.

Would you mind running a range-diff between the patches in https://github.com/msys2/Cygwin's msys2-master vs the patches in https://github.com/git-for-windows/msys2-runtime's master (probably with the latter's master^{/^Start.the.merging.rebase} as base), and see what we're missing, then preparing a PR for the latter branch?

@rdjondo
Copy link
Author

rdjondo commented Nov 18, 2019

Hello @dscho,

Would you have a tutorial on how performing a range-diff ? I would be happy to learn how to do this.

Also, I ran a git comparison between [git-for-windows/msys2-runtime] and [Alexpux/Cygwin]:
git-for-windows/msys2-runtime@master...Alexpux:master

And then, a git comparison between [Alexpux/Cygwin] and [git-for-windows/msys2-runtime]:
Alexpux/Cygwin@master...git-for-windows:master

As you can see, the difference is big...

Otherwise, would you appreciate the following alternative method (inspired from this link on how to move changes between repositories) :

  • In my own checkout of [https://github.com/git-for-windows/msys2-runtime] master add the source cygwin [https://github.com/alexpux/cygwin] master as a remote and download objects and refs from it.
  • Perform a git fetch of the [git-for-windows/msys2-runtime master]
  • Attempt and fail at merging ....
  • Ask for your benevolent help 😃

Many thanks

@dscho
Copy link
Member

dscho commented Nov 18, 2019

Would you have a tutorial on how performing a range-diff ?

If you have two commit ranges that you want to compare (such as msys2/master..msys2/msys2-master and git-for-windows/master^{/^Start.the.merging.rebase}..git-for-windows/master, assuming that you installed msys2 and git-for-windows remotes for the two indicated repositories), you can do so via git range-diff <range1> <range2>.

@rdjondo
Copy link
Author

rdjondo commented Nov 19, 2019

It appears that this issue should be fixed in the https://github.com/git-for-windows/MSYS2-packages/ repository as we can see from https://github.com/msys2/MSYS2-packages/search?q=QueryUnbiasedInterruptTime&type=Commits

@rdjondo rdjondo closed this as completed Nov 19, 2019
@rdjondo rdjondo reopened this Nov 19, 2019
@dscho
Copy link
Member

dscho commented Nov 19, 2019

@rdjondo your comment is a bit cryptic. Do you mean to say that a PR is required? If so, why don't you give it a try?

@dscho
Copy link
Member

dscho commented Nov 19, 2019

To give you a little help (even if I truly believe that you could have done a little more on your side, it looks like you did not really put your heart into this ticket yet): it would appear that https://github.com/msys2/MSYS2-packages/blob/master/msys2-runtime/PKGBUILD contains more patches than Alexpux/Cygwin@master...msys2-master.

The trick will be to download those extra patches and apply them on top of master of https://github.com/git-for-windows/msys2-runtime. The best way to do that, I think, would be to

  1. download the Git for Windows SDK followed by
  2. sdk cd msys2-runtime, then
  3. download the raw patches from https://github.com/msys2/MSYS2-packages/tree/master/msys2-runtime and
  4. applying them via git am <patch-files>.
  5. Then build the package using sdk build msys2-runtime.

If you get stuck somewhere along the line, push your intermediate state to your fork and ask for help.

@dscho dscho added this to the Next release milestone Nov 21, 2019
dscho pushed a commit to git-for-windows/msys2-runtime that referenced this issue Dec 17, 2019
This fixes git-for-windows/git#2407

Signed-off-by: Alexey Pavlov <alexpux@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
dscho pushed a commit to dscho/msys2-runtime that referenced this issue Apr 27, 2020
This fixes git-for-windows/git#2407

Signed-off-by: Alexey Pavlov <alexpux@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
dscho pushed a commit to git-for-windows/msys2-runtime that referenced this issue Jun 4, 2020
This fixes git-for-windows/git#2407

Signed-off-by: Alexey Pavlov <alexpux@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
git-for-windows-ci pushed a commit to git-for-windows/msys2-runtime that referenced this issue Jul 9, 2020
This fixes git-for-windows/git#2407

Signed-off-by: Alexey Pavlov <alexpux@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants