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

Qlot can't install from git on Windows #289

Closed
djha-skin opened this issue Oct 1, 2024 · 3 comments
Closed

Qlot can't install from git on Windows #289

djha-skin opened this issue Oct 1, 2024 · 3 comments

Comments

@djha-skin
Copy link
Contributor

Describe the bug

Reproducible steps

  1. Get on a windows 11 box
  2. Get scoop
  3. From a prompt, run scoop install roswell
  4. From the same prompt, run ros install sbcl-bin
  5. From the same prompt, run ros install djhaskin987/qlot (I am preparing a windows pull request against master, but ros install fukamachi/qlot might work here as well.
  6. Create a directory somewhere and add it to the windows PATH, like C:\Users\<you>\Executables.
  7. Add this script to that folder under the name rsc.bat:
@echo off
ros -Q -L sbcl-bin -- C:\Users\bhw\.roswell\lisp\quicklisp\bin\%*
  1. Check out the code at [email protected]:~skin/cl-i
  2. Run rsc qlot init
  3. In that folder, put this in the qlfile:
git com.djhaskin.nrdl [email protected]:~skin/nrdl :ref 0.4.0
  1. Run rsc qlot install
  2. Run rsc qlot exec ros run
  3. Run (asdf:load-system "com.djhaskin.nrdl") in the REPL.

The REPL says the system is still not installed.

Error messages

After the console prints ● [1/1] com.djhaskin.nrdl Writing metadata files., nothing happens. The process returns with exit code -1073741819, and quits silently without continuing to check the repo out. I can tell by running (asdf:load-system "com.djhaskin.nrdl") in a REPL (via rsc qlot exec ros run) and it won't come up.

I have used print statements to narrow the problem down to the releases.txt function in src/utils/distify.lisp. For some reason, after the ironclad functions run, I can't get print statements to show up past those function calls.

This is odd, as I can copy and paste the (multiple-value-bind ...) form from that function into my REPL and it works fine. The ironclad functions work from the repl, just not when calling via qlot.

Versions:

  • Qlot version: master branch
  • Where did you get it from: roswell
  • OS: Windows 11
  • Lisp: SBCL 2.4.9
@djha-skin
Copy link
Contributor Author

I continue to debug this error.

The code always dies at this line in src/utils/distify.lisp:

(ironclad:digest-file :md5 tarball-file)

This article mentions that

The exit code -1073741819 in hex is 0xC0000005. If you look up this code in Microsoft's documentation (NTSTATUS Values) you will see that it indicates that your program was terminated due to an access violation. This error can occur for a variety of reasons, including de-referencing a NULL pointer or referencing an invalid address.

You should step through your code in the debugger line by line to determine where the access violation happens. That should enable you to analyze the situation and identify the cause.

I also have continued to note that when run from my REPL, there is no error. I am starting to believe there is a threading issue. Some piece of code may be touching that tarball file when this code touches it as well, causing an access violation.

@djha-skin
Copy link
Contributor Author

Reading further. Access violation is essentially a core dump/segfault. The system is segfaulting because somewhere an attempt to read a null pointer is happening. Again, this does not happen from the REPL alone.

@djha-skin
Copy link
Contributor Author

I was correct -- it was the parallel processing. I disabled it in a pull request and it started working again. Please accept the PR (#291), it should fix things :)

Thanks for all your hard work, this tool is a joy to use.

fukamachi added a commit that referenced this issue Oct 3, 2024
Disable parallel processing on windows to fix #289
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant