From time to time I'm encountering the error too. It is looks like:
Unsafe concurrent operations on #<HASH-TABLE :TEST EQUAL :COUNT 5219 {1001957543}> detected.
And after this error application have to be restarted, because cache was broken :(
I think this issue can be the problem not only on SBCL and it is better to use bordeaux-threads:make-lock to solve the problem.
This behavior was experienced on ASDF version 3.3.5.3.
Here is the full code for reproducing the problem: https://github.com/svetlyak40wt/asdf-just-done-bug
This is the smallest possible example how to reproduce this problem:
bar
defsystem-depends-on foo
and foo
is a package-inferred system.minor
defsystem-depends-on blah
and blah
is not package-inferred.When you'll call (asdf:load-system "bar")
in the REPL a few times, you'll see these two warnings:
WARNING:
Computing just-done stamp for action (ASDF/LISP-ACTION:LOAD-OP "foo/foo"
"file-type"), but dependency (ASDF/LISP-ACTION:COMPILE-OP
"foo/foo"
"file-type") wasn't done yet!
WARNING:
Computing just-done stamp for action (ASDF/LISP-ACTION:COMPILE-OP
"foo/foo"), but dependency (ASDF/LISP-ACTION:COMPILE-OP
"foo/foo"
"file-type") wasn't done yet!
but nothing like that happens when you are doing (asdf:load-system "minor")
.
The similar warnings happen when you have:
bar
defsystem-depends-on foo
and foo
is usual system but depends on some other package-inferred system.
Alexander Artemenko (217ecfc0) at 19 Oct 16:40
When you are running clpm-client's function from the REPL, it sends some forms to the separate process clpm
.
During development it is inconvenient to receive back just a backtrace. I want to get a full featured SLY/SLIME's debugger when something goes wrong in this clpm client
subprocess.
How do you debug the interaction between processes?
P.S. - Probably the answer to this question deserves to be placed into README-dev.org
.
Previosly, when you made a link If you follow "Live install" instructions from INSTALL.org and link scripts/clpm-live-sbcl, it will return following error:
[art@art-osx:~]% clpm
While evaluating the form starting at line 13, column 0
of #P"/Users/art/projects/lisp/clpm/scripts/live.lisp":
Unhandled SB-INT:SIMPLE-PROGRAM-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
{1001540143}>:
invalid number of arguments: 1
Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {1001540143}>
0: (SETUP-ASDF "live") [external]
1: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SETUP-ASDF "live") #<NULL-LEXENV>)
2: (SB-EXT:EVAL-TLF (SETUP-ASDF "live") 3 NIL)
3: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (SETUP-ASDF "live") 3)
4: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) (SETUP-ASDF "live") :CURRENT-INDEX 3)
5: (SB-C::%DO-FORMS-FROM-INFO #<FUNCTION (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) {100158765B}> #<SB-C::SOURCE-INFO {1001587623}> SB-C::INPUT-ERROR-IN-LOAD)
6: (SB-INT:LOAD-AS-SOURCE #<SB-INT:FORM-TRACKING-STREAM for "file /Users/art/projects/lisp/clpm/scripts/live.lisp" {1001585BD3}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
7: ((FLET SB-FASL::THUNK :IN LOAD))
8: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (FLET SB-FASL::THUNK :IN LOAD) {C63ECEB}> #<SB-INT:FORM-TRACKING-STREAM for "file /Users/art/projects/lisp/clpm/scripts/live.lisp" {1001585BD3}>)
9: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-INT:FORM-TRACKING-STREAM for "file /Users/art/projects/lisp/clpm/scripts/live.lisp" {1001585BD3}> NIL)
10: (LOAD #P"/Users/art/projects/lisp/clpm/scripts/live.lisp" :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT)
11: (SB-INT:SIMPLE-EVAL-IN-LEXENV (LOAD (MERGE-PATHNAMES "live.lisp" *LOAD-TRUENAME*)) #<NULL-LEXENV>)
12: (SB-EXT:EVAL-TLF (LOAD (MERGE-PATHNAMES "live.lisp" *LOAD-TRUENAME*)) 2 NIL)
13: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (LOAD (MERGE-PATHNAMES "live.lisp" *LOAD-TRUENAME*)) 2)
14: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) (LOAD (MERGE-PATHNAMES "live.lisp" *LOAD-TRUENAME*)) :CURRENT-INDEX 2)
15: (SB-C::%DO-FORMS-FROM-INFO #<FUNCTION (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) {1001547F9B}> #<SB-C::SOURCE-INFO {1001547F63}> SB-C::INPUT-ERROR-IN-LOAD)
16: (SB-INT:LOAD-AS-SOURCE #<SB-SYS:FD-STREAM for "file /Users/art/.local/bin/clpm" {1000898C33}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
17: ((FLET SB-FASL::THUNK :IN LOAD))
18: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (FLET SB-FASL::THUNK :IN LOAD) {C63F74B}> #<SB-SYS:FD-STREAM for "file /Users/art/.local/bin/clpm" {1000898C33}>)
19: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-SYS:FD-STREAM for "file /Users/art/.local/bin/clpm" {1000898C33}> NIL)
20: (LOAD #<SB-SYS:FD-STREAM for "file /Users/art/.local/bin/clpm" {1000898C33}> :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT)
21: ((FLET SB-IMPL::LOAD-SCRIPT :IN SB-IMPL::PROCESS-SCRIPT) #<SB-SYS:FD-STREAM for "file /Users/art/.local/bin/clpm" {1000898C33}>)
22: ((FLET SB-UNIX::BODY :IN SB-IMPL::PROCESS-SCRIPT))
23: ((FLET "WITHOUT-INTERRUPTS-BODY-11" :IN SB-IMPL::PROCESS-SCRIPT))
24: (SB-IMPL::PROCESS-SCRIPT "/Users/art/.local/bin/clpm")
25: (SB-IMPL::TOPLEVEL-INIT)
26: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
27: ((FLET "WITHOUT-INTERRUPTS-BODY-1" :IN SB-IMPL::START-LISP))
28: (SB-IMPL::START-LISP)
unhandled condition in --disable-debugger mode, quitting
This patch fixes this issue.
Previosly, when you made a link If you follow "Live install" instructions from INSTALL.org and link scripts/clpm-live-sbcl, it will return following error:
[art@art-osx:~]% clpm
While evaluating the form starting at line 13, column 0
of #P"/Users/art/projects/lisp/clpm/scripts/live.lisp":
Unhandled SB-INT:SIMPLE-PROGRAM-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING
{1001540143}>:
invalid number of arguments: 1
Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {1001540143}>
0: (SETUP-ASDF "live") [external]
1: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SETUP-ASDF "live") #<NULL-LEXENV>)
2: (SB-EXT:EVAL-TLF (SETUP-ASDF "live") 3 NIL)
3: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (SETUP-ASDF "live") 3)
4: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) (SETUP-ASDF "live") :CURRENT-INDEX 3)
5: (SB-C::%DO-FORMS-FROM-INFO #<FUNCTION (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) {100158765B}> #<SB-C::SOURCE-INFO {1001587623}> SB-C::INPUT-ERROR-IN-LOAD)
6: (SB-INT:LOAD-AS-SOURCE #<SB-INT:FORM-TRACKING-STREAM for "file /Users/art/projects/lisp/clpm/scripts/live.lisp" {1001585BD3}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
7: ((FLET SB-FASL::THUNK :IN LOAD))
8: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (FLET SB-FASL::THUNK :IN LOAD) {C63ECEB}> #<SB-INT:FORM-TRACKING-STREAM for "file /Users/art/projects/lisp/clpm/scripts/live.lisp" {1001585BD3}>)
9: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-INT:FORM-TRACKING-STREAM for "file /Users/art/projects/lisp/clpm/scripts/live.lisp" {1001585BD3}> NIL)
10: (LOAD #P"/Users/art/projects/lisp/clpm/scripts/live.lisp" :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT)
11: (SB-INT:SIMPLE-EVAL-IN-LEXENV (LOAD (MERGE-PATHNAMES "live.lisp" *LOAD-TRUENAME*)) #<NULL-LEXENV>)
12: (SB-EXT:EVAL-TLF (LOAD (MERGE-PATHNAMES "live.lisp" *LOAD-TRUENAME*)) 2 NIL)
13: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (LOAD (MERGE-PATHNAMES "live.lisp" *LOAD-TRUENAME*)) 2)
14: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) (LOAD (MERGE-PATHNAMES "live.lisp" *LOAD-TRUENAME*)) :CURRENT-INDEX 2)
15: (SB-C::%DO-FORMS-FROM-INFO #<FUNCTION (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) {1001547F9B}> #<SB-C::SOURCE-INFO {1001547F63}> SB-C::INPUT-ERROR-IN-LOAD)
16: (SB-INT:LOAD-AS-SOURCE #<SB-SYS:FD-STREAM for "file /Users/art/.local/bin/clpm" {1000898C33}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
17: ((FLET SB-FASL::THUNK :IN LOAD))
18: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (FLET SB-FASL::THUNK :IN LOAD) {C63F74B}> #<SB-SYS:FD-STREAM for "file /Users/art/.local/bin/clpm" {1000898C33}>)
19: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-SYS:FD-STREAM for "file /Users/art/.local/bin/clpm" {1000898C33}> NIL)
20: (LOAD #<SB-SYS:FD-STREAM for "file /Users/art/.local/bin/clpm" {1000898C33}> :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT)
21: ((FLET SB-IMPL::LOAD-SCRIPT :IN SB-IMPL::PROCESS-SCRIPT) #<SB-SYS:FD-STREAM for "file /Users/art/.local/bin/clpm" {1000898C33}>)
22: ((FLET SB-UNIX::BODY :IN SB-IMPL::PROCESS-SCRIPT))
23: ((FLET "WITHOUT-INTERRUPTS-BODY-11" :IN SB-IMPL::PROCESS-SCRIPT))
24: (SB-IMPL::PROCESS-SCRIPT "/Users/art/.local/bin/clpm")
25: (SB-IMPL::TOPLEVEL-INIT)
26: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
27: ((FLET "WITHOUT-INTERRUPTS-BODY-1" :IN SB-IMPL::START-LISP))
28: (SB-IMPL::START-LISP)
unhandled condition in --disable-debugger mode, quitting
This patch fixes this issue.
Alexander Artemenko (bca397d6) at 16 Oct 14:41
Fix scripts/clpm-live-sbcl when it is linked somewhere into the PATH