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

Installing from github pegs the CPU at 100% #277

Open
regularfry opened this issue Sep 15, 2024 · 4 comments
Open

Installing from github pegs the CPU at 100% #277

regularfry opened this issue Sep 15, 2024 · 4 comments
Labels

Comments

@regularfry
Copy link

Describe the bug

Installing from a github source never completes, it just seems to go into a busy-loop with one core sat at 100%. This example is from attempting to get (asdf:test-system) to work on an otherwise new cl-project project.

Reproducible steps

  1. qlot init
    2:
  $ qlot add github dissect Shinmera/dissect :ref a70cabc
Add 'github dissect Shinmera/dissect :ref a70cabc' to 'qlfile'.
Reading '/home/alex/src/ghlisp/qlfile'...                      
Already have dist "quicklisp" version "2023-10-21".
Already have dist "rove" version "ql-2023-10-21".  
Installing dist "dissect".                       
Extracting a tarball.   

Error messages

There are no errors, the process never halts. If I interrupt it with ctrl-c then no error message is given.

The ps entry looks like this:

/home/alex/.roswell/impls/x86-64/linux/sbcl-bin/2.4.8/bin/sbcl --core /home/alex/.roswell/impls/x86-64/linux/sbcl-bin/2.4.8/lib/sbcl/sbcl.core --noinform --no-sysinit --no-userinit --eval (progn #-ros.init(cl:load "/usr/local/etc/roswell/init.lisp")) --eval (ros:run '((:eval "(require 'asdf)")(:eval "(setf *debugger-hook* (lambda (c parent) (declare (ignore parent)) (format *error-output* \"~&Error: ~A~%\" c) (uiop/image:quit -1)))")(:eval "(push #P\"/home/alex/.roswell/lisp/quicklisp/dists/quicklisp/software/qlot-20231021-git/\" asdf/system-registry:*central-registry*)")(:eval "(setf asdf/source-registry:*default-source-registries* (quote (asdf/source-registry:environment-source-registry asdf/source-registry:system-source-registry asdf/source-registry:system-source-registry-directory)))")(:eval "(load #P\"/home/alex/.roswell/lisp/quicklisp/setup.lisp\")")(:eval "(uiop/package:symbol-call :ql :quickload \"qlot/distify\" :silent t)")(:eval "(let ((*error-output* (make-broadcast-stream))) (load (merge-pathnames #P\"setup.lisp\" #P\"/home/alex/src/ghlisp/.qlot/\")))")(:eval "(setf qlot/color:*enable-color* nil)")(:eval "(uiop/package:symbol-call :qlot/distify :distify (qlot/source/base:defrost-source (make-instance (quote qlot/source/github:source-github) :project-name \"dissect\" :repos \"Shinmera/dissect\" :ref \"a70cabc\" :branch nil :tag nil)) #P\"/tmp/qlot-LPSWZT2G/\" :distinfo-only nil)")(:hook)(:quit)))

Versions:

  • Qlot version: Qlot 1.2.13
  • Where did you get it from: ros install qlot
  • OS: Ubuntu 24.04
  • Lisp: SBCL 2.4.8 (provided by roswell)
@regularfry
Copy link
Author

Replacing the github source with a git source works around the issue.

@fukamachi
Copy link
Owner

Qlot 1.2.13 is too old.
Install the latest version from GitHub by running ros install fukamachi/qlot/1.5.10.

@regularfry
Copy link
Author

Sorry, I don't seem to be able to. Apologies for not being able to figure this out, as someone unfamiliar with the ecosystem it's unclear how I should do that.

  $ qlot --version
Qlot 1.2.13

  $ ros run
* (ql:uninstall "qlot")
T
* 
  $ ros install fukamachi/qlot/1.5.10
Installing from github fukamachi/qlot
To load "qlot":
  Load 1 ASDF system:
    asdf
  Install 1 Quicklisp release:
    qlot
Downloading http://beta.quicklisp.org/archive/qlot/2023-10-21/qlot-20231021-git.tgz
##########################################################################
; Loading "qlot"

[1/3] System 'qlot' found. Loading the system..
[2/3] Processing build-hook..
[3/3] Attempting to install the scripts in roswell/ subdirectory of the system...
Found 1 scripts: qlot
/home/alex/.roswell/bin/qlot

  $ qlot --version
Qlot 1.2.13

I feel like there's something I'm missing here. What's the right way to be purging the old version? Do I need to be removing the whole ~/.roswell directory?

@fukamachi
Copy link
Owner

Oh, sorry, I may have told you the wrong method.
Perhaps Roswell can't accept installation with tag names.

ros install fukamachi/qlot fetches from the master branch, so it'd work.
It places the source under ~/.roswell/local-projects/fukamachi/qlot.
You can do anything with git command there, like git checkout 1.5.10.

Even when you feel something wrong with it, you don't need to delete the whole ~/.roswell directory.
Just delete ~/.roswell/local-projects/fukamachi/qlot, and try it again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants