For some reason I get a controller-lost-error from elephant whenever
weblocks tries to set the value of one of my persistent classes. It
works however if I do it manually from elephant.
My Store Definition (elephant clsql test-suite ran without problems):
----------------------------------------------------------------------------------------------------------
(defstore *elephant-store* :elephant
:spec '(:CLSQL (:SQLITE3 "/home/thomas/workspace/space/web/
sqlite3.db")))
----------------------------------------------------------------------------------------------------------
The code in question:
----------------------------------------------------------------------------------------------------------
(defun init-user-session (comp)
(setf (composite-widgets comp)
(list (make-navigation 'navigation
'main (lambda (&rest args)
(with-html
(:strong "Welcome.")))
'register (make-quickform 'register-
view :data-class-name 'space.core:user)
))))
----------------------------------------------------------------------------------------------------------
Whenever I try to send some data using the quickform, the slime repl
goes into the debugger:
----------------------------------------------------------------------------------------------------------
Condition ELEPHANT:CONTROLLER-LOST-ERROR was signalled.
[Condition of type ELEPHANT:CONTROLLER-LOST-ERROR]
Restarts:
0: [CONTINUE] Open a new instance and continue?
1: [TERMINATE-THREAD] Terminate this thread (#<THREAD "Processing
action" RUNNING {10040EA471}>)
Backtrace:
0: ((SB-PCL::FAST-METHOD ELEPHANT::GET-CON (ELEPHANT:PERSISTENT))
#<unused argument> #<unused argument> #<USER oid:NIL> #<unused
argument>)
1: ((SB-PCL::FAST-METHOD (SETF SB-MOP:SLOT-VALUE-USING-CLASS) (T
ELEPHANT:PERSISTENT-METACLASS ELEPHANT:PERSISTENT-OBJECT
ELEPHANT::PERSISTENT-SLOT-DEFINITION)) ..)
2: (SB-PCL::SET-SLOT-VALUE #<USER oid:NIL> SPACE.CORE::NAME "bla")
3: ((SB-PCL::FAST-METHOD WEBLOCKS:PERSIST-OBJECT (WEBLOCKS-
ELEPHANT:ELEPHANT-STORE WEBLOCKS-ELEPHANT::PERSISTENT-PROXY)) ..)
[:EXTERNAL]
4: ((SB-PCL::FAST-METHOD WEBLOCKS:UPDATE-OBJECT-VIEW-FROM-REQUEST (T
T)) #<unavailable argument> #<unavailable argument> #<USER-G1688
{1004792C61}> #<WEBLOCKS:FORM-VIEW {1007A29611}>)[:EXTERNAL]
5: ((SB-PCL::FAST-METHOD WEBLOCKS:DATAFORM-SUBMIT-ACTION
(WEBLOCKS:QUICKFORM T)) ..)[:EXTERNAL]
6: ((LAMBDA (&KEY WEBLOCKS::SUBMIT WEBLOCKS::CANCEL &ALLOW-OTHER-
KEYS)) :SUBMIT "Submit" :CANCEL NIL)
7: ((SB-PCL::FAST-METHOD ELEPHANT::EXECUTE-TRANSACTION (DB-
CLSQL::SQL-STORE-CONTROLLER T)) ..)[:EXTERNAL]
8: (WEBLOCKS::ACTION-TXN-HOOK (#<FUNCTION # {10087F3B39}>))
9: ((LAMBDA ()))
10: ((SB-PCL::FAST-METHOD WEBLOCKS:HANDLE-CLIENT-REQUEST
(WEBLOCKS:WEBLOCKS-WEBAPP)) #<unavailable argument> #<unavailable
argument> #<unavailable argument>)
11: ((FLET #:|doit-71|))
12: ((SB-PCL::FAST-METHOD WEBLOCKS:HANDLE-CLIENT-REQUEST :AROUND
(T)) ..)
13: ((SB-PCL::FAST-METHOD WEBLOCKS:HANDLE-CLIENT-REQUEST :AROUND
(T)) ..)[:EXTERNAL]
14: (WEBLOCKS::CALL-IN-WEBAPP #<SPACE.WEB::SPACE.WEB {1003121931}>
#<CLOSURE (LAMBDA #) {1003F2D619}>)
15: ((SB-PCL::FAST-METHOD WEBLOCKS:HANDLE-CLIENT-REQUEST :AROUND
(WEBLOCKS:WEBLOCKS-WEBAPP)) ..)
16: ((SB-PCL::FAST-METHOD HUNCHENTOOT:HANDLE-REQUEST
(HUNCHENTOOT:ACCEPTOR HUNCHENTOOT:REQUEST)) ..)
17: ((SB-PCL::FAST-METHOD HUNCHENTOOT:PROCESS-REQUEST (T))
#<unavailable argument> #<unavailable argument> #<HUNCHENTOOT:REQUEST
{1003F22801}>)
18: ((SB-PCL::FAST-METHOD HUNCHENTOOT:PROCESS-CONNECTION
(HUNCHENTOOT:ACCEPTOR T)) ..)
19: ((SB-PCL::FAST-METHOD HUNCHENTOOT:PROCESS-CONNECTION
(WEBLOCKS:WEBLOCKS-ACCEPTOR T)) ..)
20: ((SB-PCL::FAST-METHOD HUNCHENTOOT:PROCESS-CONNECTION :AROUND
(HUNCHENTOOT:ACCEPTOR T)) ..)
21: ((LAMBDA ()))
22: ((FLET #:WITHOUT-INTERRUPTS-BODY-[BLOCK358]363))
23: ((FLET SB-THREAD::WITH-MUTEX-THUNK))
24: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]293))
25: (SB-THREAD::CALL-WITH-MUTEX ..)
26: (SB-THREAD::INITIAL-THREAD-FUNCTION)
27: ("foreign function: #x422110")
28: ("foreign function: #x418D67")
----------------------------------------------------------------------------------------------------------
I ran the weblocks testsuite, and got the following:
----------------------------------------------------------------------------------------------------------
WEBLOCKS-TEST> (test-weblocks)
Start: WEBLOCKS-SUITE
Start: CONTROL-FLOW/CALL-ANSWER-SUITE
Start: COMPOSITE-SUITE
Start: WIDGETS/NAVIGATION-SUITE
Start: WIDGETS/STATIC-SELECTOR-SUITE
Start: WIDGETS/DATAEDIT/DATAEDIT-SUITE
Start: WIDGETS/DATASEQ/DATASEQ-SUITE
Start: WIDGETS/DATA-EDITOR-SUITE
Start: DATAFORM-SUITE
Start: WIDGETS/WIDGET/WIDGET-SUITE
Start: VIEWS/TYPES/PRESENTATIONS/DATE-SUITE
Start: VIEWS/FORMVIEW/FORMVIEW-SUITE
Start: VIEWS/VIEW/UTILS-SUITE
Start: SNIPPETS/SUGGEST-SUITE
Start: STORE/STORE-UTILS-SUITE
Start: .APPLICATION-SUITE
Start: REQUEST-HANDLER-SUITE
Start: URI-TOKENS-SUITE
Start: DEPENDENCIES-SUITE
Start: BUNDLING-SUITE
Start: VERSIONING-SUITE
Start: UTILS/MISC-SUITE
Start: .WEBLOCKS-SUITE
Start: STORE-SUITElocal deserialization-error: returning nil
deserialization-error on transaction: returning nil
deserialization-error on transaction: returning nil
deserialization-error on transaction: returning nil
deserialization-error on transaction: returning nil
deserialization-error on transaction: returning nil
deserialization-error on transaction: returning nil
deserialization-error on transaction: returning nil
deserialization-error on transaction: returning nil
deserialization-error on transaction: returning nil
deserialization-error on transaction: returning nil
deserialization-error on transaction: returning nil
deserialization-error on transaction: returning nil
deserialization-error on transaction: returning nil
Test Report for WEBLOCKS-SUITE: 708 tests run, 1 Error, 1 Failure.
ERROR : bundling-suite : bundling-test-1
Condition: The value
#P"/home/thomas/sources/clbuild/source/weblocks/pub/
scripts/vzn/weblocks-debug.0.js"
is not of type
SEQUENCE.
Code :
((CL-FAD:DELETE-DIRECTORY-AND-FILES *TEMP-BUNDLES-FOLDER*
:IF-DOES-NOT-EXIST :IGNORE)
(LET* ((TEST-DEPS (MAKE-TEST-DEPENDENCIES-1))
(TEMP-BUNDLES (MAKE-TEMP-BUNDLES TEST-DEPS)))
(ENSURE-SAME
(VALUES-LIST
(MAPCAR (LAMBDA (X) (PURI:URI-PATH (DEPENDENCY-URL X)))
TEMP-BUNDLES))
(VALUES "/pub/bundles/2.js" "/pub/bundles/1.css" "/external.js"
"/external.css"))
(ENSURE-SAME
(VALUES-LIST (MAPCAR #'WEBLOCKS::LOCAL-PATH TEMP-BUNDLES))
(VALUES (CONCATENATE 'STRING *TEMP-BUNDLES-FOLDER* "2.js")
(CONCATENATE 'STRING *TEMP-BUNDLES-FOLDER* "1.css") NIL
NIL))
(LET ((TALLY
(WEBLOCKS::GET-BUNDLE-TALLY :BUNDLE-FOLDER
*TEMP-BUNDLES-FOLDER*)))
(DESTRUCTURING-BIND
((JS-MERGED . JS-PARTS) (CSS-MERGED . CSS-PARTS))
(WEBLOCKS::COMPOSITION-LIST TALLY)
(ENSURE-SAME JS-MERGED "2.js")
(ENSURE-SAME CSS-MERGED "1.css")
(ENSURE-SAME (VALUES-LIST (APPEND JS-PARTS CSS-PARTS))
(VALUES '("weblocks-debug" "js") '("sound" "js")
'("datagrid-import" "css")
'("isearch" "css") '("datagrid" "css"))
:TEST
(LAMBDA (X Y)
(CL-PPCRE:SCAN
(SUBSEQ (APPLY #'MAKE-VERSIONED-REGEX Y) 1)
X)))
(ENSURE-SAME (VALUES JS-PARTS CSS-PARTS)
(VALUES JS-MERGED CSS-MERGED) :TEST
(LAMBDA (X Y)
(MERGED-WITH-NEWLINE-EQUAL X
(MERGE-PATHNAMES Y
(WEBLOCKS::BUNDLE-FOLDER
TALLY)))))
(ENSURE-SAME
(CL-PPCRE:SCAN
(LIST :SEQUENCE (WEBLOCKS::SLURP-FILE (CAR CSS-PARTS)))
(WEBLOCKS::SLURP-FILE
(MERGE-PATHNAMES CSS-MERGED
(WEBLOCKS::BUNDLE-FOLDER TALLY))))
0)))
(SETF TEST-DEPS (MAKE-TEST-DEPENDENCIES-2))
(SETF TEMP-BUNDLES (MAKE-TEMP-BUNDLES TEST-DEPS))
(ENSURE-SAME
(VALUES-LIST
(MAPCAR (LAMBDA (X) (PURI:URI-PATH (DEPENDENCY-URL X)))
TEMP-BUNDLES))
(VALUES "/pub/bundles/4.js" "/pub/bundles/3.css"))
(ENSURE-SAME
(VALUES-LIST (MAPCAR #'WEBLOCKS::LOCAL-PATH TEMP-BUNDLES))
(VALUES (CONCATENATE 'STRING *TEMP-BUNDLES-FOLDER* "4.js")
(CONCATENATE 'STRING *TEMP-BUNDLES-FOLDER* "3.css")))
(DESTRUCTURING-BIND
(JS-PARTS CSS-PARTS)
(LOOP FOR BUNDLE IN (WEBLOCKS::COMPOSITION-LIST
(WEBLOCKS::GET-BUNDLE-TALLY :BUNDLE-
FOLDER
*TEMP-
BUNDLES-FOLDER*))
IF (OR (STRING= (CAR BUNDLE) "4.js")
(STRING= (CAR BUNDLE) "3.css"))
COLLECT (CDR BUNDLE))
(ENSURE-SAME (VALUES-LIST (APPEND JS-PARTS CSS-PARTS))
(VALUES '("dialog" "js") '("sound" "js")
'("suggest" "css") '("isearch" "css"))
:TEST
(LAMBDA (X Y)
(CL-PPCRE:SCAN
(SUBSEQ (APPLY #'MAKE-VERSIONED-REGEX Y) 1)
X))))
(SETF TEST-DEPS (MAKE-TEST-DEPENDENCIES-3))
(SETF TEMP-BUNDLES (MAKE-TEMP-BUNDLES TEST-DEPS))
(ENSURE-SAME (PURI:URI-PATH (DEPENDENCY-URL (CAR TEMP-BUNDLES)))
"/pub/bundles/5.js")
(SETF TEST-DEPS (MAKE-TEST-DEPENDENCIES-4))
(SETF TEMP-BUNDLES (MAKE-TEMP-BUNDLES TEST-DEPS))
(ENSURE-SAME (PURI:URI-PATH (DEPENDENCY-URL (CAR TEMP-BUNDLES)))
"/pub/bundles/6.css")))
Failure: versioning-suite : versioning-test-1
Condition: Ensure-same: #P"/home/thomas/sources/clbuild/source/
weblocks/test/temp-vzn/vzn/temp.0.test" is not #<
FUNCTION EQUAL> to "/home/thomas/sources/clbuild/source/weblocks/test/
temp-vzn/vzn/temp.0.test"
Code :
((CL-FAD:DELETE-DIRECTORY-AND-FILES *TEMP-VERSION-FOLDER*
:IF-DOES-NOT-EXIST :IGNORE)
(CL-FAD:DELETE-DIRECTORY-AND-FILES *TEMP-MOD-RECORD-FOLDER*
:IF-DOES-NOT-EXIST :IGNORE)
(WEBLOCKS::WITH-FILE-WRITE (STREAM *TEMP-VERSION-FILE*)
(WRITE-STRING "test-text" STREAM))
(ENSURE-SAME
(WEBLOCKS::UPDATE-VERSIONED-DEPENDENCY-PATH *TEMP-VERSION-FILE*
"/www/temp.test")
(VALUES
(CL-PPCRE:REGEX-REPLACE "temp.test$" *TEMP-VERSION-FILE*
"vzn/temp.0.test")
"/www/vzn/temp.0.test"))
(SLEEP 1)
(WEBLOCKS::WITH-FILE-WRITE (STREAM *TEMP-VERSION-FILE*)
(WRITE-STRING "new-test-text" STREAM))
(ENSURE-SAME
(WEBLOCKS::UPDATE-VERSIONED-DEPENDENCY-PATH *TEMP-VERSION-FILE*
"/www/temp.test")
(VALUES
(CL-PPCRE:REGEX-REPLACE "temp.test$" *TEMP-VERSION-FILE*
"vzn/temp.1.test")
"/www/vzn/temp.1.test"))
(LET ((IMPORT-PATH
(CONCATENATE 'STRING *TEMP-VERSION-FOLDER* "import.css")))
(WEBLOCKS::WITH-FILE-WRITE (STREAM IMPORT-PATH)
(WRITE-STRING "@import url(/pub/stylesheets/table.css);
@import url(/pub/stylesheets/form.css);"
STREAM))
(WEBLOCKS::UPDATE-IMPORT-CSS-CONTENT IMPORT-PATH :VERSION-TYPES
'(:STYLESHEET) :GZIP-TYPES
NIL)
(ENSURE-SAME
"^...@import url\\(/pub/stylesheets/vzn/table\\.\\d\\d*?\\.css\
\);\...@import url\\(/pub/stylesheets/vzn/form\\.\\d\\d*?\\.css\\);$"
(WEBLOCKS::SLURP-FILE IMPORT-PATH) :TEST #'CL-PPCRE:SCAN)))
Test Report for WEBLOCKS-SUITE: 708 tests run, 1 Error, 1 Failure.
Test Report for STORE-SUITE: 14 tests run, all passed!
#<Results for WEBLOCKS-SUITE 708 Tests, 1 Failure, 1 Error>
#<Results for STORE-SUITE [14 Successful tests]>
WEBLOCKS-TEST>
----------------------------------------------------------------------------------------------------------
I am using weblocks, elephant and clsql from clbuild.
Furthermore SBCL version 1.0.35.6.
I am not using cffi-uffi-compat.asd as uffi.asd, but instead the
original uffi.asd.
Anyone got any ideas as to what is going on?
--
You received this message because you are subscribed to the Google Groups
"weblocks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/weblocks?hl=en.